DETAILED ACTION
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
2. 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 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.
3. Claims 1-20, filed on 8/18/2025, are pending in this office action.
Priority
4. Applicant’s claim for the benefit of prior-filed application 18/523,930, now US Patent 12,399,910, filed 11/29/2023, under 35 U.S.C. 119(e) or under 35 U.S.C. 120, 121, or 365(c) is acknowledged.
Information Disclosure Statement
5. Initialed and dated copy of Applicant’s IDS form 1449, filed 10/8/2025, are
attached to the instant Office Action.
Double Patenting
6. 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.321I 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 §§ 706.02(l)(1) – 706.02(l)(3) 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 USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The 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/process/file/efs/guidance/eTD-info-I.jsp.
7. Claims 1, 11, and 19 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1, 10, and 17 of US Patent 12,399,910, respectively. Although the claims at issue are not identical, they are not patentably distinct from each other because the claims, if allowed, would improperly extend the “right to exclude” already granted in the patent.
The subject matter claimed in the instant application is fully disclosed in the patent and is covered by the patent since the patent and the application are claiming common subject matter, as follows:
US Patent 12,399,910
Instant Application
Claim 1,
A method, comprising:
identifying a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
generating, for each database instance, a respective weighted sum of the respective plurality of workload metrics;
selecting, for a resharding operation and from among the plurality of database instances, a first set of one or more database instances to continue being supported by the first database server and a second set of one or more database instances to be supported by a second database server that is different from the first database server, wherein selection of the first set of one or more database instances and the second set of one or more database instances is based at least in part on a relationship between a first sum of one or more respective weighted sums for the one or more database instances in the first set of one or more database instances and a second sum of one or more respective weighted sums for the one or more database instances in the second set of one or more database instances;
and executing the resharding operation that results in the first set of one or more database instances continuing to be supported by the first database server and the second set of one or more database instances being supported by the second database server.
Claim 1,
A method, comprising:
identifying a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
selecting, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances;
and executing the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server.
Claim 10,
An apparatus, comprising:
one or more memories storing processor-executable code;
and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
generate, for each database instance, a respective weighted sum of the respective plurality of workload metrics;
select, for a resharding operation and from among the plurality of database instances, a first set of one or more database instances to continue being supported by the first database server and a second set of one or more database instances to be supported by a second database server that is different from the first database server, wherein selection of the first set of one or more database instances and the second set of one or more database instances is based at least in part on a relationship between a first sum of one or more respective weighted sums for the one or more database instances in the first set of one or more database instances and a second sum of one or more respective weighted sums for the one or more database instances in the second set of one or more database instances;
and execute the resharding operation that results in the first set of one or more database instances continuing to be supported by the first database server and the second set of one or more database instances being supported by the second database server.
.
Claim 11,
An apparatus, comprising:
one or more memories storing processor-executable code;
and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
select, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances;
and execute the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server.
Claim 17,
A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
generate, for each database instance, a respective weighted sum of the respective plurality of workload metrics;
select, for a resharding operation and from among the plurality of database instances, a first set of one or more database instances to continue being supported by the first database server and a second set of one or more database instances to be supported by a second database server that is different from the first database server, wherein selection of the first set of one or more database instances and the second set of one or more database instances is based at least in part on a relationship between a first sum of one or more respective weighted sums for the one or more database instances in the first set of one or more database instances and a second sum of one or more respective weighted sums for the one or more database instances in the second set of one or more database instances;
and execute the resharding operation that results in the first set of one or more database instances continuing to be supported by the first database server and the second set of one or more database instances being supported by the second database server.
Claim 19,
A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server;
select, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances;
and execute the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server.
Claim Rejections - 35 USC § 103
8. 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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
9. Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Horowitz et al. (US Patent 11,615,115 B2, cited in IDS form filed 10/8/2025) in view of Shankar et al. (US Publication 2024/0248913 A1).
As per claim 1, Horowitz teaches A method, comprising: (see Abstract)
identifying a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server; (column 17 line 21 – column 18 line 5, column 43 lines 1-44, a distributed database system instantiated in the cloud includes database instances and shards, column 51 lines 30 – column 52 line 5, activity information of database instances being collected as metrics, interpreted as workload metrics)
selecting, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances (column 17 line 43 – column 18 line 5, column 25 lines 20-57, column 44 line 16 – column 45 line 45, a database cluster for a replica set can be created and/or selected based on user-specified parameters and monitored metrics, the cluster comprised of database instances associated with nodes)
and executing the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server. (column 19 lines 31-61, column 21 lines 17-35, column 41 lines 7-45, database instances and clusters are provisioned based on metric monitoring information)
Horowitz does not explicitly indicate selecting a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances.
Shankar teaches selecting a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances. (paragraph 0015, 0025, 0031, 0033, 0037, an estimated workload score is calculated to assign workload metrics to different sets of database records, the estimated workload metrics being a weighted sum of the different types of database records, the scores assigned to chunks of jobs associated with database records, interpreted as selecting database instances).
It would have been one of obvious skill in the art at the time the invention was made to combine Horowitz’s method of monitoring database metric information to cluster and deploy database nodes with Shankar’s ability to calculate a workload score as a weighted sum to assign to a plurality of jobs associated with different sets of database records. This gives the user the ability to adjust the importance of database clusters based on workload scores. The motivation for doing so would be to better balance distributions of work across database systems (paragraph 0004).
As per claim 2, Horowitz teaches selecting the first set of database instances and the second set of database instances comprises: selecting the first set of database instances and the second set of database instances such that the difference between the first sum and the second sum is minimized. (column 22 lines 36-51, column 25 line 58 – column 26 line 10, column 36 lines 18-35, threshold number of nodes or operations)
As per claim 3, Horowitz and Shankar are taught as per claim 1 above. Shankar additionally teaches selecting the first set of database instances and the second set of database instances comprises: sorting the plurality of database instances into two or more sets of database instances in accordance with respective weighted sums of database instances in each of the two or more sets of database instances; and selecting the first set of database instances and the second set of database instances from among the two or more sets of database instances such that the difference between the first sum and the second sum is minimized. (paragraph 0025, chunking threshold, paragraph 0026, priority based ordering)
As per claim 4, Horowitz and Shankar are taught as per claim 1 above. Shankar additionally teaches generating, for each database instance, a respective weighted sum of the respective plurality of workload metrics. (paragraph 0025, 0031, weighted sum)
As per claim 5, Horowitz and Shankar are taught as per claim 4 above. Shankar additionally teaches generating the respective weighted sum comprises for a database instance comprises: applying a first weighting factor to a quantity of writes metric that is included in the respective plurality of workload metrics for the database instance; applying a second weighting factor to a quantity of connections metric that is included in the respective plurality of workload metrics for the database instance; and applying a third weighting factor to a quantity of reads metric that is included in the respective plurality of workload metrics for the database instance. (paragraph 0033, 0037, weighting factor)
As per claim 6, Horowitz and Shankar are taught as per claim 5 above. Shankar additionally teaches the first weighting factor is greater than the second weighting factor; and the second weighting factor is greater than the third weighting factor. (paragraph 0015, assigning greater weighting factors)
As per claim 7, Horowitz teaches identifying the respective plurality of workload metrics for each database instance comprises: identifying the respective plurality of workload metrics in accordance with operations of the plurality of database instances during a time window prior to execution of the operation. (column 25 line 58 – column 26 line 10, column 41 line 46 – column 42 line 33, periodic monitoring)
As per claim 8, Horowitz teaches triggering execution of the operation based at least in part on a vertical scaling limit being satisfied for the first database server, wherein the vertical scaling limit is based at least in part on a quantity of resources associated with the first database server. (column 16 lines 35-57, column 41 lines 7-34, resource costs)
As per claim 9, Horowitz teaches triggering execution of the operation based at least in part on a processor usage metric for the first database server being over a processor usage threshold during a time window prior to the operation. (column 18 lines 6-18, column 19 lines 8-30, processor usage)
As per claim 10, Horowitz teaches selecting a respective weighting factor for each of the respective plurality of workload metrics based at least in part on the first database server supporting data backup operations for one or more host computing environments. (column 40 lines 15-67, backup services)
As per claim 11, Horowitz teaches An apparatus, comprising: (see Abstract)
one or more memories storing processor-executable code; (Figure 21 reference 2112, memory)
and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to: (Figure 21 reference 2110)
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server; (column 17 line 21 – column 18 line 5, column 43 lines 1-44, a distributed database system instantiated in the cloud includes database instances and shards, column 51 lines 30 – column 52 line 5, activity information of database instances being collected as metrics, interpreted as workload metrics)
select, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances (column 17 line 43 – column 18 line 5, column 25 lines 20-57, column 44 line 16 – column 45 line 45, a database cluster for a replica set can be created and/or selected based on user-specified parameters and monitored metrics, the cluster comprised of database instances associated with nodes)
and execute the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server. (column 19 lines 31-61, column 21 lines 17-35, column 41 lines 7-45, database instances and clusters are provisioned based on metric monitoring information)
Horowitz does not explicitly indicate select a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances.
Shankar teaches select a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances. (paragraph 0015, 0025, 0031, 0033, 0037, an estimated workload score is calculated to assign workload metrics to different sets of database records, the estimated workload metrics being a weighted sum of the different types of database records, the scores assigned to chunks of jobs associated with database records, interpreted as selecting database instances).
It would have been one of obvious skill in the art at the time the invention was made to combine Horowitz’s method of monitoring database metric information to cluster and deploy database nodes with Shankar’s ability to calculate a workload score as a weighted sum to assign to a plurality of jobs associated with different sets of database records. This gives the user the ability to adjust the importance of database clusters based on workload scores. The motivation for doing so would be to better balance distributions of work across database systems (paragraph 0004).
As per claim 12, Horowitz teaches to select the first set of database instances and the second set of database instances, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to: select the first set of database instances and the second set of database instances such that the difference between the first sum and the second sum is minimized. (column 22 lines 36-51, column 25 line 58 – column 26 line 10, column 36 lines 18-35, threshold number of nodes or operations)
As per claim 13, Horowitz and Shankar are taught as per claim 11 above. Shankar additionally teaches to select the first set of database instances and the second set of database instances, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to: sort the plurality of database instances into two or more sets of database instances in accordance with respective weighted sums of database instances in each of the two or more sets of database instances; and select the first set of database instances and the second set of database instances from among the two or more sets of database instances such that the difference between the first sum and the second sum is minimized. (paragraph 0025, chunking threshold, paragraph 0026, priority based ordering)
As per claim 14, Horowitz and Shankar are taught as per claim 11 above. Shankar additionally teaches the one or more processors are individually or collectively operable to execute the code to cause the apparatus to: generate, for each database instance, a respective weighted sum of the respective plurality of workload metrics. (paragraph 0025, 0031, weighted sum)
As per claim 15, Horowitz and Shankar are taught as per claim 14 above. Shankar additionally teaches to generate the respective weighted sum comprises for a database instance, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to: apply a first weighting factor to a quantity of writes metric that is included in the respective plurality of workload metrics for the database instance; apply a second weighting factor to a quantity of connections metric that is included in the respective plurality of workload metrics for the database instance; and apply a third weighting factor to a quantity of reads metric that is included in the respective plurality of workload metrics for the database instance. (paragraph 0033, 0037, weighting factor)
As per claim 16, Horowitz and Shankar are taught as per claim 15 above. Shankar additionally teaches the first weighting factor is greater than the second weighting factor; and the second weighting factor is greater than the third weighting factor. (paragraph 0015, assigning greater weighting factors)
As per claim 17, Horowitz teaches to identify the respective plurality of workload metrics for each database instance, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to: identify the respective plurality of workload metrics in accordance with operations of the plurality of database instances during a time window prior to execution of the operation. (column 25 line 58 – column 26 line 10, column 41 line 46 – column 42 line 33, periodic monitoring)
As per claim 18, Horowitz teaches the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: trigger execution of the operation based at least in part on a vertical scaling limit being satisfied for the first database server, wherein the vertical scaling limit is based at least in part on a quantity of resources associated with the first database server. (column 16 lines 35-57, column 41 lines 7-34, resource costs)
As per claim 19, Horowitz teaches A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: (see Abstract)
identify a respective plurality of workload metrics for each database instance of a plurality of database instances supported by a first database server; (column 17 line 21 – column 18 line 5, column 43 lines 1-44, a distributed database system instantiated in the cloud includes database instances and shards, column 51 lines 30 – column 52 line 5, activity information of database instances being collected as metrics, interpreted as workload metrics)
select, for an operation and from among the plurality of database instances, a first set of database instances and a second set of database instances (column 17 line 43 – column 18 line 5, column 25 lines 20-57, column 44 line 16 – column 45 line 45, a database cluster for a replica set can be created and/or selected based on user-specified parameters and monitored metrics, the cluster comprised of database instances associated with nodes)
and execute the operation that results in the first set of database instances being supported by the first database server and the second set of database instances being supported by a second database server. (column 19 lines 31-61, column 21 lines 17-35, column 41 lines 7-45, database instances and clusters are provisioned based on metric monitoring information)
Horowitz does not explicitly indicate select a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances.
Shankar teaches select a first set of database instances and a second set of database instances based at least in part on a difference between a first sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the first set of database instances and a second sum of one or more weighted sums of the respective plurality of workload metrics for one or more database instances in the second set of database instances. (paragraph 0015, 0025, 0031, 0033, 0037, an estimated workload score is calculated to assign workload metrics to different sets of database records, the estimated workload metrics being a weighted sum of the different types of database records, the scores assigned to chunks of jobs associated with database records, interpreted as selecting database instances).
It would have been one of obvious skill in the art at the time the invention was made to combine Horowitz’s method of monitoring database metric information to cluster and deploy database nodes with Shankar’s ability to calculate a workload score as a weighted sum to assign to a plurality of jobs associated with different sets of database records. This gives the user the ability to adjust the importance of database clusters based on workload scores. The motivation for doing so would be to better balance distributions of work across database systems (paragraph 0004).
As per claim 20, Horowitz teaches to select the first set of database instances and the second set of database instances, the instructions are executable by the one or more processors to: select the first set of database instances and the second set of database instances such that the difference between the first sum and the second sum is minimized. (column 22 lines 36-51, column 25 line 58 – column 26 line 10, column 36 lines 18-35, threshold number of nodes or operations)
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Ghazai (US Patent 8,768,916 B1)
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DANGELINO N GORTAYO whose telephone number is (571)272-7204. The examiner can normally be reached Monday-Friday 7:00am - 3:30pm.
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, Charles Rones can be reached at 571-272-4085. 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.
/DANGELINO N GORTAYO/Primary Examiner, Art Unit 2168