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/380,760, filed on 11/5/2025.
Claim(s) 1-24 is/are pending.
Claim(s) 7, 10, 19 and 22 is/are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
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/18/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 Objections
Claim(s) 4 is/are objected to because of the following informalities: in lines 1-2, “first task is store data of the dataset in a long-term” should be corrected to “first task is the store data of the dataset in the long-term”. Appropriate correction is required.
Claim(s) 5 is/are objected to because of the following informalities: in line , “plurality of computing node of the” should be corrected to “plurality of computing nodes of the”. Appropriate correction is required.
Claim(s) 7 is/are objected to because of the following informalities: in lines 1-2, “is execute a level three query” should be corrected to “execute the level three query”. Appropriate correction is required.
Claim(s) 16 is/are objected to because of the following informalities: in lines 1-2, “first task is store data of the dataset in a long-term” should be corrected to “first task is the store data of the dataset in the long-term”. Appropriate correction is required.
Claim(s) 19 is/are objected to because of the following informalities: in lines 1-2, “is execute a level three query” should be corrected to “execute the level three query”. Appropriate correction is required.
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) 1-6 and 13-18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gupta et al., US 11,567,972 B1 (hereinafter “Gupta”) in view of Uppala, US 7,860,865 B2 (hereinafter “Upp”).
Claims 1 and 13
Gupta discloses a store and compute sub-system of a database system, the store and compute sub-system comprises:
a plurality of computing clusters (Gupta, Fig. 6, see storage clusters 610a, 610b and 610c), where a computing cluster of the plurality of computing clusters includes a plurality of computing devices, where a computing device of the plurality of computing devices includes a plurality of computing nodes, and wherein a computing node of the plurality of computing nodes includes a plurality of processing core resources (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 and storage nodes 330, 340, and 350 [i.e., “plurality of computing clusters includes a plurality 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 may also include storage nodes, such as storage nodes 330, 340, and 350 [i.e., “plurality of computing clusters includes a plurality 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 [i.e., corresponds to the “plurality of processing core resources”]. 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 and storage nodes 330, 340 … 350 [i.e., “plurality of computing clusters includes a plurality of computing devices”]), wherein the computing cluster is operably to:
receive a plurality of tasks (Gupta, Col. 9, lines 29-55, see clients convey network-based services requests (e.g., access requests directed to data in data storage services(s) 230, operations, tasks, or jobs, being performed as part of data processing service(s) 220, or to interact with data catalog service 210) to and receive responses from provider network 200 vial network 260), wherein a task of the plurality of tasks includes:
store data of a dataset in a long-term storage format (Gupta, Col. 2, line 61-Col. 3, line 17, see a data store, such as a database system, data warehouse, data archive, data object store or any other form of data storage may organize data in a tree-based data format [i.e., interpreted as the “long-term storage format”; Note: Applicant has not defined what is the “long-term storage format” in the claim]. Data, such as a table of items (e.g., rows including different field values for different columns), may be stored in storage slabs. Rows or other items of a table may be grouped into collections stored in a storage slab, like items 104 stored in storage slab 102);
execute, in a concurrent manner, the plurality of tasks (Gupta, Col. 16, lines 32-42, see increasing or adding storage nodes a storage cluster may, for instance, parallelize the workload [i.e., corresponds to “concurrent manner”] to process certain queries [i.e., corresponds the “plurality of tasks”], which may increase the performance of processing the query) by:
for a first task of the plurality of tasks, a first lead computing device of the computing 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 computing device of the computing 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) is operable to:
generate a plurality of first partial tasks based on the first task (Gupta, Col. 3, lines 18-48 and Gupta, Fig. 1, see splitting storage slab102 among storage slabs 102b, 102c, 102d and 102e when full, where the splitting the values ranges and storing them in the slabs 102b, 102c, 102d and 102e is being interpreted as the “plurality of first partial tasks;” Note: Applicant has not defined what is the “first task” in the claim); and
allocate the plurality of first partial tasks to the plurality of computing devices of the computing cluster (Gupta, Fig. 3, see storage nodes 330, 340 and 350; Gupta, Col. 9, line 56-Col. 10, line 10, see storage cluster 300 may include a leader node 320 and storage nodes 330, 340, and 350, 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 [i.e., disclosing executing queries (i.e., “tasks”) on the nodes in the storage cluster]. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab), wherein the plurality of computing devices executes the plurality of first partial tasks (Gupta, Col. 3, lines 18-48, see splitting storage slab 102 among storage slabs 102b, 102c, 102d and 102e when full, where the splitting the values ranges and storing them in the slabs 102b, 102c, 102d and 102e is being interpreted as the “plurality of first partial tasks”);
for a second task of the plurality of tasks, a second lead computing device of the computing cluster (Gupta, Fig. 1, see storge slab 102b is being interpreted as the “second lead computing device” controlling storing slabs 102f, 102g, 102h to 102i) is operable to:
generate a plurality of second partial tasks based on the second task (Gupta, Col. 3, lines 18-48 and Gupta, Fig. 1, see splitting the value ranges in storage slab 102b among storage slabs 102f, 102g, 102h to 102i is being interpreted as the “plurality of second partial tasks”; Note: Applicant has not defined what is the “second task” in the claim); and
allocate the plurality of second partial tasks to the plurality of computing devices of the computing cluster, wherein the plurality of computing device executes the plurality of second partial tasks (Gupta, Fig. 3, see storage nodes 330, 340 and 350; Gupta, Fig. 1, see splitting the value ranges in storage slab 102b among storage slabs 102f, 102g, 102h to 102i is being interpreted as the “plurality of second partial tasks”; and Gupta, Col. 9, line 56-Col. 10, line 10, see storage cluster 300 may include a leader node 320 and storage nodes 330, 340, and 350, 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 [i.e., disclosing executing queries (i.e., “tasks”) on the nodes in the storage cluster]. For instance, slab mapping information may be used to identify which storage nodes may store a storage slab).
Gupta does not appear to explicitly disclose execute a level three query operation of a query to produce a level three query response; and
execute a level two query operation of a query to produce a level two query response.
Upp discloses execute a level three query operation of a query to produce a level three query response (Upp, Col. 12, line 53-Col. 13, line 3, see the third-level query processing servers may serve as gateway servers that may interface with clients; and Upp, Fig. 7, see the Query Services 710 in Query Processing Server QP7 708 in Level 3 706; Note: Applicant has not defined what is a “level three query operation” in the claim); and
execute a level two query operation of a query to produce a level two query response (Upp, Col. 12, line 53-Col. 13, line 3, see the second-level query processing servers may assist in processing queries transformed for distributed processing; and Upp, Fig. 7, see the query processing in Query Processing Server QP5 722 and Query Processing Server QP6 724 in Level 2 720; Note: Applicant has not defined what is a “level two query operation” in the claim).
Gupta and Upp are analogous art because they are from the same field of endeavor of processing large amounts of 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 Upp before him/her, to modify the parallel computing of Gupta to include the level query operations of Upp because it would allow more efficient distribution of processing operations.
The suggestion/motivation for doing so would have been to provide data storage, query processing and retrieval for large volumes of data, see Upp, Col. 2, lines 27-33.
Therefore, it would have been obvious to combine Upp with Gupta to obtain the invention as specified in the instant claim(s).
Claim(s) 13 recite(s) similar limitations to claim 1 and is/are rejected under the same rationale.
With respect to claim 13, Gupta discloses a computer readable memory comprises:
a first memory that stores operational instructions (Gupta, Col. 18, line 58-Col. 19, line 12, see system memory 2020);
a second memory that stores operational instructions (Gupta, Col. 18, line 58-Col. 19, line 12, see system memory 2020).
Claims 2 and 14
With respect to claims 2 and 14, the combination of Gupta and Upp discloses further comprises:
for a third task of the plurality of tasks, a third lead computing device of the computing cluster is operable to:
generate a plurality of third partial tasks based on the third task (See below); and
allocate the plurality of third partial tasks to the plurality of computing devices of the computing cluster, wherein the plurality of computing device executes the plurality of third partial tasks (Gupta, Fig. 8, see step 830 “Storage slab full? Y”, 840 “Create child storage slab(s) in the tree”, 850 “Update mapping information to split different portion of a range of distribution values assigned to the full storage slab” and 860 “Add the item(s) to one of the child storage slab(s) with a portion of the range that includes the distribution value(s)”, where the instructions to store the slab in the created child storage slabs is being interpreted as the “plurality of third partial tasks” and where creating the child storage slabs is being interpreted as the “allocating” step).
Claims 3 and 15
With respect to claims 3 and 15, the combination of Gupta and Upp discloses further comprises:
for a third task of the plurality of tasks, the first lead computing device is operable to:
generate a plurality of third partial tasks based on the third task (See below); and
allocate the plurality of third partial tasks to the plurality of computing devices of the computing cluster, wherein the plurality of computing device executes the plurality of third partial tasks (Gupta, Fig. 8, see step 830 “Storage slab full? Y”, 840 “Create child storage slab(s) in the tree”, 850 “Update mapping information to split different portion of a range of distribution values assigned to the full storage slab” and 860 “Add the item(s) to one of the child storage slab(s) with a portion of the range that includes the distribution value(s)”, where the instructions to store the slab in the created child storage slabs is being interpreted as the “plurality of third partial tasks” and where creating the child storage slabs is being interpreted as the “allocating” step).
Claims 4 and 16
With respect to claims 4 and 16, the combination of Gupta and Upp discloses wherein, when the first task is store data of the dataset in a long-term storage format, the computing cluster is further operable to:
receive, by the first lead computing device of the plurality of computing devices of the computing cluster, the data of the dataset, wherein the data of the dataset includes a plurality of data segments (See below);
route, by the first lead computing device, an n+1 data segment of the plurality of data segments to a first computing device of the plurality of computing devices for storage therein, where n is an integer equal or greater than 0 (See below);
route, by the first lead computing device, an n+2 data segment of the plurality of data segments to a second computing device of the plurality of computing devices for storage therein (See below); and
route, by the first lead computing device, an n+3 data segment of the plurality of data segments to a third computing device of the plurality of computing devices for storage therein (Gupta, Col. 3, lines 18-48, see splitting storage slab 102 among storage slabs 102b [i.e., interpreted as the “first computing device”], 102c [i.e., interpreted as the “second computing device”], 102d [i.e., interpreted as the “third computing device”] and 102e when full).
Claims 5 and 17
With respect to claims 5 and 17, the combination of Gupta and Upp discloses further comprises:
within the first computing device, a lead computing node of the plurality of computing node of the first computing device is operable to:
receive a plurality of n+1 data segments (See below);
route an m+1 data segment of the plurality of n+1 data segments to a first computing node of the plurality of computing nodes for storage therein, where m is an integer equal to or greater than 0 (See below);
route an m+2 data segment of the plurality of n+1 data segments to a second computing node of the plurality of computing nodes for storage therein (See below); and
route an m+3 data segment of the plurality of n+1 data segments to a third computing node of the plurality of computing nodes for storage therein (Gupta, Col. 3, lines 18-48, see splitting storage slab 102 among storage slabs 102b [i.e., interpreted as the “first computing device”], 102c [i.e., interpreted as the “second computing device”], 102d [i.e., interpreted as the “third computing device”] and 102e when full).
Claims 6 and 18
With respect to claims 6 and 18, the combination of Gupta and Upp discloses further comprises:
within the first computing node, a lead processing core resource of the plurality of plurality of processing core resources of the first computing node is operable to:
receive a plurality of m+1 data segments (See below);
route a p+1 data segment of the plurality of m+1 data segments to a first processing core resource of the plurality of processing core resources for storage therein, where p is an integer equal to or greater than 0 (See below);
route a p+2 data segment of the plurality of m+1 data segments to a second processing core resource of the plurality of processing core resources for storage therein (See below); and
route a p+3 data segment of the plurality of m+1 data segments to a third processing core resource of the plurality of processing core resources for storage therein (Gupta, Col. 3, lines 18-48, see splitting storage slab 102 among storage slabs 102b [i.e., interpreted as the “first computing device”], 102c [i.e., interpreted as the “second computing device”], 102d [i.e., interpreted as the “third computing device”] and 102e when full).
Allowable Subject Matter
Claim(s) 7, 10, 19 and 22 is/are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Claim(s) 8, 9, 11, 12, 2, 21, 23 and 24 inherit(s) the allowable subject matter of the claim it/they depend(s) from.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
– Ailamaki et al., 2014/0380322 for task scheduling for highly concurrent analytical and transaction workloads;
– Grube et al., 2019/0012234 for dynamically shifting tasks in distributed computing data storage;
– Baptist et al., 2013/0275776 for encrypting distributed computing data;
– Resch, 2013/0275744 for encrypting segmented data in a distributed computing system;
– Chowdhuri et al., 8126870 for parallel query optimization using semantic-based partitioning;
– Adoul et al., 5701392 for depth-first algebraic-codebook search for fast coding of speech; and
– Duan et al., CN 106708727 for characteristic sample verification method.
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: September 17, 2026
/APU M MOFIZ/Supervisory Patent Examiner, Art Unit 2161