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 .
Priority
Applicant’s claim for the benefit of a prior-filed application under 35 U.S.C. 119(e) or under 35 U.S.C. 120, 121, 365(c), or 386(c) is acknowledged. The present application is acknowledged as a continuation of U.S. Utility Application No. 18/411,484 filed 1/12/2024.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 7/10/2024 is/are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is/are being considered by the examiner.
Allowable Subject Matter
Claims 12-13 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.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claim 1 is/are rejected under 35 U.S.C. 101 as claiming the same invention as that of claim 1 of prior U.S. Patent No. 12,099,876. This is a non-statutory double patenting rejection.
Regarding independent claim 1,
The instant application is a continuation of Application 18/411,484 and shares the same assignee and inventors. Claim 1 of Application 18/411,484 includes all the limitations of claim 1 of the instant application, while also reciting further limitations.
18/768,526 (instant application)
18/411,484 (co-pending application)
1. A method for execution by a processing module of a set of parallelized processing modules of a database system, comprising: determining a query for execution;
serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on power and based on: automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters;
generating a scheduling request for the requested number of rows;
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query;
wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period, and further based on processing of an additional plurality of rows included in the set of segments via a set of other processing modules of the set of parallelized processing module implemented in parallel with the processing module.
1. (currently amended) A method for execution by a processing module of a set of parallelized processing modules of a database system, comprising: determining a query for execution;
serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on: automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters, wherein the row scheduling parameters include: a total number of previously scheduled rows included in all previously scheduled row sets assigned to the processing module for processing in prior ones of the plurality of row sets serially before the each row set; an unprocessed number of previously scheduled rows included in the all previously scheduled row sets assigned to the processing module;
a target number of rows;a minimum row set size;
and a maximum ratio value corresponding to a predetermined maximum ratio of: the unprocessed number of previously scheduled rows to the target number of rows;
generating a scheduling request for the requested number of rows;
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query;
wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period, and further based on processing of an additional plurality of rows included in the set of segments via a set of other processing modules of the set of parallelized processing module implemented in parallel with the processing module.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1, 19 and 20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Regarding independent claim 1,
Claim 1 recites the following limitation: serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on power and based on: automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters;
Specifically, the claim recites the step wherein “serially processing a plurality of row sets over a temporal period in conjunction with execution of the query”. The claim does not define the term “power”, therefore one of ordinary skill in the art would not be able to determine how the term would be used to “serially process”. Therefore claim 1 contains indefinite terminology that fails to particularly point out and distinctly claim the subject matter to which the invention is directed.
The examiner notes that Paragraph [0605] of Applicant's Specification describes to the term "power" in the present Application as relating to performing of the method according to the one or more power connections reflecting direct and indirect couplings between two items of the database system. For the purposes of this Office Action, the examiner has interpreted the step of " serially processing a plurality of row sets over a temporal period in conjunction with execution of the query…based on power and based on: …” to refer to this portion of the specification which refers to the use of electrical power to execute the method
Regarding independent claim 19,
The claim is analogous to the subject matter of independent claim 1 directed to a computer system and is rejected under similar rationale.
Regarding independent claim 20,
The claim is analogous to the subject matter of independent claim 1 directed to a non-transitory, computer readable medium and is rejected under similar rationale.
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-2, 6 and 18-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lerios et al. (US PGPUB No. 2016/0034547; Pub. Date; Feb. 4, 2016) in view of Barry (US PGPUB No. 2020/0301903; Pub. Date: Sep. 24, 2020).
Regarding independent claim 1,
Lerios discloses a method for execution by a processing module of a set of parallelized processing modules of a database system, comprising:determining a query for execution; See FIG. 4 & Paragraph [0038], (FIG. 4 illustrates method 400 comprising step 302 of performing received operations via an SQL interface. A user 102 may operate a computing system 104 and interact with the SQL-driven distributed operation system 110, which allows the users to operate the SQL-driven distributed operating system by providing SQL commands that can be executed by the system, i.e. determining a query for execution.)
serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on power and based on: automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters; See Paragraph [0049], (The SQL-driven distributed operating system 110 can be configured to repeat or perform queries at specified intervals or at scheduled times.) See Paragraph [0073], (Optimization module 228 may utilize knowledge of future scheduled events in order to optimize query execution using information from scheduled queries.) See Paragraph [0114], (The SQL-driven distributed operating system may provide interactive progress feedback as each cell is executed in sequence, wherein each cell represents an executable SQL command, i.e. serially processing a plurality of row sets (e.g. processing the sequence of cells which may retrieve rows) over a temporal period (e.g. query execution may be scheduled) in conjunction with execution of the query via processing each row set of the plurality of row sets.) See Paragraph [0069], (Optimization module 228 may dynamically deduce information regarding data sources such as determining partition ranges of column values, i.e. based on power (e.g. Note [0099] wherein the SQL-driven distributed operating system may operate on any computer-enabled device such as vehicles, electricity meters, or voltmeters.) and based on: automatically selecting a requested number of rows to be included in each row set based on row scheduling parameters.)
wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period, See FIG. 4 & Paragraph [0117], (FIG. 4 illustrates method 400 comprising step 402 of receiving and performing an SQL operation to be performed using first and second data. At step 408, a result may be generated and provided through the interface provided by the computing system using multiple computing systems which may each concurrently process, access and create at least a portion of the generated result, i.e. wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period.)
Lerios does not disclose the step of generating a scheduling request for the requested number of rows;
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query;
and further based on processing of an additional plurality of rows included in the set of segments via a set of other processing modules of the set of parallelized processing module implemented in parallel with the processing module.
Barry discloses the step of generating a scheduling request for the requested number of rows; See Paragraph [0014], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. The method includes scheduling reorg tasks for each section and executing the scheduled reorg tasks on said sections. Note [0045] wherein a reorg operation comprises breaking up a tablespace and clustering index into logically distinct sets of data referred to as sections, i.e. generating a scheduling request for the requested number of rows.)
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query; See Paragraph [0052], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. Scheduling of sections during a reorg operation. A reorg operation may use packets that comprise fixed, non-logically contiguous set of keys and rows that is a subset of a section.) See Paragraph [0103], (The process includes a step of reading tablespace rows pointed to by a leaf page in logical order. Writing tablespace rows includes writing records into tablespace allocated in segments indicated by storage space ranges, i.e. receiving each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query.)
and further based on processing of an additional plurality of rows included in the set of segments via a set of other processing modules of the set of parallelized processing module implemented in parallel with the processing module. See Paragraph [0103], (The scheduled reorg tasks may be processed in parallel by a parallel computing system, clustered computing system and distributed computing system. Writing tablespace rows includes writing records into tablespace allocated in segments indicated by storage space ranges. Reading said tablespace rows therefore includes reading ranges of storage space, which are referred to as segments, i.e. further based on processing of an additional plurality of rows included in the set of segments via a set of other processing modules of the set of parallelized processing module implemented in parallel with the processing module.)
Lerios and Barry are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios to include the method of reorganizing tablespaces for executing queries as disclosed by Barry. Paragraph [0016] of Barry discloses that the database reorg process allows the system to split reorg processing into independent sections and schedule said sections for concurrent processing, which may improve the functioning of the computing environment in which it is used during a database reorg process.
Regarding dependent claim 2,
As discussed above with claim Lerios-Barry, 1 discloses all of the limitations.
Barry further discloses the step a scheduling module is operable to process a plurality scheduling requests for the query received across a set of parallelized processing modules executing the query that includes the processing module and the set of other processing modules based on dispersing a total plurality of rows included in the set of segments required for execution of the query for processing across the set of parallelized processing modules, See Paragraph [0076], (A scheduler or governor process may be used to handle scheduling. A processing of sections may be scheduled and sections are distributed among processor or computers for concurrent or parallel processing, i.e. wherein a scheduling module is operable to process a plurality scheduling requests for the query received across a set of parallelized processing modules executing the query that includes the processing module and the set of other processing modules.) See Paragraph [0026], (The DBS database management system supports partitioned tablespaces wherein the system sections sets of tablespace rows into different datasets based on a key value derived from a partitioning key and may correspond to ranges of values, i.e. based on dispersing a total plurality of rows included in the set of segments required for execution of the query for processing across the set of parallelized processing modules.)
and wherein serially processing each row set of the plurality of row sets is further based on: sending the scheduling request to the scheduling module, See FIG. 7 & Paragraph [0077], (FIG. 7 illustrates method 700 comprising step 702 of processing sections according to a scheduler task, i.e. sending the scheduling request to the scheduling module.)
wherein the each row set is received based on the scheduling module assigning the each row set to the processing module for processing in response to the scheduling module processing the scheduling request. See FIG. 7 & Paragraph [0081], (FIG. 7 comprises step 704 of processing leaf pages in a section by reading tablespace rows pointed to by the leaf page in logical order, i.e. wherein the each row set is received based on the scheduling module assigning the each row set to the processing module for processing (e.g. the scheduler task indicates the processing order of sections in the schedule) in response to the scheduling module processing the scheduling request.)
Regarding dependent claim 6,
As discussed above with claim Lerios-Barry, 1 discloses all of the limitations.
Barry further discloses the step wherein the plurality of row sets are serially requested via a plurality of scheduling requests, See Paragraph [0103], (Scheduled reorg tasks associated with individual sections may be executed in rounds as scheduled by the processor, i.e. wherein the plurality of row sets are serially requested via a plurality of scheduling requests (e.g. the scheduling of reorg operations).)
wherein a first row set of the plurality of row sets is processed prior to all other ones of the plurality of row sets based on:automatically selecting a first number of rows to be included in the first row set based on a value of a predetermined initial number of rows; See FIG. 7, (FIG. 7 illustrates method 700 comprising step 704 wherein the system may performed scheduled operations, which comprise processing leaf pages in a section by reading tablespace rows pointed to by the leaf page in a logical order, i.e. wherein a first row set of the plurality of row sets is processed prior to all other ones of the plurality of row sets based on (e.g. the first reorg operation to be scheduled):automatically selecting a first number of rows to be included in the first row set based on a value of a predetermined initial number of rows (e.g. step 704 of method 700).)
generating a first scheduling request of the plurality of scheduling requests, wherein the first scheduling request indicates the first number of rows, See FIG. 7 & Paragraph [0081], (FIG. 7 comprises step 704 of processing leaf pages in a section by reading tablespace rows pointed to by the leaf page in logical order, i.e. generating a first scheduling request of the plurality of scheduling requests, wherein the first scheduling request indicates the first number of rows (e.g. the leaf pages indicate the amount of rows to be read from tablespace).)
and wherein the first scheduling request is generated prior to generating all other ones of the plurality of scheduling requests; See Paragraph [0103], (Scheduled reorg tasks associated with individual sections may be executed in rounds as scheduled by the processor such that the interval between sections for which reorg tasks are scheduled in a round separates the sections by a size that compensates for varying section sizes, i.e. wherein the first scheduling request is generated prior to generating all other ones of the plurality of scheduling requests (e.g. the reorg operation for the plurality of sections is executed in rounds, including a first round which would service a first section via a first reorg task).)
and receiving the first row set for processing. See FIG. 7, (At step 704, the process comprises reading tablespace rows pointed to by a leaf page in logical order, i.e. receiving the first row set for processing.)
Regarding dependent claim 18,
As discussed above with claim 1, Lerios-Barry discloses all of the limitations.
Lerios further discloses the step wherein the query is executed via a plurality of nodes of the database system, wherein the set of parallelized processing modules are implemented via one node of the plurality of nodes, See Paragraph [0037], (SQL-driven operating system 110 may use computing systems 104, 124, 134 to operate as a distributed system that can each concurrently process, access and/or create at least a portion of the generated result, i.e. herein the query is executed via a plurality of nodes of the database system (e.g. computing systems 104, 124, 134), wherein the set of parallelized processing modules are implemented via one node of the plurality of nodes (e.g. computing systems 104, 124, 134 may concurrently process queries) .)
wherein the set of segments are processed via the set of parallelized processing modules based on the set of segments being assigned to the one node for processing, See FIG. 4 & Paragraph [0117], (FIG. 4 illustrates method 400 comprising step 402 wherein the received operation is performed using first data managed by a first computing system and second data that is managed by a second computing system, i.e. wherein the set of segments are processed via the set of parallelized processing modules (e.g. Note [0037] wherein the separate computing systems may concurrently process query data) based on the set of segments being assigned to the one node for processing (e.g. first data is managed by first computing system and second data managed by second computing system).
wherein the one node generates a partial query resultant via processing the set of segments, wherein a plurality of other partial query resultants are generated based on processing of a plurality of other sets of segments via other sets of parallelized processing modules of other nodes of the plurality of nodes, See Paragraph [0117], (The plurality of computing systems may each concurrently process, access, and create at least a portion of the generated result, i.e. wherein the one node generates a partial query resultant via processing the set of segments, wherein a plurality of other partial query resultants (e.g. the portions of the generated result created by the individual computing systems) are generated based on processing of a plurality of other sets of segments via other sets of parallelized processing modules of other nodes of the plurality of nodes (e.g. the plurality of computing systems act as a distributed system concurrently processing queries and generating at least a portion of a generated result. ).)
and wherein the query resultant is generated based on a plurality of partial query resultants that includes the partial query resultant and the plurality of other partial query resultants. See Paragraph [0117], (Method 400 comprises step 408 of providing a result generated by executing the SQL operation via the interface. The different computing systems create at least a portion of the generated result, which may then be delivered to the interface in its entirety, i.e. wherein the query resultant is generated based on a plurality of partial query resultants that includes the partial query resultant and the plurality of other partial query resultants.)
Regarding independent claim 19,
Lerios discloses a node of a database system comprises:a set of parallelized processing modules, wherein each of the set of parallelized processing modules is operable to:determine a query for execution; See FIG. 4 & Paragraph [0038], (FIG. 4 illustrates method 400 comprising step 302 of performing received operations via an SQL interface. A user 102 may operate a computing system 104 and interact with the SQL-driven distributed operating system 110, which allows the users to operate the SQL-driven distributed operating system by providing SQL commands that can be executed by the system, i.e. determining a query for execution.)
serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on power and based on:automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters; See Paragraph [0049], (The SQL-driven distributed operating system 110 can be configured to repeat or perform queries at specified intervals or at scheduled times.) See Paragraph [0073], (Optimization module 228 may utilize knowledge of future scheduled events in order to optimize query execution using information from scheduled queries.) See Paragraph [0114], (The SQL-driven distributed operating system may provide interactive progress feedback as each cell is executed in sequence, wherein each cell represents an executable SQL command, i.e. serially processing a plurality of row sets (e.g. processing the sequence of cells which may retrieve rows) over a temporal period (e.g. query execution may be scheduled) in conjunction with execution of the query via processing each row set of the plurality of row sets.) See Paragraph [0069], (Optimization module 228 may dynamically deduce information regarding data sources such as determining partition ranges of column values, i.e. based on power (e.g. Note [0099] wherein the SQL-driven distributed operating system may operate on any computer-enabled device such as vehicles, electricity meters, or voltmeters.) and based on: automatically selecting a requested number of rows to be included in each row set based on row scheduling parameters.)
wherein a query resultant for the query is generated based on processing of the plurality of row sets by the each of the set of parallelized processing modules. See FIG. 4 & Paragraph [0117], (FIG. 4 illustrates method 400 comprising step 402 of receiving and performing an SQL operation to be performed using first and second data. At step 408, a result may be generated and provided through the interface provided by the computing system using multiple computing systems which may each concurrently process, access and create at least a portion of the generated result.) See Paragraph [0037], (The SQL-driven distributed operating system 110 may utilize a plurality of computing systems 104, 124, 134 to concurrently process, access and/or create at least a portion of a generated result, i.e. wherein a query resultant for the query is generated based on processing of the plurality of row sets by the each of the set of parallelized processing modules.)
Lerios does not disclose the step of generating a scheduling request for the requested number of rows;
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query;
Barry discloses the step of generating a scheduling request for the requested number of rows; See Paragraph [0014], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. The method includes scheduling reorg tasks for each section and executing the scheduled reorg tasks on said sections. Note [0045] wherein a reorg operation comprises breaking up a tablespace and clustering index into logically distinct sets of data referred to as sections, i.e. generating a scheduling request for the requested number of rows.)
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query; See Paragraph [0052], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. Scheduling of sections during a reorg operation. A reorg operation may use packets that comprise fixed, non-logically contiguous set of keys and rows that is a subset of a section.) See Paragraph [0103], (The process includes a step of reading tablespace rows pointed to by a leaf page in logical order. Writing tablespace rows includes writing records into tablespace allocated in segments indicated by storage space ranges, i.e. receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query.)
Lerios and Barry are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios to include the method of reorganizing tablespaces for executing queries as disclosed by Barry. Paragraph [0016] of Barry discloses that the database reorg process allows the system to split reorg processing into independent sections and schedule said sections for concurrent processing, which may improve the functioning of the computing environment in which it is used during a database reorg process.
Regarding independent claim 20,
Lerios discloses a non-transitory computer readable storage medium comprises:at least one memory section that stores operational instructions that, when executed by at least one processing module that includes a processor and a memory, causes the at least one processing module to: determine a query for execution; See FIG. 4 & Paragraph [0038], (FIG. 4 illustrates method 400 comprising step 302 of performing received operations via an SQL interface. A user 102 may operate a computing system 104 and interact with the SQL-driven distributed operating system 110, which allows the users to operate the SQL-driven distributed operating system by providing SQL commands that can be executed by the system, i.e. determining a query for execution.)
serially processing a plurality of row sets over a temporal period in conjunction with execution of the query via processing each row set of the plurality of row sets based on power and based on:automatically selecting a requested number of rows to be included in the each row set based on row scheduling parameters; See Paragraph [0049], (The SQL-driven distributed operating system 110 can be configured to repeat or perform queries at specified intervals or at scheduled times.) See Paragraph [0073], (Optimization module 228 may utilize knowledge of future scheduled events in order to optimize query execution using information from scheduled queries.) See Paragraph [0114], (The SQL-driven distributed operating system may provide interactive progress feedback as each cell is executed in sequence, wherein each cell represents an executable SQL command, i.e. serially processing a plurality of row sets (e.g. processing the sequence of cells which may retrieve rows) over a temporal period (e.g. query execution may be scheduled) in conjunction with execution of the query via processing each row set of the plurality of row sets.) See Paragraph [0069], (Optimization module 228 may dynamically deduce information regarding data sources such as determining partition ranges of column values, i.e. based on power (e.g. Note [0099] wherein the SQL-driven distributed operating system may operate on any computer-enabled device such as vehicles, electricity meters, or voltmeters.) and based on: automatically selecting a requested number of rows to be included in each row set based on row scheduling parameters.)
wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period. See FIG. 4 & Paragraph [0117], (FIG. 4 illustrates method 400 comprising step 402 of receiving and performing an SQL operation to be performed using first and second data. At step 408, a result may be generated and provided through the interface provided by the computing system using multiple computing systems which may each concurrently process, access and create at least a portion of the generated result, i.e. wherein a query resultant for the query is generated based on processing of the plurality of row sets over the temporal period.)
Lerios does not disclose the step of generating a scheduling request for the requested number of rows;
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query;
Barry discloses the step of generating a scheduling request for the requested number of rows; See Paragraph [0014], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. The method includes scheduling reorg tasks for each section and executing the scheduled reorg tasks on said sections. Note [0045] wherein a reorg operation comprises breaking up a tablespace and clustering index into logically distinct sets of data referred to as sections, i.e. generating a scheduling request for the requested number of rows.)
and receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query; See Paragraph [0052], (Disclosing a method for reorganizing a tablespace in a database such that rows of the tablespace are arranged in a sequence defined in a tree-type clustering index of said tablespace. Scheduling of sections during a reorg operation. A reorg operation may use packets that comprise fixed, non-logically contiguous set of keys and rows that is a subset of a section.) See Paragraph [0103], (The process includes a step of reading tablespace rows pointed to by a leaf page in logical order. Writing tablespace rows includes writing records into tablespace allocated in segments indicated by storage space ranges, i.e. receiving the each row set for processing in response to the scheduling request via access to one segment of a set of segments required for execution of the query.)
Lerios and Barry are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios to include the method of reorganizing tablespaces for executing queries as disclosed by Barry. Paragraph [0016] of Barry discloses that the database reorg process allows the system to split reorg processing into independent sections and schedule said sections for concurrent processing, which may improve the functioning of the computing environment in which it is used during a database reorg process.
Claim(s) 3, 5 and 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lerios in view of Barry as applied to claim 2 above, and further in view of ANTONOPOULOS et al. (US PGPUB No. 2019/0317727; Pub. Date: Oct. 17, 2019).
Regarding dependent claim 3,
As discussed above with claim 2, Lerios-Barry discloses all of the limitations.
Lerios-Barry does not disclose the step wherein the each row set is selected by the scheduling module to include one of:exactly the requested number of rows indicated in the scheduling request; or less than the requested number of rows indicated in the scheduling request.
ANTONOPOULOS discloses the step wherein the each row set is selected by the scheduling module to include one of:exactly the requested number of rows indicated in the scheduling request; See Paragraph [0019], (Disclosing a method of receiving a database command to sort an unsorted dataset. Users may submit a query causing the database server to sort a table. Sort results are sent back to the requesting process or application.) See Paragraph [0038], (The method includes splitting a dataset into group of chunks identified for a different thread to sort.) See Paragraph [0040], (Scan metadata may comprise an SLA field indicating a number of rows to be contained in a chunk.) See FIG. 6 & Paragraph [0051], (FIG. 6 illustrates method 600 comprising step 606 of reading data from a dataset until the size of the chunk reaches the appropriate maximum indicated by the maximum chunk size, i.e. wherein the each row set is selected by the scheduling module to include one of: exactly the requested number of rows indicated in the scheduling request.)
The examiner notes that the step "wherein the each row set is selected by the scheduling module to include one of:exactly the requested number of rows indicated in the scheduling request; or less than the requested number of rows indicated in the scheduling request." is optional due to the use of the terms "include one of" and "or", the claim requires selection of an element from a list of alternatives, the prior art teaches the element if one of the alternatives is taught by the prior art, see MPEP 2143.03.
Lerios, Barry and ANTONOPOULOS are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios-Barry to include the method of retrieving a specific number of rows according to a chunk size as disclosed by ANTONOPOULOS. Doing so would allow the system to organize tabular data from potentially large tables into smaller chunks that are easier to analyze and subsequently sort.
Regarding dependent claim 5,
As discussed above with claim 2, Lerios-Barry-ANTONOPOULOS discloses all of the limitations.
ANTONOPOULOS further discloses the step wherein the each row set is selected by the scheduling module as one of:all of a set of unassigned rows included in the one segment based on a number of unassigned rows of the one segment being less than or equal to the requested number of rows indicated in the scheduling request based on one of:
the all of the set of unassigned rows included in the one segment corresponding to remaining rows included in the one segment based on all other rows in the one segment being already assigned for processing via at least one of the set of processing modules and further based on a number of remaining rows in the set of remaining rows being less than or equal to the requested number of rows indicated in the scheduling request;
or the all of the set of unassigned rows included in the one segment corresponding to a full set of rows included the one segment based on none of the full set of rows in the one segment having yet been assigned for processing via any of the set of processing modules and further based on a total number of rows in the full set of rows being less than or equal to the requested number of rows indicated in the scheduling request;
or a proper subset of the set of unassigned rows included in the one segment based on a number of unassigned rows included in the one segment being greater than or equal to the requested number of rows indicated in the scheduling request.
Specifically, a proper subset of the set of unassigned rows included in the one segment based on a number of unassigned rows included in the one segment being greater than or equal to the requested number of rows indicated in the scheduling request. See Paragraph [0051], (A chunk having a chunk size indicating a maximum number of rows may have an unsorted dataset read until the size of the chunk reaches the appropriate maximum, i.e. a proper subset of the set of unassigned rows included in the one segment based on a number of unassigned rows included in the one segment being greater than or equal (e.g. the unsorted dataset is larger than the chunk size) to the requested number of rows indicated in the scheduling request (e.g. step 602 of process 600 comprising determining a chunk size in response to step 601 of receiving a sort command).)
The examiner notes that the step " all of a set of unassigned rows included in the one segment based on a number of unassigned rows of the one segment being less than or equal to the requested number of rows indicated in the scheduling request based on one of:
the all of the set of unassigned rows included in the one segment corresponding to remaining rows included in the one segment based on all other rows in the one segment being already assigned for processing via at least one of the set of processing modules and further based on a number of remaining rows in the set of remaining rows being less than or equal to the requested number of rows indicated in the scheduling request;
or the all of the set of unassigned rows included in the one segment corresponding to a full set of rows included the one segment based on none of the full set of rows in the one segment having yet been assigned for processing via any of the set of processing modules and further based on a total number of rows in the full set of rows being less than or equal to the requested number of rows indicated in the scheduling request;
or a proper subset of the set of unassigned rows included in the one segment based on a number of unassigned rows included in the one segment being greater than or equal to the requested number of rows indicated in the scheduling request." is optional due to the use of the term "or", the claim requires selection of an element from a list of alternatives, the prior art teaches the element if one of the alternatives is taught by the prior art, see MPEP 2143.03.
Lerios, Barry and ANTONOPOULOS are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios-Barry to include the method of retrieving a specific number of rows according to a chunk size as disclosed by ANTONOPOULOS. Doing so would allow the system to organize tabular data from potentially large tables into smaller chunks that are easier to analyze and subsequently sort.
Regarding dependent claim 14,
As discussed above with claim 1, Lerios-Barry discloses all of the limitations.
Lerios-Barry does not disclose the step wherein each subsequent row set of the plurality of row sets processed after a first row set of the plurality of row sets are processed based on:determining whether to request additional rows for processing at a current time based on evaluating a current state of the row scheduling parameters,
wherein the scheduling request is generated at the current time in response to determining to request the additional rows for processing at the current time, and wherein the scheduling request is generated at a later time in response to determining to not request the additional rows for processing based on re-evaluating an updated state of the row scheduling parameters at the later time.
ANTONOPOULOS discloses the step wherein each subsequent row set of the plurality of row sets processed after a first row set of the plurality of row sets are processed based on:determining whether to request additional rows for processing at a current time based on evaluating a current state of the row scheduling parameters, See Paragraph [0019], (Disclosing a method of receiving a database command to sort an unsorted dataset. Users may submit a query causing the database server to sort a table. Sort results are sent back to the requesting process or application.) See Paragraph [0038], (The method includes splitting a dataset into group of chunks identified for a different thread to sort.) See Paragraph [0040], (Scan metadata may comprise an SLA field indicating a number of rows to be contained in a chunk.) See FIG. 6 & Paragraph [0051], (FIG. 6 illustrates method 600 comprising step 606 of reading data from a dataset until the size of the chunk reaches the appropriate maximum indicated by the maximum chunk size, i.e. determining whether to request additional rows for processing at a current time based on evaluating a current state of the row scheduling parameters (e.g. determining whether to continue to read rows into the chunk according to metadata characterizing the chunk).)
wherein the scheduling request is generated at the current time in response to determining to request the additional rows for processing at the current time, See FIG. 6, (FIG. 6 illustrates process 600 comprising step 606 of reading rows into a chunk until the number of rows satisfies a maximum chunk size. This process occurs following step 601 of receiving a sort command, i.e. wherein the scheduling request is generated at the current time in response to determining to request the additional rows for processing at the current time (e.g. the method of sorting table data is executed in response to a user command).)
The examiner notes that the step "wherein the scheduling request is generated at a later time in response to determining to not request the additional rows for processing based on re-evaluating an updated state of the row scheduling parameters at the later time." is optional due the fact that the claim indicates two scenarios that cannot occur simultaneously (e.g. a specific, unique scheduling request cannot be generated both at a current time and also at a later time), the claim requires selection of an element from a list of alternatives, the prior art teaches the element if one of the alternatives is taught by the prior art, see MPEP 2143.03.
Lerios, Barry and ANTONOPOULOS are analogous art because they are in the same field of endeavor, query optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Lerios-Barry to include the method of retrieving a specific number of rows according to a chunk size as disclosed by ANTONOPOULOS. Doing so would allow the system to organize tabular data from potentially large tables into smaller chunks that are easier to analyze and subsequently sort.
Claim(s) 4, 9 and 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lerios in view of Barry and ANTONOPOULOS as applied to claim 3 above, and further in view of May et al. (US PGPUB No. 2022/0019589; Pub. Date: Jan. 20, 2022).
Regarding dependent claim 4,
As discussed above with claim 1, Lerios-Barry discloses all of the limitations.
ANTONOPOULOS further discloses the step wherein an actual number of rows included in the each row set is selected to not exceed the requested number of rows based on requested number of rows being guaranteed to be greater than or equal to the minimum row set size. See FIG. 6, (FIG. 6 illustrates method 600 comprising step 606 wherein if the data read from the unsorted dataset reaches the maximum indicated chunk size, then the method proceeds to step 610 of sorting the chunk, i.e. wherein an actual number of rows included in the each row set is selected to not exceed the requested number of rows based on requested number of rows being guaranteed to be greater than or equal to the minimum row set size (e.g. the number of rows is not permitted to exceed the chu