Prosecution Insights
Last updated: July 17, 2026
Application No. 19/052,603

MANAGING USER DATA IN A MULTITENANT DEPLOYMENT

Non-Final OA §DP
Filed
Feb 13, 2025
Priority
Sep 25, 2017 — continuation of 10/853,124 +3 more
Examiner
WOO, ANDREW M
Art Unit
Tech Center
Assignee
Cisco Technology Inc.
OA Round
1 (Non-Final)
83%
Grant Probability
Favorable
1-2
OA Rounds
1y 4m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 83% — above average
83%
Career Allowance Rate
474 granted / 573 resolved
+22.7% vs TC avg
Strong +45% interview lift
Without
With
+45.0%
Interview Lift
resolved cases with interview
Typical timeline
2y 9m
Avg Prosecution
13 currently pending
Career history
591
Total Applications
across all art units

Statute-Specific Performance

§101
2.3%
-37.7% vs TC avg
§103
79.3%
+39.3% vs TC avg
§102
12.5%
-27.5% vs TC avg
§112
2.0%
-38.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 573 resolved cases

Office Action

§DP
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . The application has been examined. Claims 1-20 are pending. Allowable Subject Matter Claims 1-20 are objected to as being allowable if claims overcome the Obviousness Double Patenting, Claim Objections, and Drawing Objections. Specification The following guidelines illustrate the preferred layout for the specification of a utility application. These guidelines are suggested for the applicant’s use. Arrangement of the Specification As provided in 37 CFR 1.77(b), the specification of a utility application should include the following sections in order. Each of the lettered items should appear in upper case, without underlining or bold type, as a section heading. If no text follows the section heading, the phrase “Not Applicable” should follow the section heading: (a) TITLE OF THE INVENTION. (b) CROSS-REFERENCE TO RELATED APPLICATIONS. (c) STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT. (d) THE NAMES OF THE PARTIES TO A JOINT RESEARCH AGREEMENT. (e) INCORPORATION-BY-REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC OR AS A TEXT FILE VIA THE OFFICE ELECTRONIC FILING SYSTEM (EFS-WEB). (f) STATEMENT REGARDING PRIOR DISCLOSURES BY THE INVENTOR OR A JOINT INVENTOR. (g) BACKGROUND OF THE INVENTION. (1) Field of the Invention. (2) Description of Related Art including information disclosed under 37 CFR 1.97 and 1.98. (h) BRIEF SUMMARY OF THE INVENTION. (i) BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S). (j) DETAILED DESCRIPTION OF THE INVENTION. (k) CLAIM OR CLAIMS (commencing on a separate sheet). (l) ABSTRACT OF THE DISCLOSURE (commencing on a separate sheet). (m) SEQUENCE LISTING. (See MPEP § 2422.03 and 37 CFR 1.821-1.825. A “Sequence Listing” is required on paper if the application discloses a nucleotide or amino acid sequence as defined in 37 CFR 1.821(a) and if the required “Sequence Listing” is not submitted as an electronic document either on compact disc or as a text file via the Office electronic filing system (EFS-Web.) The drawings are objected to under 37 CFR 1.83(a) because they fail to show item number 1860 in Figure 18 as described in the specification [0360] as originally filed. Examiner notes that in Figure 18, item number 1850, denotes both the tenant and the bulk storage. Examiner notes that in Figure 18, item number 1852, has not been defined or disclosed in the original filed specification. Any structural detail that is essential for a proper understanding of the disclosed invention should be shown in the drawing. MPEP § 608.02(d). Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. The figure or figure number of an amended drawing should not be labeled as “amended.” If a drawing figure is to be canceled, the appropriate figure must be removed from the replacement sheet, and where necessary, the remaining figures must be renumbered and appropriate changes made to the brief description of the several views of the drawings for consistency. Additional replacement sheets may be necessary to show the renumbering of the remaining figures. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance. The drawings are objected to as failing to comply with 37 CFR 1.84(p)(4) because reference character “1850” has been used to designate both “Tenant” and “Bulk Storage” in Fig. 18. Examiner also notes that similar issues are in Fig. 2, item number “202” that references multiple Data Sources, item number “204” that references multiple Forwarders, item number “206” that references multiple Indexers, and item number “208” that references multiple Data Stores. Similar changes are also suggested for Figures 3 and 18. Examiner also notes that similar issues are in Fig. 4, item number “412” that references multiple ERP Process, item number “202” that references multiple data sources, item number “204” that references multiple Forwarders, item number “206” that references multiple Indexers, and item number “208” that references multiple Data Stores. Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance. In addition to Replacement Sheets containing the corrected drawing figure(s), applicant is required to submit a marked-up copy of each Replacement Sheet including annotations indicating the changes made to the previous version. The marked-up copy must be clearly labeled as “Annotated Sheets” and must be presented in the amendment or remarks section that explains the change(s) to the drawings. See 37 CFR 1.121(d)(1). Failure to timely submit the proposed drawing and marked-up copy will result in the abandonment of the application. Claim Objections Claims 18-20 are objected to because of the following informalities: Claim 18, line 1, recites “A computing device of claim 17” and should be changed to -- [[A]] The computing device of claim 17--. Similar changes are suggested for subsequent claims. Appropriate correction is required. Double Patenting The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); and In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969). A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 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/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 http://www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp. Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claims 1-30 of the U.S. Patent No. 10,853,124. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claims 1-20 of the instant application and claims 1-30 of the U.S. Patent No. 10,853,124 is that the claims of the instant application discloses the scope of the invention to be broader than to the scope of the U.S. Patent No. 10,853,124. Claim 1 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1 of the U.S. Patent No. 10,853,124. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 1 of the instant application and claim 1 of the U.S. Patent No. 10,853,124 is that the claims of the instant application discloses method steps which are broader to the method steps of the U.S. Patent No. 10,853,124. Claim 9 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 15 of the U.S. Patent No. 10,853,124. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 9 of the instant application and claim 15 of the U.S. Patent No. 10,853,124 is that the claims of the instant application discloses non-transitory computer-readable storage medium implementing the method steps which are broader to the non-transitory computer-readable storage medium implementing the method steps of the U.S. Patent No. 10,853,124. Claim 17 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 23 of the U.S. Patent No. 10,853,124. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 17 of the instant application and claim 23 of the U.S. Patent No. 10,853,124 is that the claims of the instant application are broader to the claims of the U.S. Patent No. 10,853,124. Claims Comparison Table Instant Application: 19/052,603 U.S. Patent No. 10,853,124 B2 (common inventive entity and assignee) Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the multiple tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 11: The computer-implemented method of claim 1, further comprising: generating a second usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the second usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within a first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 2: The computer-implemented method of claim 1, wherein a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 3: The computer-implemented method of claim 1, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 5: The computer-implemented method of claim 1, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 11: The computer-implemented method of claim 1, further comprising: generating a second usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the second usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within a first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 6: The computer-implemented method of claim 1, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 11: The computer-implemented method of claim 1, further comprising: generating a second usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the second usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within a first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 8: The computer-implemented method of claim 1, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 12: The computer-implemented method of claim 1, further comprising: generating a second usage score for a first containerized microservice in the set of containerized microservices, wherein the second usage score reflects a plurality of usage scores corresponding to a plurality of datastores managed by the first containerized microservice; determining that the second usage score exceeds a threshold; provisioning a second containerized microservice in the set of containerized microservices; provisioning, on the second containerized microservice, one or more additional datastores for a first tenant; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 9: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 15: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 17: The non-transitory computer-readable medium of claim 15, the steps further comprising: generating a second usage score that reflects a portion of resources consumed by a first tenant included in the multiple tenants when accessing the set of containerized microservices; and provisioning additional resources for the first tenant in the set of containerized microservices in proportion to the second usage score. Claim 10: The non-transitory computer-readable storage medium of claim 9, wherein each datastore included in a containerized microservice is associated with a single tenant. Claim 15: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 11: The non-transitory computer-readable storage medium of claim 9, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 15: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices; and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 13: The non-transitory computer-readable storage medium of claim 9, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 12: The computer-implemented method of claim 1, further comprising: generating a second usage score for a first containerized microservice in the set of containerized microservices, wherein the second usage score reflects a plurality of usage scores corresponding to a plurality of datastores managed by the first containerized microservice; determining that the second usage score exceeds a threshold; provisioning a second containerized microservice in the set of containerized microservices; provisioning, on the second containerized microservice, one or more additional datastores for a first tenant; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 14: The non-transitory computer-readable storage medium of claim 9, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 22: The non-transitory computer-readable medium of claim 15, the steps further comprising: generating a second usage score that reflects one or more of indexing throughput, query throughput, disk usage, memory usage, account level, or priority associated with a first tenant included in the multiple tenants; and generating a mapping between a datastore and the second usage score. Claim 16: The non-transitory computer-readable storage medium of claim 9, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 16: The non-transitory computer-readable medium of claim 15, the steps further comprising: generating a second usage score that reflects a portion of resources consumed by a first tenant included in the multiple tenants when accessing the set of containerized microservices; determining that the second usage score exceeds a threshold; transmitting an account upgrade recommendation to the first tenant, wherein the account upgrade recommendation corresponds to an elevated billing tier associated with an upgraded account; and migrating data associated with the first tenant between containerized microservices in response to acceptance of the account upgrade recommendation. Claim 17: A computing device comprising: one or more processors; and a memory including instructions that, when executed with the one or more processors, cause the computing device to, at least: containerize a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtain a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; compute, for each datastore included in the first set of datastores, a datastore score; determine whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provision one or more additional datastores from the set of containerized microservices for the first tenant. Claim 23: A system, comprising: a memory storing a management application; and a processor that executes the management application to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants, generating a usage score indicating an amount of resources consumed when one or more tenants of the multiple tenants access the set of containerized microservices, and based on the generated usage score, adjusting allocation of resources provided by the set of containerized microservices to the one or more tenants. Claim 25: The system of claim 23, wherein the processor performs the additional steps of: generating a second usage score that reflects usage of a first containerized microservice in the set of containerized microservices by one or more additional tenants in the multiple tenants; and generating a mapping between the first containerized microservice and the second usage score. Claim 19: A computing device of claim 17, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 27: The system of claim 23, wherein the processor performs the additional steps of: generating a second usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the second usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within a first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 20: A computing device of claim 17, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 28: The system of claim 23, wherein the processor performs the additional steps of: generating a second usage score for a first containerized microservice in the set of containerized microservices, wherein the second usage score reflects a plurality of usage scores corresponding to a plurality of datastores managed by the first containerized microservice; determining that the second usage score exceeds a threshold; provisioning a second containerized microservice in the set of containerized microservices; provisioning, on the second containerized microservice, one or more additional datastores for a first tenant; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claims 1-20 of the U.S. Patent No. 11,366,686. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claims 1-20 of the instant application and claims 1-20 of the U.S. Patent No. 11,366,686 is that the claims of the instant application discloses the scope of the invention to be broader than to the scope of the U.S. Patent No. 11,366,686. Claim 1 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1 of the U.S. Patent No. 11,366,686. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 1 of the instant application and claim 1 of the U.S. Patent No. 11,366,686 is that the claims of the instant application discloses method steps which are broader to the method steps of the U.S. Patent No. 11,366,686. Claim 9 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 10 of the U.S. Patent No. 11,366,686. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 9 of the instant application and claim 10 of the U.S. Patent No. 11,366,686 is that the claims of the instant application discloses non-transitory computer-readable storage medium implementing the method steps which are broader to the non-transitory computer-readable storage medium implementing the method steps of the U.S. Patent No. 11,366,686. Claim 17 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 16 of the U.S. Patent No. 11,366,686. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 17 of the instant application and claim 16 of the U.S. Patent No. 11,366,686 is that the claims of the instant application are broader to the claims of the U.S. Patent No. 11,366,686. Claims Comparison Table Instant Application: 19/052,603 U.S. Patent No. 11,366,686 B1 (common inventive entity and assignee) Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the multiple tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 2: The method of claim 1, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claim 8: The method of claim 5, wherein migrating data associated with the first tenant between containerized microservices comprises generating a datastore mapping that associates the first tenant with a datastore associated with the second containerized microservice. Claim 2: The computer-implemented method of claim 1, wherein a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 3: The computer-implemented method of claim 1, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 1: A computer-implemented method, comprising: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 4: The computer-implemented method of claim 1, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 6: The method of claim 5, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 5: The computer-implemented method of claim 1, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 8: The method of claim 5, wherein migrating data associated with the first tenant between containerized microservices comprises generating a datastore mapping that associates the first tenant with a datastore associated with the second containerized microservice. Claim 8: The computer-implemented method of claim 1, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 2: The method of claim 1, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claim 9: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 10: One or more non-transitory computer-readable storage media including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 11: The one or more non-transitory computer-readable storage media of claim 10, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claim 14: The one or more non-transitory computer-readable storage media of claim 12, wherein migrating data associated with the first tenant between containerized microservices comprises generating a datastore mapping that associates the first tenant with a datastore associated with the second containerized microservice. Claim 10: The non-transitory computer-readable storage medium of claim 9, wherein each datastore included in a containerized microservice is associated with a single tenant. Claim 10: One or more non-transitory computer-readable storage media including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 11: The non-transitory computer-readable storage medium of claim 9, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 10: One or more non-transitory computer-readable storage media including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 12: The non-transitory computer-readable storage medium of claim 9, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 6: The method of claim 5, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 13: The non-transitory computer-readable storage medium of claim 9, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 14: The one or more non-transitory computer-readable storage media of claim 12, wherein migrating data associated with the first tenant between containerized microservices comprises generating a datastore mapping that associates the first tenant with a datastore associated with the second containerized microservice. Claim 16: The non-transitory computer-readable storage medium of claim 9, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 11: The one or more non-transitory computer-readable storage media of claim 10, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claim 17: A computing device comprising: one or more processors; and a memory including instructions that, when executed with the one or more processors, cause the computing device to, at least: containerize a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtain a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; compute, for each datastore included in the first set of datastores, a datastore score; determine whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provision one or more additional datastores from the set of containerized microservices for the first tenant. Claim 16: A system, comprising: a memory storing a management application; and a processor that executes the management application to perform the steps of: containerizing plural instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein each containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and each datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; determining that a migration condition is met for a first tenant included in the multiple tenants; and migrating data associated with the first tenant between containerized microservices in response to determining that the migration condition is met for the first tenant. Claim 2: The method of claim 1, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claim 19: The system of claim 17, wherein the processor performs the additional steps of: generating a datastore mapping that associates the first tenant with a datastore associated with the second containerized microservice. Claim 18: A computing device of claim 17, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 6: The method of claim 5, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 20: A computing device of claim 17, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 2: The method of claim 1, wherein determining that the migration condition is met for the first tenant comprises determining that a usage score associated with the first tenant exceeds a threshold, wherein the usage score reflects a portion of resources consumed by the first tenant when accessing the set of containerized microservices. Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claims 1-19 of the U.S. Patent No. 11,768,811. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claims 1-20 of the instant application and claims 1-19 of the U.S. Patent No. 11,768,811 is that the claims of the instant application discloses the scope of the invention to be broader than to the scope of the U.S. Patent No. 11,768,811. Claim 1 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1 of the U.S. Patent No. 11,768,811. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 1 of the instant application and claim 1 of the U.S. Patent No. 11,768,811 is that the claims of the instant application discloses method steps which are broader to the method steps of the U.S. Patent No. 11,768,811. Claim 9 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 8 of the U.S. Patent No. 11,768,811. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 9 of the instant application and claim 8 of the U.S. Patent No. 11,768,811 is that the claims of the instant application discloses non-transitory computer-readable storage medium implementing the method steps which are broader to the non-transitory computer-readable storage medium implementing the method steps of the U.S. Patent No. 11,768,811. Claim 17 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 15 of the U.S. Patent No. 11,768,811. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 17 of the instant application and claim 15 of the U.S. Patent No. 11,768,811 is that the claims of the instant application are broader to the claims of the U.S. Patent No. 11,768,811. Claims Comparison Table Instant Application: 19/052,603 U.S. Patent No. 11,768,811 B1 (common inventive entity and assignee) Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the multiple tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and causing the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 2: The computer-implemented method of claim 1, wherein a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and causing the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 3: The computer-implemented method of claim 1, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 5: The computer-implemented method of claim 1, further comprising: determining that a first tenant included in the multiple tenants is not associated with any datastores managed by the set of containerized microservices; determining that a usage score associated with a third containerized microservice in the set of containerized microservices is less than any other usage score associated with any other containerized microservice in the set of containerized microservices; provisioning a datastore on the third containerized microservice for the first tenant; and generating a datastore mapping that associates the first tenant with the datastore. Claim 4: The computer-implemented method of claim 1, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 2: The computer-implemented method of claim 1, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 5: The computer-implemented method of claim 1, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 6: The computer-implemented method of claim 1, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 8: The computer-implemented method of claim 1, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 7: The computer-implemented method of claim 1, further comprising: generating a usage score for a first containerized microservice in the set of containerized microservices, the usage score reflects a plurality of usage scores corresponding to a plurality of datastores managed by the first containerized microservice; determining that the usage score exceeds a threshold; provisioning, on the second containerized microservice, one or more additional datastores for a first tenant; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 9: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 8: One or more non-transitory computer readable storage media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and causing the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 13: The one or more non-transitory computer readable storage media of claim 8, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 10: The non-transitory computer-readable storage medium of claim 9, wherein each datastore included in a containerized microservice is associated with a single tenant. Claim 8: One or more non-transitory computer readable storage media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and causing the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 11: The non-transitory computer-readable storage medium of claim 9, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 8: One or more non-transitory computer readable storage media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and causing the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 12: The non-transitory computer-readable storage medium of claim 9, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 9: The one or more non-transitory computer readable storage media of claim 8, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 13: The non-transitory computer-readable storage medium of claim 9, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 13: The one or more non-transitory computer readable storage media of claim 8, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 14: The non-transitory computer-readable storage medium of claim 9, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 13: The one or more non-transitory computer readable storage media of claim 8, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 16: The non-transitory computer-readable storage medium of claim 9, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 13: The one or more non-transitory computer readable storage media of claim 8, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 17: A computing device comprising: one or more processors; and a memory including instructions that, when executed with the one or more processors, cause the computing device to, at least: containerize a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtain a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; compute, for each datastore included in the first set of datastores, a datastore score; determine whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provision one or more additional datastores from the set of containerized microservices for the first tenant. Claim 15: A computer system, comprising: one or more memories storing instructions; and one or more processors for executing the instructions to: containerize a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; cause a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; cause the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice; cause a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants, wherein indexing the second set of input data generates a second set of indices; and cause the second containerized microservice to associate each index included in the second set of indices with a different datastore managed by the second containerized microservice. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 18: A computing device of claim 17, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 16: The computer system of claim 15, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different than the first version. Claim 19: A computing device of claim 17, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claim 20: A computing device of claim 17, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 6: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects one or more of indexing throughput or query throughput corresponding to a datastore associated with a first tenant included in the multiple tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first tenant within the first containerized microservice that manages the datastore; and updating a datastore mapping to associate the first tenant with the one or more additional datastores. Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claims 1-20 of the U.S. Patent No. 12,248,804. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claims 1-20 of the instant application and claims 1-20 of the U.S. Patent No. 12,248,804 is that the claims of the instant application discloses the scope of the invention to be broader than to the scope of the U.S. Patent No. 12,248,804. Claim 1 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1 of the U.S. Patent No. 12,248,804. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 1 of the instant application and claim 1 of the U.S. Patent No. 12,248,804 is that the claims of the instant application discloses method steps which are broader to the method steps of the U.S. Patent No. 12,248,804. Claim 9 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 11 of the U.S. Patent No. 12,248,804. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 9 of the instant application and claim 11 of the U.S. Patent No. 12,248,804 is that the claims of the instant application discloses non-transitory computer-readable storage medium implementing the method steps which are broader to the non-transitory computer-readable storage medium implementing the method steps of the U.S. Patent No. 12,248,804. Claim 17 is rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1 of the U.S. Patent No. 12,248,804. Although the conflicting claims are not identical, they are not patentably distinct from each other because the difference between claim 17 of the instant application and claim 1 of the U.S. Patent No. 12,248,804 is that the claims of the instant application are broader to the claims of the U.S. Patent No. 12,248,804. Claims Comparison Table Instant Application: 19/052,603 U.S. Patent No. 12,248,804 B1 (common inventive entity and assignee) Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the multiple tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants; causing the first containerized microservice to associate each index included in a first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants; and causing the second containerized microservice to associate a second set of indices with a different datastore managed by the second containerized microservice. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 2: The computer-implemented method of claim 1, wherein a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants; causing the first containerized microservice to associate each index included in a first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants; and causing the second containerized microservice to associate a second set of indices with a different datastore managed by the second containerized microservice. Claim 3: The computer-implemented method of claim 1, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants; causing the first containerized microservice to associate each index included in a first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants; and causing the second containerized microservice to associate a second set of indices with a different datastore managed by the second containerized microservice. Claim 4: The computer-implemented method of claim 1, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 4: The computer-implemented method of claim 1, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 5: The computer-implemented method of claim 1, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 6: The computer-implemented method of claim 1, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 8: The computer-implemented method of claim 1, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 9: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Claim 11: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; and causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice. Claim 13: The non-transitory computer-readable storage medium of claim 11, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 10: The non-transitory computer-readable storage medium of claim 9, wherein each datastore included in a containerized microservice is associated with a single tenant. Claim 11: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; and causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice. Claim 11: The non-transitory computer-readable storage medium of claim 9, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices in the set of containerized microservices. Claim 11: A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants, wherein indexing the first set of input data generates a first set of indices; and causing the first containerized microservice to associate each index included in the first set of indices with a different datastore managed by the first containerized microservice. Claim 12: The non-transitory computer-readable storage medium of claim 9, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 4: The computer-implemented method of claim 1, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 13: The non-transitory computer-readable storage medium of claim 9, further comprising: responsive to provisioning one or more additional datastores from the set of containerized microservices for the first tenant, updating a datastore mapping to associate the one or more additional datastores to the first tenant. Claim 13: The non-transitory computer-readable storage medium of claim 11, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 14: The non-transitory computer-readable storage medium of claim 9, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 13: The non-transitory computer-readable storage medium of claim 11, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 16: The non-transitory computer-readable storage medium of claim 9, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 13: The non-transitory computer-readable storage medium of claim 11, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 17: A computing device comprising: one or more processors; and a memory including instructions that, when executed with the one or more processors, cause the computing device to, at least: containerize a plurality of instances of a software application to generate a set of containerized microservices supporting a plurality of tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; obtain a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the plurality of tenants; compute, for each datastore included in the first set of datastores, a datastore score; determine whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provision one or more additional datastores from the set of containerized microservices for the first tenant. Claim 1: A computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, wherein a given containerized microservice included in the set of containerized microservices is associated with one or more datastores that are not associated with other containerized microservices, and a given datastore included in the one or more datastores is associated with a single tenant included in the multiple tenants; causing a first containerized microservice in the set of containerized microservices to execute a first instance of the software application to index a first set of input data received from a first set of tenants in the multiple tenants; causing the first containerized microservice to associate each index included in a first set of indices with a different datastore managed by the first containerized microservice; causing a second containerized microservice in the set of containerized microservices to execute a second instance of the software application to index a second set of input data received from a second set of tenants in the multiple tenants; and causing the second containerized microservice to associate a second set of indices with a different datastore managed by the second containerized microservice. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 18: A computing device of claim 17, wherein a first containerized microservice is associated with a first version of the software application, and a second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 4: The computer-implemented method of claim 1, wherein the first containerized microservice is associated with a first version of the software application, and the second containerized microservice is associated with a second version of the software application, wherein the second version is different from the first version. Claim 19: A computing device of claim 17, wherein the datastore score is computed based on a usage level of a datastore, the usage level corresponding to an indexing throughput of the datastore. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. Claim 20: A computing device of claim 17, wherein a number of the one or more additional datastores provisioned for the first tenant is determined based on an amount by which the datastore score of at least one datastore included in the first set of datastores exceeds the provisioning threshold. Claim 9: The computer-implemented method of claim 1, further comprising: generating a usage score that reflects at least one of indexing throughput or query throughput corresponding to a datastore associated with a first set of tenants; determining that the usage score exceeds a provisioning threshold; provisioning one or more additional datastores for the first set of tenants within the first containerized microservice; and updating a datastore mapping to associate the first set of tenants with the one or more additional datastores. The following is an examiner’s statement of reasons for allowance: In interpreting the currently amended claims, in light of the specification, the Examiner finds the claimed invention to be patentable distinct from the prior art of records. Jeuk et al. (2019/0065278) discloses a computer-implemented method, comprising: containerizing a plurality of instances of a software application to generate a set of containerized microservices supporting multiple tenants, each containerized microservice included in the set of containerized microservices being associated with one or more datastores; and obtaining a first set of datastores from the set of containerized microservices that are allocated to a first tenant included in the multiple tenants. However, the prior art of record fails to teach or suggest computing, for each datastore included in the first set of datastores, a datastore score; determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold; and responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant as set forth in independent Claim 1. The cited prior art does not teach or suggest computing, for each datastore included in the first set of datastores, a datastore score. The cited art does not teach or suggest determining whether the datastore score of at least one datastore included in the first set of datastores exceeds a provisioning threshold. The cited art does not teach or suggest responsive to a successful determination, provisioning one or more additional datastores from the set of containerized microservices for the first tenant. Thus, these are some of the reasons why the claims are allowable. Similar limitations are present with independent claims 9 and 17. Therefore, Claims 1, 9, and 17 are allowed because of the combination of other limitations and the limitations listed above. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANDREW WOO whose telephone number is (571)270-7521. The examiner can normally be reached Telework 9:00AM-6:00PM | IFP M-F 9:00AM-6:00PM. 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, Umar Cheema can be reached at 571-270-3037. 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. /ANDREW WOO/Examiner, Art Unit 2441
Read full office action

Prosecution Timeline

Feb 13, 2025
Application Filed
Jun 11, 2026
Non-Final Rejection mailed — §DP (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12659787
DYNAMIC TRAFFIC IDENTIFIER MAPPING BASED ON INTERNET-OF-THINGS DEVICE PRESENCE
2y 1m to grant Granted Jun 16, 2026
Patent 12634348
PLATFORM AND METHOD FOR AUTOMATED DEVICE MANAGEMENT AND INFRASTRUCTURE SERVICING
2y 7m to grant Granted May 19, 2026
Patent 12621218
AUTOMATED DEVICE OS AND APPLICATION MANAGEMENT AT THE EDGE
2y 6m to grant Granted May 05, 2026
Patent 12615203
MULTIPATH WEIGHTING USING METRICS FROM ONE OR MORE PROTOCOLS
1y 11m to grant Granted Apr 28, 2026
Patent 12603923
CAPABILITY SIGNALING
2y 0m to grant Granted Apr 14, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
83%
Grant Probability
99%
With Interview (+45.0%)
2y 9m (~1y 4m remaining)
Median Time to Grant
Low
PTA Risk
Based on 573 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month