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 .
The amendments were received on 12/17/2025. Claims 1-20 are pending where claims 1-20 were previously presented.
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 12/17/2025 has been entered.
35 USC § 112
The applicant amended the claims to address the 35 USC 112 rejections. In view of the amendments, the respective 35 USC 112 rejections have been withdrawn.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claims 1-4, 15-17, and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Certain et al [US 2020/0167424 A1] in view of Sherman et al [US 2012/0191697 A1] and Raghavan et al [US 2006/0253429].
With regard to claim 1, Certain teaches a database system comprising: a storage medium) to store a semi-materialized view (MV) defined on an MV condition, wherein the MV condition is representative of results of an executed query, the semi-MV including metadata containing references to objects containing data of one or more tables that satisfy the MV condition
the objects stored in a remote data store that is coupled to the database system over a network (see paragraph [0094]; the system can include multiple devices that store information throughout the network which can include remote data stores);
and at least one processor to: receive a query including a query condition; (see paragraph [0073]-[0074]; the system can receive a query that includes query conditions);
use the metadata in the semi-MV to directly retrieve data of the objects in the remote data store for the query (see paragraphs [0059], [0074] and [0094]; the system can utilize the index or semi-MV to retrieve data of the objects from the underlying tables).
Certain teaches a distributed database system but does not appear to explicitly teach:
metadata containing … at least one range of values indicative of content of rows of at least one column of the objects of the one or more tables that satisfy the MV condition,
the query condition specifying a range predicate on the at least one column;
determine that the semi-MV can be used to satisfy the query based on the MV condition and the query condition by, for each reference object, comparing the query condition to metadata that specifies, for the object, a minimum value and a maximum value of the at least one column to select a subset of the reference objects whose minimum/maximum values overlap the query condition;
…by directly retrieving only the selected subset of the reference objects from the remote data store without scanning rows of unselected objects.
Sherman teaches metadata containing … at least one range of values indicative of content of rows of at least one column of the objects of the one or more tables that satisfy the MV condition (see paragraphs [0020]; [0008]-[0012]; the system can utilize ranges with materialized views),
determine that the
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database query system of Certain by determining if the query can be satisfied by a materialized view/index as taught by Sherman in order to save processing time and memory usage by reducing the amount of data that has to be considered to determine if a materialized view/virtual index can satisfy the query by only evaluating/comparing the range predicates associated with the materialized view/virtual index to ascertain the range of values that the MV/virtual index represent instead of having to scan and compare each row of the entire MV/virtual index at runtime to determine if the MV/virtual index can be used with the query.
Certain in view of Sherman teach determine that the semi-MV can be used to satisfy the query based on the MV condition and the query condition (see Sherman, paragraph [0032]; see Certain, paragraphs [0074]-[0076]; the system can determine if the respective virtual index can be used to satisfy the query condition).
Certain in view of Sherman do not appear to explicitly teach:
the query condition specifying a range predicate on the at least one column;
determine that the semi-MV can be used to satisfy the query based on the MV condition and the query condition by, for each reference object, comparing the query condition to metadata that specifies, for the object, a minimum value and a maximum value of the at least one column to select a subset of the reference objects whose minimum/maximum values overlap the query condition;
…by directly retrieving only the selected subset of the reference objects from the remote data store without scanning rows of unselected objects.
Raghavan teaches the query condition specifying a range predicate on the at least one column (see paragraph [0037]; a range predicate can be utilized to specify a range that a value must satisfy in order to be considered as part of the result set);
…by directly retrieving only the selected subset of the reference objects from the remote data store without scanning rows of unselected objects (see paragraphs [0028]-[0031], [0035], and [0059]-[0064]; the system can determine a subset of the reference object(s) and be able to retrieve data while avoiding scanning unselected objects).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database query system of Certain in view of Sherman by providing means to provide predicates (filtering/selection criteria) that specify a range of desired values as taught by Raghavan in order to allow the system to be able to utilize the range partitioning of the underlying data store to reduce the amount of data that needs to be evaluated by pruning or not scanning data associated with partitions that can’t satisfy the query’s predicate thus improving overall responsiveness of the query by reducing computational processing time of not having to spend the overhead reading/scanning data from various partitions/data locations from memory that could never satisfy the query predicate.
Certain in view of Sherman and Raghavan teach determine that the semi-MV can be used to satisfy the query based on the MV condition and the query condition by, for each reference object, comparing the query condition to metadata that specifies, for the object, a minimum value and a maximum value of the at least one column to select a subset of the reference objects whose minimum/maximum values overlap the query condition (see Raghavan, paragraphs [0028]-[0031], [0035], and [0059]-[0064]; see Sherman, paragraph [0032]; see Certain, paragraphs [0074]-[0076]; the system can determine if the respective virtual index can be used to satisfy the query condition via comparison of predicates/conditions of the query to the respective ranges of the index/partition thus allowing the system to select objects that overlap/met the query conditions).
With regard to claim 2, Certain in view of Sherman and Raghavan teach wherein the references comprise information of locations of the objects (see Certain, paragraph [0063]; the references can include locations of the objects).
With regard to claim 3, Certain in view of Sherman and Raghavan teach wherein the references comprise names of the objects (see Certain, paragraphs [0023] and [0063]; the virtual index can be created using particular references to tables and the system can analyze the SQL statements of the query to determine whether the tables represented by the virtual index can be used to satisfy the user’s query).
With regard to claim 4, Certain in view of Sherman and Raghavan teach the MV condition comprises a predicate on the column (see Certain, paragraphs [0058]-[0059]; query language statements can be used to form the definition of the virtual index/materialized view).
With regard to claims 15 and 19, these claims are substantially similar to claim 1 and are rejected for similar reasons as discussed above.
With regard to claim 16, Certain in view of Sherman and Raghavan teach wherein the MV condition is a join condition specified on a first table and a second table (see Certain, paragraphs [0058]-[0063]; the system’s condition for generating the Semi-MV/index can be based on a join condition),
and the semi-MV contains a plurality of rows, each respective row of the plurality of rows including one or more references to one or more objects of the first table, and one or more references to one or more objects of the second table that are to be joined with the one or more objects of the first table (see Certain, paragraphs [0062]-[0063]; the database system can utilize joins and have the virtual index/semi-MV be based on the join conditions).
With regard to claim 17, Certain in view of Sherman and Raghavan teach wherein the metadata specifies a range of values between a minimum value and a maximum value of a column in rows of each object of the objects (see Sherman, paragraphs [0020]; [0008]-[0012]; the system can utilize ranges with materialized views).
With regard to claim 20, this claim is substantially similar to claim 4 and are rejected for similar reasons as discussed above.
Claims 5-10, 12, 13, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Certain et al [US 2020/0167424 A1] in view of Sherman et al [US 2012/0191697 A1] and Raghavan et al [US 2006/0253429] in further view of Ghazal et al [US 6,505,188].
With regard to claim 5, Certain in view of Sherman and Raghavan teach all the claim limitations of claims 1 and 4 as discussed above.
Certain in view of Sherman and Raghavan do not appear to explicitly teach:
a plurality of processing engines to perform database operations in response to the query, wherein mapping information allocates different assigned value ranges of the column across respective different processing engines of the plurality of processing engines,
and wherein a first processing engine of the plurality of processing engines is to: determine whether the range of values of the column included in the metadata includes values in a first assigned value range for the first processing engine, the first assigned value range allocated to the first processing engine by the mapping information.
Ghazal teaches a plurality of processing engines to perform database operations in response to the query, wherein mapping information allocates different assigned value ranges of the column across respective different processing engines of the plurality of processing engines (see Ghazal, Figure 1 and col 3, lines 22-60 and col 4, lines 20-36; the system can divide/partition the column values into ranges for each processing unit/processing engine),
and wherein a first processing engine of the plurality of processing engines is to: determine whether the range of values of the column included in the metadata includes values in a first assigned value range for the first processing engine, the first assigned value range allocated to the first processing engine by the mapping information (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database query system of Certain in view of Sherman and Raghavan by utilizing multiple processing engines as taught by Ghazal in order to leverage distributed/parallel processing capabilities to the system to allow the various processing engines respond to requests without overloading the memory of the processing engines by having each processing engine be associated with some subset (range) of data instead of having to duplicate all the data (or at least all the indices) to each processing engine.
With regard to claim 6, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the first processing engine is to further: in response to determining that the range of values of the column included in the metadata includes values in the first assigned value range, retrieve, from the remote data store, the objects having values of the column in the first assigned value range for performing a database operation in response to the query (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles).
With regard to claim 7, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the MV condition is a join condition on a plurality of tables, the plurality of tables including a first table and a second table (see Certain, paragraphs [0058]-[0063]; see Ghazal, col 7, lines 54-65; the system’s condition for generating the Semi-MV/index can be based on a join condition ).
With regard to claim 8, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the join condition is on the column, and the mapping information allocates the different assigned value ranges of the column in the first table across the respective different processing engines of the plurality of processing engines (see Certain, paragraphs [0058]-[0063]; see Ghazal, col 7, lines 54-65; col 4, lines 20-36 and col 3, lines 52-60; the system’s condition for generating the Semi-MV/index can be based on a join condition associated with a column and range partitioning can be used to allocate the different ranges of the table to the different processing engines).
With regard to claim 9, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the first processing engine is to determine whether the range of values of the column included in the metadata includes values of the column of the second table in the first assigned value range (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles including for the second table).
With regard to claim 10, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the first processing engine is to further: in response to determining that the range of values of the column included in the metadata includes values of the column of the second table in the first assigned value range, retrieve, from the remote data store, the objects of the second table having values of the column in the first assigned value range for performing a database operation in response to the query (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles).
With regard to claim 12, Certain in view of Sherman and Raghavan teach all the claim limitations of claims 1 and 4 as discussed above.
Certain in view of Sherman and Raghavan do not appear to explicitly teach:
a plurality of processing engines to perform database operations in response to the query, wherein mapping information allocates different assigned value ranges of the column across respective different processing engines of the plurality of processing engines, wherein a first processing engine of the plurality of processing engines is to:
determine whether the range of values of the column included in the metadata includes values in a first assigned value range for the first processing engine, the first assigned value range allocated to the first processing engine by the mapping information, in response to determining that the range of values of the column included in the metadata includes values in the first assigned value range, retrieve, from the remote data store, the objects having values of the column in the first assigned value range for performing a local database operation in response to the query, and wherein a second processing engine of the plurality of processing engines is to:
determine whether the range of values of the column included in the metadata includes values in a second assigned value range for the second processing engine, the second assigned value range allocated to the second processing engine by the mapping information, and in response to determining that the range of values of the column included in the metadata includes values in the second assigned value range, retrieve, from the remote data store, the objects having values of the column in the second assigned value range for performing a local database operation in response to the query.
Ghazal teaches a plurality of processing engines to perform database operations in response to the query, wherein mapping information allocates different assigned value ranges of the column across respective different processing engines of the plurality of processing engines, wherein a first processing engine of the plurality of processing engines is to: determine whether the range of values of the column included in the metadata includes values in a first assigned value range for the first processing engine, the first assigned value range allocated to the first processing engine by the mapping information (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles including a first engine),
in response to determining that the range of values of the column included in the metadata includes values in the first assigned value range, retrieve, from the remote data store, the objects having values of the column in the first assigned value range for performing a local database operation in response to the query (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles),
and wherein a second processing engine of the plurality of processing engines is to: determine whether the range of values of the column included in the metadata includes values in a second assigned value range for the second processing engine, the second assigned value range allocated to the second processing engine by the mapping information (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles including a second engine),
and in response to determining that the range of values of the column included in the metadata includes values in the second assigned value range, retrieve, from the remote data store, the objects having values of the column in the second assigned value range for performing a local database operation in response to the query (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database query system of Certain in view of Sherman and Raghavan by utilizing multiple processing engines as taught by Ghazal in order to leverage distributed/parallel processing capabilities to the system to allow the various processing engines respond to requests without overloading the memory of the processing engines by having each processing engine be associated with some subset (range) of data instead of having to duplicate all the data (or at least all the indices) to each processing engine.
With regard to claim 13, Certain in view of Sherman and Raghavan in further view of Ghazal teach wherein the query is a join query (see Ghazal, col 5, lines 26-35; the user query can be a join query),
the local database operation performed by the first processing engine is a local join operation performed using a data structure in a memory of the first processing engine, and the local database operation performed by the second processing engine is a local join operation performed using a data structure in a memory of the second processing engine (see Ghazal, col 3, lines 52-60; the work is divided amongst the processing engines so that the task of operating on the subset of rows for that processing engines is performed by the processors of that processing unit/engine).
With regard to claim 18, Certain in view of Sherman and Raghavan teach all the claim limitations of claims 15 and 17 as discussed above.
Certain in view of Sherman and Raghavan do not appear to explicitly teach wherein the database system comprises a plurality of processing engines to perform parallel database operations in response to the query, and the instructions upon execution cause the database system to: assign rows of the objects to the plurality of processing engines based on the range of values of the column.
Ghazal teaches wherein the database system comprises a plurality of processing engines to perform parallel database operations in response to the query, and the instructions upon execution cause the database system to: assign rows of the objects to the plurality of processing engines based on the range of values of the column (see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles where the system can divide/partition the data based on range value partitioning and can perform parallel processing across the various processing units/engines).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database query system of Certain in view of Sherman and Raghavan by utilizing multiple processing engines as taught by Ghazal in order to leverage distributed/parallel processing capabilities to the system to allow the various processing engines respond to requests without overloading the memory of the processing engines by having each processing engine be associated with some subset (range) of data instead of having to duplicate all the data (or at least all the indices) to each processing engine.
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Certain et al [US 2020/0167424 A1] in view of Sherman et al [US 2012/0191697 A1] and Raghavan et al [US 2006/0253429] in further view of Ghazal et al [US 6,505,188] and in further view of Grochowski et al [US 2014/0156635 A1].
With regard to claim 11 Certain in view of Sherman and Raghavan in further view of Ghazal teach all the claim limitations of claims 1 and 4-8 as discussed above.
Certain in view of Sherman and Raghavan in further view of Ghazal teach statistics on column values but do not appear to explicitly teach wherein the at least one processor is to: sample values of the column of the first table; and derive the mapping information based on the sampled values of the column of the first table.
Grochowski teaches sample values of the column of the first table (see paragraphs [0049]-[0050]; the system can utilize sample values to extrapolate various pieces of information).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database system of Certain in view of Sherman and Raghavan in further view of Ghazal by utilizing a sample set to extrapolate various values/statistics as taught by Grochowski in order to determine various statistical values such as number of unique values and minimum/maximum values by utilizing a sample set to determine approximate values thereby leveraging the statistical values to help improve query performance while reducing processing time by not having to analyze every record/row.
Certain in view of Sherman and Raghavan in further view of Ghazal and in further view of Grochowski teach wherein the at least one processor is to: sample values of the column of the first table; and derive the mapping information based on the sampled values of the column of the first table (see Grochowski, paragraphs [0049]-[0050]; Ghazal, Figure 1 and col 3, lines 22-60 and col 4, lines 20-36; the system can divide/partition the column values into ranges for each processing unit/processing engine where the system can utilize a sample to determine the range of values for the database column).
Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Certain et al [US 2020/0167424 A1] in view of Sherman et al [US 2012/0191697 A1] and Raghavan et al [US 2006/0253429] in further view of Ghazal et al [US 6,505,188] and in further view of Graefe [US 2013/0013585 A1].
With regard to claim 14 Certain in view of Sherman and Raghavan in further view of Ghazal teach all the claim limitations of claims 1, 4, and 12-13 as discussed above.
Certain in view of Sherman and Raghavan in further view of Ghazal teach hash functions but do not appear to explicitly teach wherein the local database operation performed by the first processing engine is a first hash join operation in a hash table in the memory of the first processing engine, and the local database operation performed by the second processing engine is a second hash join operation in a hash table in the memory of the second processing engine.
Graefe teaches a first hash join operation in a hash table in the memory of the first processing engine (see paragraph [0043]; the system can perform hash join on a hash table).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the database system of Certain in view of Sherman and Raghavan in further view of Ghazal by utilizing hash table storage and hash join operations as taught by Graefe in order to expand the usability of the system to handle other types of data structures including hash tables and also include means to perform established database operations such as hash joins for the appropriate data structure used by the system.
Certain in view of Sherman and Raghavan in further view of Ghazal teach in further view of Graefe teach wherein the local database operation performed by the first processing engine is a first hash join operation in a hash table in the memory of the first processing engine, and the local database operation performed by the second processing engine is a second hash join operation in a hash table in the memory of the second processing engine (see Graefe, paragraph [0043]; see Ghazal, col 4, lines 20-36 and col 3, lines 52-60; the system utilizes multiple processing engines that perform functions of the subset of rows that each particular processing engine stores/handles including using hash tables and hash join operations).
Response to Arguments
Applicant’s arguments (see the second paragraph on page 8) with respect to the 35 USC 112 rejections have been fully considered and are persuasive. The applicant amended the claims to address the previous 35 USC 112 rejections. In view of the amendments, the respective 35 USC 112 rejections have been withdrawn.
Applicant’s arguments (see the second to last paragraph on page 8 through the last paragraph on page 10) with respect to the rejection(s) of claim(s) under 35 USC 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Raghavan. The applicant amended the claims to incorporate new limitations that required further search and consideration. As discussed above in the 35 USC 103 rejections, a new reference was found that, when combined, would teach or fairly suggest the claim limitations as recited.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARC S SOMERS whose telephone number is (571)270-3567. The examiner can normally be reached M-F 11-8 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, Ann Lo can be reached on 5712729767. 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.
/MARC S SOMERS/Primary Examiner, Art Unit 2159 2/26/2026