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