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 .
Response to Amendment
The amendment filed 10/23/2025 has been entered. Claims 1-20 have been amended. Claims 1-20 are currently pending in the instant application.
Response to Arguments
Applicant’s arguments, see pages 11-18, filed 10/23/2025, with respect to claims 1-20 have been fully considered and are persuasive. The 35 U.S.C. 101 rejection of claims 1-20 has been withdrawn.
Applicant’s arguments, see pages 11-18, filed 10/23/2025, with respect to claims 12-13 have been fully considered and are persuasive. The 35 U.S.C. 112(b) rejection of claims 12 and 13 has been withdrawn.
Applicant’s arguments, see pages 19-23, filed 10/23/2025, with respect to the rejection(s) of claim(s) 1-20 under 35 U.S.C. 102 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 Liu et al (US 12,248,473). Liu teaches the amended limitations seen in the current rejection below.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Liu et al (US 12,248,473).
Liu discloses:
1. (Currently Amended) A computer-implemented method for improving query performance, the computer implemented computer-implemented method comprising:interceptinq, by a computer processor, a plurality of queries sent to a database while the database continues to function (FIG. 1 illustrates a logical block diagram of predicting query performance for optimizing database processing, according to some embodiments. Various optimizations of a database operation may be performed by an optimizer 160 for a database system (e.g., a standalone database system or a database service like database service 210 in FIG. 2). Optimizer 160 may take predictions from a performance predictor 150 to make optimization decisions, such as to pack queries for concurrent execution, to determine compilation optimizations for query segments, to prioritize queries in queues, to prioritize optimization tasks, to scale database clusters and so forth, for one or more database processing clusters 130. It should be understood, however, that these are merely examples of database performance optimizations and are not intended to be limiting. Database processing clusters 130 may provide access to database data 140 (e.g., performing one or more queries 132).;capturinq, by the computer processor, metadata for each query of the plurality of queries, wherein the metadata includes a query response time of each query of the plurality of queries (Col 12- lines 35-45 (48) A database schema, data format and/or other metadata information for the data stored among the compute nodes, such as the data tables stored in the cluster, may be managed and stored by leader node 410. Query planning 412 may account for remotely stored data by generating node-specific query instructions that include remote operations to be directed by individual compute node(s). Although not illustrated, in some embodiments, a leader node may implement burst manager to send 406 a query plan generated by query planning 412 to be performed at another attached processing cluster and return results 408 received from the burst processing cluster to a client as part of results 403.);classifying, by [[a]]the computer processor, the plurality of queries sent to a database based on one or more actions of the plurality of queries sent to the database and one or more objects of the plurality of queries sent to the database (Col 5 lines 50-65 Database services 210 may be included in various types of data processing services that perform general or specialized data processing functions (e.g., anomaly detection, machine learning, data mining, big data querying, or any other type of data processing operation). For example, in at least some embodiments, database services 210 may include a map reduce service that creates clusters of processing nodes that implement map reduce functionality over data stored in the map reduce cluster as well as data stored in data storage service 270. In another example, database service 210 may include various types of database services (both relational and non-relational) for storing, querying, and updating data. Such services may be enterprise-class database systems that are highly scalable and extensible. Queries may be directed to a database in database service 210 that is distributed across multiple physical resources, and the resource configurations, such as processing clusters 232, used to process the queries may be scaled up or down on an as needed basis.) ;creating, by the computer processor, clusters of the plurality of queries sent to the database based on the classifying of the plurality of queries;determining, by the computer processor, a respective cluster average of each cluster of the clusters based on the metadata, wherein each cluster of the clusters includes a respective set of queries of the plurality of queries, and the respective cluster average corresponds to a performance metric associated with an average query response time of the respective set of queries comparing, by the computer processor, a performance of the respective set of queries within a cluster of the clusters based on the respective cluster average (col 16 lines 5-50);identifying, by the computer processor, based on the comparinq,one or more deviating queries from the respective set of queries within the cluster, wherein[[,]] the one or more deviating queries deviate from the respective [[a ]]cluster average in excess of a threshold associated with the respective cluster averaqe (col 11 lines 20-30 A particular feature vector entry may have a number of samples represented in the sample count 304, the samples generated from results of previous executions of queries with the feature vector. For each performance characteristic, there may be “count” samples 3034 of the performance characteristic as well as a prediction 320 generated from the respective sample values. In some embodiments, this prediction may be an average or other statistical calculation, although this is merely an example prediction, any number of other predictions may be envisioned and the above example is not intended to be limiting.);and generating, by the computer processor, optimized queries for the one or more deviating queries. (figure 6, 780)
2. (Currently Amended) The computer-implemented method of claim 1, wherein the generating of the optimized queries comprises replacing the one or more deviating queries with similar queries that meet a similarity metric, or query modifications generated to modify the one or more deviating queries. (FIG. 7 is a high-level flowchart illustrating methods and techniques to implement adding observed performance characteristics to a history of queries, according to some embodiments. A query feature vector with observed performance characteristics may be added to query feature vector history, such as the history 153 of FIG. 1, to support future predictions, in various embodiments. As shown in 800, a determination may first be made whether the feature vector matches or is similar to known feature vectors of entries of the history, such as a feature vector 300 as shown in FIG. 3. If the feature vector is similar to a vector defined in the history, as shown in as a positive exit in 800, the process may advance to 840. If the feature vector does not match any vector defined in the history, as shown in as a negative exit in 800, the process may advance to 810.)
3. (Currently Amended) The computer-implemented method of claim 2, wherein the similarity metric comprises at least one of a predetermined degree of similarity in meaning, a predetermined degree of similarity in query components, or a predetermined degree of similarity in query tasks performed. (FIG. 7 is a high-level flowchart illustrating methods and techniques to implement adding observed performance characteristics to a history of queries, according to some embodiments. A query feature vector with observed performance characteristics may be added to query feature vector history, such as the history 153 of FIG. 1, to support future predictions, in various embodiments. As shown in 800, a determination may first be made whether the feature vector matches or is similar to known feature vectors of entries of the history, such as a feature vector 300 as shown in FIG. 3. If the feature vector is similar to a vector defined in the history, as shown in as a positive exit in 800, the process may advance to 840. If the feature vector does not match any vector defined in the history, as shown in as a negative exit in 800, the process may advance to 810.)
4. (Currently Amended) The computer-implemented method of claim 2, further comprising: modifying, by the computer processor, based on responsive to the similar queries not being computed, modifying the one or more deviating queries,wherein the modifying of the one or more deviatinq queries comprises one or more of the following: removing loops, subqueries, or wildcards from the one or more deviating queries. (Col 17 lines 1-15 - (67) The control flow above acquires new clusters only in the case of a large query, whose runtime is long enough and which scales well enough to make a larger cluster worth the extra preparation time. However, it may be desirable to acquire a new cluster for shorter queries, e.g. in the presence of queueing. For this, use a loop that's separate from the above query flow. Every 10 seconds, a background task re-evaluates the activity group of every cluster and decide whether to acquire more. Pending clusters are easy since they have not been attached yet. However, other clusters may need to transition between active and inactive to avoid cost escalation. For example, if all clusters are kept active, each cluster may service a low load of queries, but the combination of clusters incurs a very large cost.)
5. (Currently Amended) The computer-implemented method of claim 1, further comprising:intercepting, by the computer processor, the plurality of queriesbsent to the database, utilizing a database monitoring system; capturing metadata; anddecomposing, by the computer processor, structures of the plurality of queries intercepted by the database monitoring system. (col 12 lines 35-45 - (48) A database schema, data format and/or other metadata information for the data stored among the compute nodes, such as the data tables stored in the cluster, may be managed and stored by leader node 410. Query planning 412 may account for remotely stored data by generating node-specific query instructions that include remote operations to be directed by individual compute node(s). Although not illustrated, in some embodiments, a leader node may implement burst manager to send 406 a query plan generated by query planning 412 to be performed at another attached processing cluster and return results 408 received from the burst processing cluster to a client as part of results 403.)
6. (Currently Amended) The computer-implemented method of claim 5, further comprising:storing, by the computer processor, in an analytics repository, the plurality of queries intercepted by the database monitoring system; andstoring, by the computer processor,the metadata[[,]] and the decomposed structures in the[[an]] analytics repository. (Figure 6 740-780)
7. (Currently Amended) The computer-implemented method of claim 1, wherein the classifying of the plurality of queries comprises further comprising: categorizing the plurality of queries sent to the database as select or insert queries. (Col 6 -lines 1-10)
8. (Currently Amended) The computer-implemented method of claim 1, wherein the classifying of the plurality of queries comprises further comprising: categorizing the plurality of queries sent to the database as database columns or database tables. (Col 6 lines 35-55 - in embodiments where database service 210 is a data warehouse service, the data warehouse service may offer clients a variety of different data management services, according to their various needs. In some cases, clients may wish to store and maintain large of amounts data, such as sales records marketing, management reporting, business process management, budget forecasting, financial reporting, website analytics, or many other types or kinds of data. A client's use for the data may also affect the configuration of the data management system used to store the data. For instance, for certain types of data analysis and other operations, such as those that aggregate large sets of data from small numbers of columns within each row, a columnar database table may provide more efficient performance. In other words, column information from database tables may be stored into data blocks on disk, rather than storing entire rows of columns in each data block (as in traditional database schemes). The following discussion describes various embodiments of a relational columnar database system. However, various versions of the components discussed below as may be equally adapted to implement embodiments for various other types of relational database systems, such as row-oriented database systems. Therefore, the following examples are not intended to be limiting as to various other types or formats of database systems.)
9. (Currently Amended) The computer-implemented method of claim 1, further comprising:determining, by the computer processor, an average minimum, an average maximum, or an average variance of querv response[[ time]] times of the respective set of queries[[,]].identifying, by the computer processor, one or more records affected by each query of the respective set of queries[[,]] and determining, by the computer processor, a computational load for each distinct query of the respective set of queries sent to the database. (col 11 lines 20-30 A particular feature vector entry may have a number of samples represented in the sample count 304, the samples generated from results of previous executions of queries with the feature vector. For each performance characteristic, there may be “count” samples 3034 of the performance characteristic as well as a prediction 320 generated from the respective sample values. In some embodiments, this prediction may be an average or other statistical calculation, although this is merely an example prediction, any number of other predictions may be envisioned and the above example is not intended to be limiting.)
10. (Currently Amended) The computer-implemented method of claim 8, wherein the one or more deviating queries are queries that cause the database to run in a way that fails to meet a proper run criteria or that overload the database. (col 16 lines 5-50)
11. (Currently Amended) The computer-implemented method of claim 1, further comprising comparing, by the computer processor, the performance by:assessing the plurality of queries within the clusters based on criteria comprising at least one of a user/role, a query start time, aquery-response time, a records-affected, a machine computational cost, a where clause, a running time, a group by clause, one or more fields, or an order of join. (col 16 lines 5-50)
12. (Currently Amended) The computer-implemented method of claim 2[[1]], further comprising:adding, by the computer processor, the [[a ]]metadata to the optimized queries during the replacing of the one or more deviatinq queries. (Figure 8, 930)
Claims 13-20 are rejected using similar reasoning seen in the rejection of claims 1-12 due to reciting similar limitations but directed towards different statutory categories.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SAMUEL SHARPLESS whose telephone number is (571)272-1521. The examiner can normally be reached M-F 7:30 AM- 3:30 PM (ET).
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, ALEKSANDR KERZHNER can be reached at 571-270-1760. 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.
/S.C.S./Examiner, Art Unit 2165
/ALEKSANDR KERZHNER/Supervisory Patent Examiner, Art Unit 2165