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 .
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/16/2025 has been entered.
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) 21, 23-25, 27, 31, 33-35 and 37 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zeng et al. (US PGPUB No. 2019/0108282; Pub. Date: Apr. 11, 2019) in view of Rech et al. (US PGPUB No. 2023/0281218; Pub. Date: Sep. 7, 2023)
Regarding independent claim 21,
Zeng discloses an administration sub-system of a database system, wherein the administration sub- system comprises: a plurality of computing resources, wherein a computing resource of the plurality of computing resources is a set of processing core resources of a plurality of processing core resources, See FIG. 13 & Paragraph [0101], (Disclosing a method for classifying a search query by processing term embeddings in order to construct a query command to be executed against a data source. FIG. 13 illustrates a computer system 1300 having processor 1302 which may be a multi-core processor or include one or more processors for executing the method, i.e. an administration sub-system of a database system, wherein the administration sub-system comprises: a plurality of computing resources, wherein a computing resource of the plurality of computing resources is a set of processing core resources of a plurality of processing core resources,)
of a set of computing nodes of a plurality of computing nodes, See FIG. 1 & Paragraph [0028], (Computer system 1300 implements social-networking system 100 of FIG. 1 comprising social networking system 160 which includes a plurality of servers 162. Each server 162 may be a distributed server spanning multiple computers or multiple datacenters, i.e. of a set of computing nodes of a plurality of computing nodes,)
of a set of computing devices of a plurality of computing devices, See FIG. 1 & Paragraph [0028], (Social-networking system 100 of FIG. 1 comprising social networking system 160 which includes a plurality of servers 162. Each server 162 may be a distributed server spanning multiple computers or multiple datacenters, i.e. of a set of computing devices of a plurality of computing devices,)
of a set of computing device clusters of a plurality of computing device clusters, See FIG. 1 & Paragraph [0025], (FIG. 1 illustrates system 100 comprising social networking system 150, client system 130 and third-party system 170 which are operatively coupled via links 150 to network 110 wherein systems 160, 130 and 170 may be embodied as computing devices used to executed the method, i.e. of a set of computing device clusters of a plurality of computing device clusters,)
wherein the set of computing resources of the plurality of computing resources is operable to: assign service classes to queries in accordance with workload management protocols, See Paragraph [0060], (Social networking system 160 may receive a search query from a client system 130 wherein the system may determine whether the search query is a grammar query or not.) See Paragraph [0066], (The process of classifying a search query by processing term embeddings. This process includes performing a unigram check 520 which may save computing resources significantly for search queries with unigram or well-known n-grams, i.e. wherein the set of computing resources of the plurality of computing resources is operable to: assign service classes to queries in accordance with workload management protocols,)
wherein, for a query of the queries, the set of processing core resources assigns a service class of the service classes by: analyzing a plurality of expressions of the query to identify an expression pattern, See Paragraphs [0060]-[0061], (Social networking system 160 may receive a search query from a client system 130 wherein the system may determine whether the search query is a grammar query or not. Social-networking system 160 may determine whether an input search query matches any of the plurality of grammar templates in a grammar template index by checking the query against said index, i.e. wherein, for a query of the queries, the set of processing core resources assigns a service class of the service classes by: analyzing a plurality of expressions of the query to identify an expression pattern,)
wherein an expression of the plurality of expressions includes a set of code terms, wherein a code term of the set of code terms includes an operator and corresponding operand or a function and corresponding operand; See Paragraph [0044], (A search query may comprise an unstructured text query and may comprise one or more text strings including one or more n-grams.) See Paragraph [0061], (The one or more n-grams in the search query refer to entities having entity types and identified by unique identifiers in the online social network, i.e. wherein an expression of the plurality of expressions includes a set of code terms, wherein a code term of the set of code terms includes an operator (e.g. Note [0060] wherein the social-networking system may map a query directly to an executable query command) and corresponding operand (e.g. Note [0079] wherein the input search query is processed to produce query commands that the social-networking system 160 may use to retrieve search results).)
Zeng does not disclose the step wherein when a service class slot of a plurality of service class slots associated with the service class is available, allocating the service class slot to support execution of the query. when the expression pattern is one of a plurality of expression patterns, indexing a list of service classes based on the expression pattern to identify the service class, wherein a first service class of the service classes corresponds to a first level of database resources to be allocated for query execution, and a second service class of the service classes corresponds to a second level of database resources to be allocated for query execution;
allocating the query to the service class;
and when a service class slot of a plurality of service class slots associated with the service class is available, allocating the service class slot to support execution of the query.
Rech discloses the step wherein when a service class slot of a plurality of service class slots associated with the service class is available, allocating the service class slot to support execution of the query. when the expression pattern is one of a plurality of expression patterns, indexing a list of service classes based on the expression pattern to identify the service class, See Paragraph [0047], (Disclosing a system for offloading received queries based on a load metric of a primary database including determining whether a first offload condition is satisfied. The system comprises WLM component 285 comprising a plurality of service classes and rules or thresholds associated with said service classes. Rules may be based on thresholds or parameters such as duration, CPU usage, data read, rows read, etc. Query processing is determined based on characteristics of the query based on an assigned service class, for example an service class labelled "READONLY ACTIVITIES" may be assigned to a query based on thresholds and parameters including a number of rows read by the query, i.e. when the expression pattern is one of a plurality of expression patterns, indexing a list of service classes based on the expression pattern to identify the service class (e.g. a number of rows read by an SQL query indicates at least the existence of a SELECT operator).)
wherein a first service class of the service classes corresponds to a first level of database resources to be allocated for query execution, and a second service class of the service classes corresponds to a second level of database resources to be allocated for query execution; See Paragraph [0047], (Each service class is associated with one or more actions that can be executed when the service class is considered. Workload of a primary database may be associated with one or more service classes while queries may be redirected to a secondary database system if a query is determined to be assigned to one or more service classes. [0047] describes at least two service classes "READ ON STANDBY" and "READONLY ACTIVITIES" which inform which database system will be used to execute a query, i.e. wherein a first service class of the service classes corresponds to a first level of database resources to be allocated for query execution, and a second service class of the service classes corresponds to a second level of database resources to be allocated for query execution (e.g. queries having different service classes may be executed by different DB systems ).)
allocating the query to the service class; See Paragraph [0047], (A workload comprising one or more queries may be assigned one or more service classes by WLM component 285 wherein the rules associated with the assigned classes may be used by dispatching engine 286 to process the workload using said actions.)
and when a service class slot of a plurality of service class slots associated with the service class is available, allocating the service class slot to support execution of the query. See Paragraph [0037], (Primary database system 100A comprises a storage 107A having associated metadata comprising connection information and status information including an availability of a secondary DB system.) See Paragraphs [0047]-[0048], (The system may specify rules for query service classes that indicate whether a query is to be executed at a primary DB system or offloaded to the secondary database system, for example by determining an amount of concurrent activities or queued activities, i.e. when a service class slot of a plurality of service class slots associated with the service class is available (e.g. a query is assigned a service class which may be associated with directing execution of a query at either a primary or secondary DB system), allocating the service class slot to support execution of the query (e.g. a query is assigned a service class which controls execution according to rules and behaviors associated with the service class).)
Zeng and Rech are analogous art because they are in the same field of endeavor, query classification. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng to include the method of classifying and redirecting query execution resources based on query service classes as disclosed by Rech. Paragraph [0023] of Rech discloses that the method of offloading and rerouting queries between separate DB systems allows the system to dynamically check the resources of a primary database system in order to determine which system may run certain queries according to workload parameters and query parameters, which represents an improvement in dynamic rerouting.
Regarding dependent claim 23,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng further discloses the step wherein the set of processing core resources is further operable to assign the service class of the service classes by: scanning the query based on the plurality of expression patterns to identify one of the patterns within the query. See Paragraphs [0060]-[0061], (Social networking system 160 may receive a search query from a client system 130 wherein the system may determine whether the search query is a grammar query or not. Social-networking system 160 may determine whether an input search query matches any of the plurality of grammar templates in a grammar template index by checking the query against said index, i.e. wherein the set of processing core resources is further operable to assign the service class of the service classes by: scanning the query based on the plurality of expression patterns to identify one of the patterns within the query (e.g. the search query is compared to the index of templates to determine a match based on properties of both the query and the template).)
Regarding dependent claim 24,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng further discloses the step wherein the set of processing core resources is further operable to assign the service class of the service classes by: determining that the expression pattern is one of the plurality of expression patterns. See Paragraphs [0060]-[0061], (Social networking system 160 may receive a search query from a client system 130 wherein the system may determine whether the search query is a grammar query or not. Social-networking system 160 may determine whether an input search query matches any of the plurality of grammar templates in a grammar template index by checking the query against said index.) See Paragraph [0065], (If search query 510 matches a template, the social-networking system 160 may construct a query command corresponding to search query 510 and execute the query command, i.e. determining that the expression pattern is one of the plurality of expression patterns (e.g. the search query matches an indexed template).)
Regarding dependent claim 25,
As discussed above with claim 24, Zeng-Rech discloses all of the limitations.
Zeng further discloses the step wherein the set of processing resources is further operable to: when the set of processing core resources determines that the expression pattern is not one of the plurality of expression patterns, allocate the query to a default service class. See Paragraph [0065], (If search query 510 does not match any template, the system may classify the query as a non-grammar query, i.e. when the set of processing core resources determines that the expression pattern is not one of the plurality of expression patterns, allocate the query to a default service class.)
Regarding dependent claim 27,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng further discloses the step wherein the set of processing core resources is further operable to: identify multiple expression patterns from the plurality of expressions; See Paragraphs [0060]-[0061], (Social networking system 160 may receive a search query from a client system 130 wherein the system may determine whether the search query is a grammar query or not. Social-networking system 160 may determine whether an input search query matches any of the plurality of grammar templates in a grammar template index by checking the query against said index, i.e. wherein the set of processing core resources is further operable to: identify multiple expression patterns from the plurality of expressions (e.g. the process searches an index of grammar templates which includes query commands).)
index the list of service classes based on the multiple expression patterns to identify multiple service classes; See Paragraph [0061], (Social-networking system 160 may determine whether an input search query matches any of the plurality of grammar templates in a grammar template index by checking the query against said index, i.e. index the list of service classes based on the multiple expression patterns to identify multiple service classes (e.g. the index comprises a plurality of grammar templates representing different queries);)
Additionally, Rech further discloses the step wherein when a service class slot of a plurality of service class slots associated with a service class of the multiple identified service classes is available, allocate the service class slot to support execution of the query. See Paragraph [0037], (Primary database system 100A comprises a storage 107A having associated metadata comprising connection information and status information including an availability of a secondary DB system.) See Paragraphs [0047]-[0048], (The system may specify rules for query service classes that indicate whether a query is to be executed at a primary DB system or offloaded to the secondary database system, for example by determining an amount of concurrent activities or queued activities, i.e. when a service class slot of a plurality of service class slots associated with the service class is available (e.g. a query is assigned a service class which may be associated with directing execution of a query at either a primary or secondary DB system), allocating the service class slot to support execution of the query (e.g. a query is assigned a service class which controls execution according to rules and behaviors associated with the service class).)
Regarding independent claim 31,
The claim is analogous to the subject matter of independent claim 21 directed to a device or apparatus and is rejected under similar rationale.
Regarding dependent claim 33,
The claim is analogous to the subject matter of dependent claim 23 directed to a device or apparatus and is rejected under similar rationale.
Regarding dependent claim 34,
The claim is analogous to the subject matter of dependent claim 24 directed to a device or apparatus and is rejected under similar rationale.
Regarding dependent claim 35,
The claim is analogous to the subject matter of dependent claim 25 directed to a device or apparatus and is rejected under similar rationale.
Regarding dependent claim 37,
The claim is analogous to the subject matter of dependent claim 27 directed to a device or apparatus and is rejected under similar rationale.
Claim(s) 22, 29, 32 and 39 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zeng in view of Rech as applied to claim 21 above, and further in view of Krompass et al. (US PGPUB No. 2010/0082603; Pub. Date: Apr. 1, 2010).
Regarding dependent claim 22,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng-Rech does not disclose the step wherein the expression pattern comprises one of: a first combination of code terms that has a first high requirement level of memory and/or hardware; a second combination of code terms that has a second high requirement level of memory and/or hardware; and a nth combination of code terms that has a nth high requirement level of memory and/or hardware.
Krompass discloses the step wherein the expression pattern comprises one of: a first combination of code terms that has a first high requirement level of memory and/or hardware; See Paragraph [0015], (Disclosing a system for managing queries in a database. For each executing query, execution control 136 may monitor various metrics such as a number of cancellations, progress, resource contention and database time.) See FIG. 2 & Paragraphs [0032]-[0036], (FIG. 2 illustrates a method for categorizing long-running database queries according to query execution metrics such as step 210 of determining if a wall clock time exceeds a threshold.) See Paragraph [0013], (The database system executes workloads that include one or more jobs consisting of an ordered set of typed queries submitted by a computer or client which are associated with one or more Service Level Objectives. Each query type maps to a tree of operators, wherein each operator is associated with a resource cost. Note [0047] wherein queries such as buggy queries may be labeled as such due to problems with the database system such as a poorly implemented query operator.)
Zeng, Rech and Krompass are analogous art because they are in the same field of endeavor, query execution. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng-Rech to include the method of analyzing and categorizing queries as disclosed by Krompass. Paragraph [0054] of Krompass discloses that the system may take remedial action in order to prevent long-running queries from running in the system based on the determined category. For example, the system may utilize optimizer costs and CPU time to determine whether a query should be rejected, no action, warn, stop, kill or reprioritize the query.
Regarding dependent claim 29,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng-Rech does not disclose the step wherein the service class comprises one of: a first high amount of hardware processing capacity and memory resources; a second high amount of hardware processing capacity and memory resources; and a nth high amount of hardware processing capacity and memory resources.
Krompass discloses the step wherein the service class comprises one of: a first high amount of hardware processing capacity and memory resources; See Paragraph [0015], (Disclosing a system for managing queries in a database. For each executing query, execution control 136 may monitor various metrics such as a number of cancellations, progress, resource contention and database time.) See FIG. 2 & Paragraphs [0032]-[0036], (FIG. 2 illustrates a method for categorizing long-running database queries according to query execution metrics such as step 210 of determining if a wall clock time exceeds a threshold. Based on the observed metrics, a query may be labelled as any of: hog, runaway, starving, buggy, and slow, i.e. wherein the service class comprises one of: a first high amount of hardware processing capacity (e.g. database time refers to time that a query is executing in the database, i.e. a metric representing a processing capacity utilized by the query) and memory resources (e.g. query resources are analyzed by execution control 136).)
Zeng, Rech and Krompass are analogous art because they are in the same field of endeavor, query execution. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng-Rech to include the method of analyzing and categorizing queries as disclosed by Krompass. Paragraph [0054] of Krompass discloses that the system may take remedial action in order to prevent long-running queries from running in the system based on the determined category. For example, the system may utilize optimizer costs and CPU time to determine whether a query should be rejected, no action, warn, stop, kill or reprioritize the query.
Regarding dependent claim 32,
The claim is analogous to the subject matter of dependent claim 22 directed to a device or apparatus and is rejected under similar rationale.
Regarding dependent claim 39,
The claim is analogous to the subject matter of dependent claim 29 directed to a device or apparatus and is rejected under similar rationale.
Claim(s) 26 and 36 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zeng in view of Rech as applied to claim 21 above, and further in view of Clifford et al. (US PGPUB No. 2022/0129460; Pub. Date: Apr. 28, 2022).
Regarding dependent claim 26,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng-Rech does not disclose the step wherein the set of processing core resources is further operable: when the service class slot of the plurality of service class slots associated with the service class is not available: queue the query until the service class slot becomes available.
Clifford discloses the step wherein the set of processing core resources is further operable: when the service class slot of the plurality of service class slots associated with the service class is not available: queue the query until the service class slot becomes available. See Paragraph [0010], (Disclosing a system for auto-scaling a query engine. Query traffic may be monitored for a plurality of service classes. The system may upscale a number of worker nodes after determining that a service class has reached a concurrency threshold based on queued queries for the service class, i.e. when the service class slot of the plurality of service class slots associated with the service class is not available: queue the query until the service class slot becomes available (e.g. queries may be placed in a queue if a concurrency threshold for a service class has been reached. The query may then be executed once resources become available).)
Zeng, Rech and Clifford are analogous art because they are in the same field of endeavor, query execution. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng-Rech to include the method of enqueuing queries according to concurrency thresholds as disclosed by Clifford. Paragraphs [0037] of Clifford discloses that the system may automatically and dynamically manage upscaling and downscaling of query executing based on a cost profile which allows the system to determine an amount of resources to add or remove for specific service classes in order to address workload needs.
Regarding dependent claim 36,
The claim is analogous to the subject matter of dependent claim 26 directed to a device or apparatus and is rejected under similar rationale.
Claim(s) 28 and 38 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zeng in view of Rech as applied to claim 27 above, and further in view of KOLEVA et al. (US PGPUB No. 2023/0214395; Pub. Date: Jul. 6, 2023).
Regarding dependent claim 28,
As discussed above with claim 27, Zeng-Rech discloses all of the limitations.
Zeng-Rech does not disclose the step wherein when the service class slot of the plurality of service class slots associated with the service class of the multiple identified service classes is not available: allocate the query to another available service class slot of another service class of the multiple identified service classes to support execution of the query.
KOLEVA discloses the step wherein when the service class slot of the plurality of service class slots associated with the service class of the multiple identified service classes is not available: allocate the query to another available service class slot of another service class of the multiple identified service classes to support execution of the query. See FIG. 3 & Paragraph [0034], (Disclosing a system of query execution using a dual-resource pool design for processing database data. FIG. 3 illustrates method 300 comprising a step 302 of receiving a query. At step 304, the system may determine whether the resources required to execute the query exceed configured limits for a fast resource pool. If so, the system admits the query to the slow resource pool queue at step 316, i.e. when the service class slot of the plurality of service class slots associated with the service class of the multiple identified service classes is not available (e.g. when the query cannot be placed in the fast resource pool) : allocate the query to another available service class slot of another service class of the multiple identified service classes to support execution of the query (e.g. the query is placed in the slow resource pool queue).)
Zeng, Rech and KOLEVA are analogous art because they are in the same field of endeavor, query execution. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng-Rech to include the method of moving queries across queues according for execution according to resource availability as disclosed by KOLEVA. Paragraph [0015] of KOLEVA discloses that the dual resource pool design allows for query isolation such that heavyweight queries do not throttle query duration time of lightweight queries.
Regarding dependent claim 38,
The claim is analogous to the subject matter of dependent claim 28 directed to a device or apparatus and is rejected under similar rationale.
Claim(s) 30 and 40 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zeng in view of Rech as applied to claim 21 above, and further in view of TIWARY et al. (US PGPUB No. 2019/0004837; Pub. Date: Jan. 3, 2019).
Regarding dependent claim 30,
As discussed above with claim 21, Zeng-Rech discloses all of the limitations.
Zeng-Rech does not disclose the step wherein when the set of processing core resource identifies a user is associated with the query: determining user accessibility to the service class based on predefined restrictions associated with the user.
TIWARY further discloses the step wherein when the set of processing core resource identifies a user is associated with the query: determining user accessibility to the service class based on predefined restrictions associated with the user. See Paragraph [0024], (The back-end classifier may work with a component user access validation engine to retrieve a list of users and a list of queries triggered by the users. The user access validation component may validate a user and retrieve the list of queries triggered by a user, i.e. determining user accessibility to the service class based on predefined restrictions associated with the user (e.g. the system retrieves a list of user queries and then classifies the query as part of process 300 illustrated in FIG. 3.).
Zeng, Rech and TIWARY are analogous art because they are in the same field of endeavor, query processing. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Zeng-Rech to include the method of executing queries according to query type using a plurality of queues as disclosed by TIWARY. Paragraph [0045] of TIWARY discloses that the system may dynamically adapt to network traffic conditions while updating information based on network traffic and density of received queries may improve efficiency and utilization of memory.
Regarding dependent claim 40,
The claim is analogous to the subject matter of dependent claim 30 directed to a device or apparatus and is rejected under similar rationale.
Response to Arguments
Applicant’s arguments with respect to claim(s) 21 and 31 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Applicant’s amendments necessitated the new grounds of rejection presented in this Office Action.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Fernando M Mari whose telephone number is (571)272-2498. The examiner can normally be reached Monday-Friday 7am-4pm.
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 J. Lo can be reached at (571) 272-9767. 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.
/FMMV/Examiner, Art Unit 2159
/ANN J LO/Supervisory Patent Examiner, Art Unit 2159