Prosecution Insights
Last updated: August 15, 2026
Application No. 19/318,514

DATA SLABS AND SORTED SLABS OF A PARALLELIZED DATABASE SYSTEM

Non-Final OA §101§102§103
Filed
Sep 04, 2025
Priority
Oct 15, 2018 — provisional 62/745,787 +2 more
Examiner
CHEUNG, HUBERT G
Art Unit
2161
Tech Center
2100 — Computer Architecture & Software
Assignee
Ocient Inc.
OA Round
1 (Non-Final)
63%
Grant Probability
Moderate
1-2
OA Rounds
3y 3m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 63% of resolved cases
63%
Career Allowance Rate
249 granted / 394 resolved
+8.2% vs TC avg
Strong +48% interview lift
Without
With
+48.0%
Interview Lift
resolved cases with interview
Typical timeline
4y 3m
Avg Prosecution
17 currently pending
Career history
420
Total Applications
across all art units

Statute-Specific Performance

§101
12.3%
-27.7% vs TC avg
§103
50.5%
+10.5% vs TC avg
§102
16.7%
-23.3% vs TC avg
§112
14.5%
-25.5% vs TC avg
Black line = Tech Center average estimate • Based on career data from 394 resolved cases

Office Action

§101 §102 §103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This Office action is issued in response to application, 19/318,514, filed on 9/4/2025. Claim(s) 1-18 is/are pending. Priority Acknowledgment is made of applicant’s claim for priority to application, 18/648,342, filed on 4/27/2024, which claims priority to application, 16/267,608, filed on 2/5/2019, issued as U.S. 11,977,545, which claims priority to provisional application, 62/745,787, filed on 10/15/2018. Specification The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification. Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claim(s) 1-9 is/are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. Claim(s) 1 is/are rejected because the claimed invention is directed to non-statutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because it is directed to software per se. The claim does not recite a “processor”. The claim(s) only recite(s) “a data input sub-system”, “a database system”, “lead processing core resources”, “computing nodes”, “computing devices” and “a computing device cluster”, which are not defined, which, using the broadest reasonable interpretation, could all be implemented entirely in software. Such limitations, as currently claimed, are just software without having a computer system to execute the steps as claimed. Therefore, claim(s) 1 is/are directed to software that is not tied to a technological art, environment or machine to form the basis of statutory subject matter under 35 U.S.C. 101. Note: The examiner suggests amending the claim(s) to add a “processor” or a “hardware processor” to overcome the rejection(s). Claim(s) 2-9 inherit(s) the deficiencies of the claim it/they depend(s) from. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claim(s) 1-4, 9-13 and 18 is/are rejected under 35 U.S.C. 102(a)(1)/(2) as being anticipated by Gupta et al., US 11,567,972 B1 (hereinafter “Gupta”). Claims 1 and 10 Gupta discloses a data input sub-system of a database system, wherein the data input sub-system comprises: lead processing core resources of pluralities of computing nodes of pluralities of computing devices of a computing device cluster of a plurality of computing device clusters (Gupta, Col. 9, line 56-Col. 10, line 10, see the storage cluster for a data storage service like a data warehouse service … . As illustrated in this example, a storage cluster 300 may include a leader node 320 [i.e., corresponds to the “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”], which may communicate with each other over an interconnect 360. Leader node 320 may maintain slab mapping information 325 for executing queries on storage cluster 300. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab; and Gupta, Col. 10, line 50-Col. 11, line 3, see storage cluster 300 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]. These one or more storage nodes (sometimes referred to as compute nodes), may for example, be implemented on servers or other computing devices, such as those described below with regard to computer system 2000 in FIG. 11, and each may include individual query processing “slices” defined, for example, for each core of a server's multi-core processor. Storage nodes may perform processing of database operations, such as queries, based on instructions sent to storage nodes 330, 340, and 350 from leader node 320; and Gupta, Fig. 3, see leader node 320 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340 … 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]), wherein the lead processing core resources are operably coupled to: receive respective sub-segments of respective segments of respective segment groups of respective partitions of a dataset (Gupta, Col. 3, lines 18-48, see items added to a table may be stored in slab 102a that have distribution values within the assigned distribution value range [i.e., a part of a table in the database corresponding to distribution value range A to Z is the “respective sub-segments of respective segments of respective segment groups of respective partitions of a dataset”]… The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a stored in slab 102a with distribution value range A to Z), wherein the dataset includes a plurality of rows of columnar data, wherein columnar data includes a plurality of columns of data (Gupta, Col. 7, line 43-Col. 8, line 16, see retrieving all of the column field values for all of the rows in a table; and Gupta, Col. 7, lines 16-42, see a columnar database table [i.e., storing columnar data] may provide more efficient performance. In other words, column information from database tables [i.e., tables is plural meaning there is at least one column of data for each table, which corresponds to a “plurality of columns of data”] may be stored into data blocks on disk); divide the respective sub-segments along columnar lines to produce respective divisions of data slabs, wherein a data slabs of the data slabs corresponds to a column of data of the plurality of columns of data (Gupta, Col. 3, lines 18-48, see slabs 102, however, are not unlimited in storage capacity. Slabs 102 may have space to store a limited number of items in the slab. When, for example, a storage slab 102 becomes full, then additional child slabs of the full storage slab may be created and mapped according to a tree format. For instance, when storage slab 102a became full, then storage slabs 102b, 102c, 102d through 102e [i.e., slabs 102b, 102c, 102d through 102e correspond to the “respective divisions of data slabs”] may be created. The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a in slab 102a is distributed among slabs 102b, 102c, 102d … 102e); store first divisions of data slabs of the respective divisions of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other respective divisions of data slabs of the respective divisions of data slabs to other processing core resources of the pluralities of computing nodes (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Claim(s) 10 recite(s) similar limitations to claim 1 and is/are rejected under the same rationale. With respect to claim 10, Gupta discloses a computer readable memory device comprises: a first memory that stores operational instruction (Gupta, Col. 18, line 58-Col. 19, line 12, see system memory 2020). Claims 2 and 11 With respect to claims 2 and 11, Gupta discloses further comprises: a first lead processing core resource of a first computing node of a first computing device of the computing device cluster (Gupta, Col. 9, line 56-Col. 10, line 10, see the storage cluster for a data storage service like a data warehouse service … . As illustrated in this example, a storage cluster 300 may include a leader node 320 [i.e., corresponds to the “first lead processing core resources … of a computing device cluster”] and storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”], which may communicate with each other over an interconnect 360. Leader node 320 may maintain slab mapping information 325 for executing queries on storage cluster 300. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab; and Gupta, Col. 10, line 50-Col. 11, line 3, see storage cluster 300 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]. These one or more storage nodes (sometimes referred to as compute nodes), may for example, be implemented on servers or other computing devices, such as those described below with regard to computer system 2000 in FIG. 11, and each may include individual query processing “slices” defined, for example, for each core of a server's multi-core processor. Storage nodes may perform processing of database operations, such as queries, based on instructions sent to storage nodes 330, 340, and 350 from leader node 320; and Gupta, Fig. 3, see leader node 320 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340 … 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]), wherein the first lead processing core resource is operably coupled to: receive a first sub-segment of a first segment of a first segment group of a first partition of the respective sub-segments of the respective segments of the respective segment groups of the respective partitions of the dataset (Gupta, Col. 3, lines 18-48, see items added to a table may be stored in slab 102a that have distribution values within the assigned distribution value range [i.e., a part of a table in the database corresponding to distribution value range A to Z is the “respective sub-segments of respective segments of respective segment groups of respective partitions of a dataset”]… The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a stored in slab 102a with distribution value range A to Z); divide the first sub-segment along columnar lines to produce first divisions of data slabs (Gupta, Col. 3, lines 18-48, see slabs 102, however, are not unlimited in storage capacity. Slabs 102 may have space to store a limited number of items in the slab. When, for example, a storage slab 102 becomes full, then additional child slabs of the full storage slab may be created and mapped according to a tree format. For instance, when storage slab 102a became full, then storage slabs 102b, 102c, 102d through 102e [i.e., slabs 102b, 102c, 102d through 102e correspond to the “respective divisions of data slabs”] may be created. The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a in slab 102a is distributed among slabs 102b, 102c, 102d … 102e); store a first division of the first divisions of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other divisions of the first divisions of data slabs to other processing core resources of the first computing node (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Claims 3 and 12 With respect to claims 3 and 12, Gupta discloses further comprises: a second lead processing core resource of a second computing node of the first computing device of the computing device cluster (Gupta, Fig. 1, see the corresponding storage node storing items 104b in slab 102b), wherein the second lead processing core resource is operably coupled to: receive a second sub-segment of the first segment of the first segment group of the first partition of the respective sub-segments of the respective segments of the respective segment groups of the respective partitions of the dataset (Gupta, Col. 15, line 47-Col. 16, line 31, see the process of receiving data at the node and adding to the slab and, if the slab is full, dividing the data and adding new lower slabs; and Gupta, Fig. 1, see items 104b stored in slab 102b in the corresponding storage node sent from the corresponding storage node storing items 104a in storage slab 102a); divide the second sub-segment along columnar lines to produce second divisions of data slabs (Gupta, Col. 3, lines 18-48, see storage slab 102b has a range 104b including distribution values A through F, … . When a storage slab in this second level of storage slabs in the tree becomes full, then an additional level of storage slabs may be created for the full storage slab (e.g., storage slabs 102f, 102g, 102h through 102i) [i.e., created from slab 102b, see Gupta, Fig. 1] and the distribution value ranges may be split again (e.g., range 106f, including values A through Az [i.e., corresponds to columns in slab 102f], range 106g, including values B through C [i.e., corresponds to columns in slab 102g], range 106h, including values D through Dz [i.e., corresponds to columns in slab 102h], and range 106i, including values E through F [i.e., corresponds to columns in slab 102i]; and Gupta, Fig. 1, see items 104b in slab 102b is divided among slabs 102f, 102g, 102h … 102i); store a first division of the second divisions of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other divisions of the second divisions of data slabs to other processing core resources of the second computing node (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Claims 4 and 13 With respect to claims 4 and 13, Gupta discloses further comprises: a first lead processing core resource of a first computing node of a second computing device of the computing device cluster (Gupta, Col. 9, line 56-Col. 10, line 10, see the storage cluster for a data storage service like a data warehouse service … . As illustrated in this example, a storage cluster 300 may include a leader node 320 [i.e., corresponds to the “first lead processing core resources … of a computing device cluster”] and storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”], which may communicate with each other over an interconnect 360. Leader node 320 may maintain slab mapping information 325 for executing queries on storage cluster 300. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab; and Gupta, Col. 10, line 50-Col. 11, line 3, see storage cluster 300 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]. These one or more storage nodes (sometimes referred to as compute nodes), may for example, be implemented on servers or other computing devices, such as those described below with regard to computer system 2000 in FIG. 11, and each may include individual query processing “slices” defined, for example, for each core of a server's multi-core processor. Storage nodes may perform processing of database operations, such as queries, based on instructions sent to storage nodes 330, 340, and 350 from leader node 320; and Gupta, Fig. 3, see leader node 320 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340 … 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]), wherein the first lead processing core resource of the first computing node of the second computing device is operably coupled to: receive a first sub-segment of a second segment of the first segment group of the first partition of the respective sub-segments of the respective segments of the respective segment groups of the respective partitions of the dataset (Gupta, Col. 15, line 47-Col. 16, line 31, see the process of receiving data at the node and adding to the slab and, if the slab is full, dividing the data and adding new lower slabs; and Gupta, Fig. 1, see items 104b stored in slab 102b in the corresponding storage node sent from the corresponding storage node storing items 104a in storage slab 102a); divide the first sub-segment of the second segment along columnar lines to produce first- second divisions of data slabs (Gupta, Col. 3, lines 18-48, see storage slab 102b has a range 104b including distribution values A through F, … . When a storage slab in this second level of storage slabs in the tree becomes full, then an additional level of storage slabs may be created for the full storage slab (e.g., storage slabs 102f, 102g, 102h through 102i) [i.e., created from slab 102b, see Gupta, Fig. 1] and the distribution value ranges may be split again (e.g., range 106f, including values A through Az [i.e., corresponds to columns in slab 102f], range 106g, including values B through C [i.e., corresponds to columns in slab 102g], range 106h, including values D through Dz [i.e., corresponds to columns in slab 102h], and range 106i, including values E through F [i.e., corresponds to columns in slab 102i]; and Gupta, Fig. 1, see items 104b in slab 102b is divided among slabs 102f, 102g, 102h … 102i); store a first division of the first-second divisions of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other divisions of the first-second divisions of data slabs to other processing core resources of the first computing node of the second computing device (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Claims 9 and 18 With respect to claims 9 and 18, Gupta discloses further comprises: second lead processing core resources of second pluralities of computing nodes of second pluralities of computing devices of a second computing device cluster of the plurality of computing device clusters (Gupta, Fig. 1, see the corresponding storage node storing items 104b in slab 102b), wherein the second lead processing core resources are operably coupled to: receive respective second sub-segments of respective second segments of respective second segment groups of respective second partitions of a second dataset (Gupta, Col. 15, line 47-Col. 16, line 31, see the process of receiving data at the node and adding to the slab and, if the slab is full, dividing the data and adding new lower slabs; and Gupta, Fig. 1, see items 104b stored in slab 102b in the corresponding storage node sent from the corresponding storage node storing items 104a in storage slab 102a), wherein the second dataset includes a second plurality of rows of columnar data (Gupta, Col. 7, line 43-Col. 8, line 16, see retrieving all of the column field values for all of the rows in a table; and Gupta, Col. 7, lines 16-42, see a columnar database table [i.e., storing columnar data] may provide more efficient performance. In other words, column information from database tables [i.e., tables is plural meaning there is at least one column of data for each table, which corresponds to a “plurality of columns of data”] may be stored into data blocks on disk); divide the respective second sub-segments along columnar lines to produce respective second divisions of data slabs (Gupta, Col. 3, lines 18-48, see storage slab 102b has a range 104b including distribution values A through F, … . When a storage slab in this second level of storage slabs in the tree becomes full, then an additional level of storage slabs may be created for the full storage slab (e.g., storage slabs 102f, 102g, 102h through 102i) [i.e., created from slab 102b, see Gupta, Fig. 1] and the distribution value ranges may be split again (e.g., range 106f, including values A through Az [i.e., corresponds to columns in slab 102f], range 106g, including values B through C [i.e., corresponds to columns in slab 102g], range 106h, including values D through Dz [i.e., corresponds to columns in slab 102h], and range 106i, including values E through F [i.e., corresponds to columns in slab 102i]; and Gupta, Fig. 1, see items 104b in slab 102b is divided among slabs 102f, 102g, 102h … 102i); store first divisions of data slabs of the respective second division of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other respective divisions of data slabs of the respective second division of data slabs to other processing core resources of the second pluralities of computing nodes (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claim(s) 5-8 and 14-17 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of Tomlin et al., 2016/0077980 A1 (hereinafter “Tomlin”). Claims 5 and 14 Claims 5 and 14 incorporate all of the limitations above. Gupta discloses further comprises: a first computing node of a first computing device of the computing device cluster (Gupta, Col. 9, line 56-Col. 10, line 10, see the storage cluster for a data storage service like a data warehouse service … . As illustrated in this example, a storage cluster 300 may include a leader node 320 [i.e., corresponds to the “first lead processing core resources … of a computing device cluster”] and storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”], which may communicate with each other over an interconnect 360. Leader node 320 may maintain slab mapping information 325 for executing queries on storage cluster 300. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab; and Gupta, Col. 10, line 50-Col. 11, line 3, see storage cluster 300 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]. These one or more storage nodes (sometimes referred to as compute nodes), may for example, be implemented on servers or other computing devices, such as those described below with regard to computer system 2000 in FIG. 11, and each may include individual query processing “slices” defined, for example, for each core of a server's multi-core processor. Storage nodes may perform processing of database operations, such as queries, based on instructions sent to storage nodes 330, 340, and 350 from leader node 320; and Gupta, Fig. 3, see leader node 320 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340 … 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]), wherein the first computing node is operably coupled to: receive a first sub-segment of a first segment of a first segment group of a first partition of the respective sub-segments of the respective segments of the respective segment groups of the respective partitions of the dataset (Gupta, Col. 3, lines 18-48, see items added to a table may be stored in slab 102a that have distribution values within the assigned distribution value range [i.e., a part of a table in the database corresponding to distribution value range A to Z is the “respective sub-segments of respective segments of respective segment groups of respective partitions of a dataset”]… The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a stored in slab 102a with distribution value range A to Z), wherein the first sub-segment includes a sub-segment number of rows of the plurality of rows of columnar data (Gupta, Col. 7, line 43-Col. 8, line 16, see retrieving all of the column field values for all of the rows in a table; and Gupta, Col. 7, lines 16-42, see a columnar database table [i.e., storing columnar data] may provide more efficient performance. In other words, column information from database tables [i.e., tables is plural meaning there is at least one column of data for each table, which corresponds to a “plurality of columns of data”] may be stored into data blocks on disk); sort the sub-segment number of rows to produce a sorted sub-segment (Gupta, Col. 12, lines 13-22, see write module 420 may be configured to sort the entries of the columnar relational database table according to the sort order values for each respective entry and direct the storage 430 to store the columnar relational database table according the sorted order); and provide the sorted sub-segment to a lead processing core resource of the first computing node (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks); the lead processing core resource of the first computing node is operable to: receive the sorted sub-segment as one of the respective sub-segments (Gupta, Col. 15, line 47-Col. 16, line 31, see the process of receiving data at the node and adding to the slab and, if the slab is full, dividing the data and adding new lower slabs; and Gupta, Fig. 1, see items 104b stored in slab 102b in the corresponding storage node sent from the corresponding storage node storing items 104a in storage slab 102a); divide the sorted sub-segment along columnar lines to produce first divisions of data slabs (Gupta, Col. 3, lines 18-48, see slabs 102, however, are not unlimited in storage capacity. Slabs 102 may have space to store a limited number of items in the slab. When, for example, a storage slab 102 becomes full, then additional child slabs of the full storage slab may be created and mapped according to a tree format. For instance, when storage slab 102a became full, then storage slabs 102b, 102c, 102d through 102e [i.e., slabs 102b, 102c, 102d through 102e correspond to the “respective divisions of data slabs”] may be created. The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a in slab 102a is distributed among slabs 102b, 102c, 102d … 102e); store a first division of the first divisions of data slabs (See Gupta, Col. 3, lines 18-48; and Gupta, Fig. 1, described above); and transmit other divisions of data slabs to other processing core resources of the first computing node (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks). Gupta does not appear to explicitly disclose sort based on an index. Tomlin discloses sort based on an index (Tomlin, [0014], see keys associated with items stored in slabs, where the items are indexed and ordered; and Tomlin, [0009], see the use of key-value store, where each key [i.e., corresponds to a “primary key”] is a unique identifier that maps to a specific value). Gupta and Tomlin are analogous art because they are from the same field of endeavor of storing/distributing data. It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention, having the teachings of Gupta and Tomlin before him/her, to modify the slabs of Gupta to include the index sorting of Tomlin because of efficiency. The suggestion/motivation for doing so would have been to reduce the load on the database server, see Tomlin, [0009]. Therefore, it would have been obvious to combine Tomlin with Gupta to obtain the invention as specified in the instant claim(s). Claims 6 and 15 With respect to claims 6 and 15, the combination of Gupta and Tomlin discloses wherein the index comprises one or more of a primary key column (Tomlin, [0009], see the use of key-value store, where each key [i.e., corresponds to a “primary key”] is a unique identifier that maps to a specific value); and a secondary key column. Claims 7 and 16 Claims 7 and 16 incorporate all of the limitations above. Gupta discloses further comprises: a first computing device of the computing device cluster (Gupta, Col. 9, line 56-Col. 10, line 10, see the storage cluster for a data storage service like a data warehouse service … . As illustrated in this example, a storage cluster 300 may include a leader node 320 [i.e., corresponds to the “first lead processing core resources … of a computing device cluster”] and storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”], which may communicate with each other over an interconnect 360. Leader node 320 may maintain slab mapping information 325 for executing queries on storage cluster 300. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab; and Gupta, Col. 10, line 50-Col. 11, line 3, see storage cluster 300 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]. These one or more storage nodes (sometimes referred to as compute nodes), may for example, be implemented on servers or other computing devices, such as those described below with regard to computer system 2000 in FIG. 11, and each may include individual query processing “slices” defined, for example, for each core of a server's multi-core processor. Storage nodes may perform processing of database operations, such as queries, based on instructions sent to storage nodes 330, 340, and 350 from leader node 320; and Gupta, Fig. 3, see leader node 320 [i.e., corresponds to “lead processing core resources … of a computing device cluster”] and storage nodes 330, 340 … 350 [i.e., “pluralities of computing nodes of pluralities of computing devices”]), wherein the first computing device is operably coupled to: receive a first segment of a first segment group of a first partition of the respective sub-segments of the respective segments of the respective segment groups of the respective partitions of the dataset (Gupta, Col. 3, lines 18-48, see items added to a table may be stored in slab 102a that have distribution values within the assigned distribution value range [i.e., a part of a table in the database corresponding to distribution value range A to Z is the “respective sub-segments of respective segments of respective segment groups of respective partitions of a dataset”]… The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a stored in slab 102a with distribution value range A to Z), wherein the first segment includes a segment number of rows of the plurality of rows of columnar data (Gupta, Col. 7, line 43-Col. 8, line 16, see retrieving all of the column field values for all of the rows in a table; and Gupta, Col. 7, lines 16-42, see a columnar database table [i.e., storing columnar data] may provide more efficient performance. In other words, column information from database tables [i.e., tables is plural meaning there is at least one column of data for each table, which corresponds to a “plurality of columns of data”] may be stored into data blocks on disk); sort the segment number of rows to produce a sorted segment (Gupta, Col. 12, lines 13-22, see write module 420 may be configured to sort the entries of the columnar relational database table according to the sort order values for each respective entry and direct the storage 430 to store the columnar relational database table according the sorted order); and provide the sorted segment to a lead computing node of the first computing device (Gupta, Col. 17, lines 7-19, see, as indicated at 930, storage slab(s) may be copied from current storage cluster node(s) to the additional storage node(s), in some embodiments. Transfer operations or requests may be initiated by a control plane or leader node for the storage cluster directing the current storage cluster node(s) to transfer specified storage slabs; and Gupta, Fig. 3, see leader node 320 slab mapping 325 to storage nodes 330, 340 … 350 to store their assigned slabs to their respective disks, where the slabs must be sent/transmitted in order for them to be stored at their respective disks); the lead computing node of the first computing node is operable to: receive the sorted segment as one of the respective segments (Gupta, Col. 15, line 47-Col. 16, line 31, see the process of receiving data at the node and adding to the slab and, if the slab is full, dividing the data and adding new lower slabs; and Gupta, Fig. 1, see items 104b stored in slab 102b in the corresponding storage node sent from the corresponding storage node storing items 104a in storage slab 102a); and further segment the sorted segment to produce a set of sub-segments (Gupta, Col. 3, lines 18-48, see slabs 102, however, are not unlimited in storage capacity. Slabs 102 may have space to store a limited number of items in the slab. When, for example, a storage slab 102 becomes full, then additional child slabs of the full storage slab may be created and mapped according to a tree format. For instance, when storage slab 102a became full, then storage slabs 102b, 102c, 102d through 102e [i.e., slabs 102b, 102c, 102d through 102e correspond to the “respective divisions of data slabs”] may be created. The ranges of distribution values assigned to the nodes of the tree may be divided, split, or otherwise determined resulting in a disjointed partition of the range of the parent node (e.g., slab 102a); and Gupta, Fig. 1, see items 104a in slab 102a is distributed among slabs 102b, 102c, 102d … 102e). Gupta does not appear to explicitly disclose sort based on an index. Tomlin discloses sort based on an index (Tomlin, [0014], see keys associated with items stored in slabs, where the items are indexed and ordered; and Tomlin, [0009], see the use of key-value store, where each key [i.e., corresponds to a “primary key”] is a unique identifier that maps to a specific value). See claims 5 and 14 above for the motivation to combine. Claims 8 and 17 With respect to claims 8 and 17, the combination of Gupta and Tomlin discloses wherein the index comprises one or more of a primary key column (Tomlin, [0009], see the use of key-value store, where each key [i.e., corresponds to a “primary key”] is a unique identifier that maps to a specific value); and a secondary key column. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. – Arnold et al., 2026/0003866 for data slab compression of a parallelized database; – Arnold et al., 2026/0003867 for null elimination data slab compression scheme of a parallelized database; – Mackinnon, Jr., 2019/0347071 for sorting for data-parallel computing devices; – Schieferstein et al., 2025/0335415 for compression of data segments within a database; – Bolik, 2015/0379056 for transparent access to multi-temperature data; – Agnich et al., 10540355 for an acid database; and – Wurst et al., GB 2503622 for determining rules by providing data records in columnar data structures. Point of Contact Any inquiry concerning this communication or earlier communications from the examiner should be directed to HUBERT G CHEUNG whose telephone number is (571) 270-1396. The examiner can normally be reached M-R 8:00A-5:00P EST; alt. F 8:00A-4:00P EST. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Apu Mofiz can be reached at (571) 272-4080. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. HUBERT G. CHEUNG Assistant Examiner Art Unit 2161 Examiner: Hubert Cheung /Hubert Cheung/Assistant Examiner, Art Unit 2161Date: June 8, 2026 /APU M MOFIZ/Supervisory Patent Examiner, Art Unit 2161
Read full office action

Prosecution Timeline

Sep 04, 2025
Application Filed
Jun 16, 2026
Non-Final Rejection mailed — §101, §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12689549
TECHNIQUES FOR MANAGING STORAGE AND RETENTION OF TIME-SERIES BASED EVENT DATA
3y 1m to grant Granted Jul 21, 2026
Patent 12681971
SEARCH USING MULTIPLE VECTOR SPACES
3y 1m to grant Granted Jul 14, 2026
Patent 12682003
CONTENT SEARCH METHOD, APPARATUS AND DEVICE, AND MEDIUM
2y 12m to grant Granted Jul 14, 2026
Patent 12670172
ENHANCED MECHANISMS FOR MANAGING MULTIDIMENSIONAL DATA
1y 8m to grant Granted Jun 30, 2026
Patent 12664139
REDUCED LATENCY DATABASE FEATURING CONTENTION RISK DETERMINATION
2y 8m to grant Granted Jun 23, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
63%
Grant Probability
99%
With Interview (+48.0%)
4y 3m (~3y 3m remaining)
Median Time to Grant
Low
PTA Risk
Based on 394 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month