Dynamically provisioning instances of a single-tenant application for multi-tenant use

US10467241B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10467241-B2
Application numberUS-201715468648-A
CountryUS
Kind codeB2
Filing dateMar 24, 2017
Priority dateMar 24, 2017
Publication dateNov 5, 2019
Grant dateNov 5, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Provided is a process, including: assigning different instances of a single-tenant application among a plurality of instances of the single-tenant application to different computing sessions with different client computing devices associated with different tenant user accounts; while the plurality of instances of the single-tenant application are executing, determining that a workload of the plurality of instances of the single-tenant application satisfies a first threshold condition; in response to the determination, automatically provisioning an added instance of the single-tenant application; and assigning the added instance of the single-tenant application to a session with a given client computing device.

First claim

Opening claim text (preview).

What is claimed is: 1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations to dynamically provision and terminate instances of a single-tenant application deployed for a multi-tenant use case based on workload, the operations comprising: assigning, with one or more processors, different instances of a single-tenant application among a plurality of instances of the single-tenant application to different computing sessions with different client computing devices associated with different tenant user accounts, wherein: each instance of the single-tenant application is configured, either before, upon, or after launching, to access data of the single-tenant application in a database, the database stores data of multiple tenants accessed by instances of the single-tenant application, and the stored data of different tenants among the multiple tenants is associated with different tenant user accounts; while the plurality of instances of the single-tenant application are executing, determining, with one or more processors, in a first determination, that a workload of the plurality of instances of the single-tenant application satisfies a first threshold condition; in response to the first determination, automatically provisioning, with one or more processors, an added instance of the single-tenant application; assigning, with one or more processors, the added instance of the single-tenant application to a session with a given client computing device; receiving, with one or more processors, a database access request from the added instance of the single-tenant application to the database to access data of a tenant having a tenant user account, wherein the given computing device is logged into the tenant user account; modifying, with one or more processors, the received database access request to add a reference to a field of the database having values that distinguish data of different tenants among the multiple tenants from data of other tenants among the multiple tenants; sending, with one or more processors, the modified database access request to the database; after provisioning the added instance of the single-tenant application, determining, with one or more processors, in a second determination, that a workload of the single-tenant application satisfies a second threshold condition, the second threshold condition corresponding to a smaller workload than the first threshold condition; and in response to the second determination, automatically terminating, with one or more processors, at least one instance of the single-tenant application, wherein: each instance of the single-tenant application is accessed by a single tenant at a time, and a number of instances of the single-tenant application executing is dynamically scaled responsive to workload. 2. The medium of claim 1 , wherein: the single-tenant application is configured to not distinguish among the multiple tenants in access requests to the database; and the operations comprise editing queries from instances of the single-tenant application to the database to add a query predicate that specifies the queries do not apply to data of tenants in the database other than a tenant identified by the query predicate. 3. The medium of claim 1 , wherein: the first determination is made responsive to a request from the given client computing device to access the single-tenant application. 4. The medium of claim 1 , wherein: the first determination is made before receiving a request from the given client computing device to initiate a session with the single-tenant application; and the session with the given client computing device is the first session with a client computing device of the added instance of the single-tenant application. 5. The medium of claim 1 , wherein: the database is a noSQL (no structured query language) document database having a plurality of documents identified in at least one index of contents of the documents; the at least one index has an alias with a filter configured to segment the at least one index according to tenant identifier; and modifying the received database access request comprises specifying a tenant identifier to be applied by the filter of the alias. 6. The medium of claim 1 , wherein: the added instance of the single-tenant application is executed in a different container, virtual machine, or computing device from at least some of the other instances of the single-tenant application; and a reverse proxy server routes messages between each of the instances of the single-tenant applications and client computing devices. 7. The medium of claim 1 , wherein: the plurality of instances of the single-tenant application are part of a hybrid single-tenant/multi-tenant application in which a multi-tenant application writes data to the database and the data is viewed or otherwise accessed by tenant users via the single-tenant application. 8. The medium of claim 7 , wherein: the multi-tenant application comprises a monitoring application configured to monitor delivery of a plurality of applications provided by respective ones of the multiple tenants. 9. The medium of claim 1 , wherein: different tenants access the same instance of the single-tenant application at different times but not concurrently. 10. The medium of claim 1 , wherein the operations comprise: executing a process that monitors a log file of each instance of the single-tenant application, wherein determining that the workload of the single-tenant application satisfies the second threshold condition comprises determining that a timestamp of a most recent transaction in the log file of at least one instance of the single-tenant application is older than a threshold age. 11. The medium of claim 1 , wherein: provisioning the added instance of the single-tenant application comprises adding a service corresponding to the single-tenant application to a computing device executing a plurality of services corresponding to other instances of the single-tenant application, wherein at least some of the services have a plurality of processes. 12. The medium of claim 1 , wherein: the added instance of the single-tenant application executes on a single computing device along with the plurality of instances of the single-tenant application; provisioning the added instance of the single-tenant application comprises: identifying a port number of the computing device that is not assigned to another instance of the single-tenant application; and configuring the added instance of the single-tenant application to monitor the added port number by writing the port number to a human readable hierarchical serialization data format document storing configuration settings of the added instance. 13. The medium of claim 12 , wherein: provisioning, the first determination, the second determination, and terminating are performed by a service executing on a computing device that executes the plurality of instances of the single-tenant application and the added instance of the single-tenant application. 14. The medium of claim 1 , wherein provisioning, terminating, or both comprise: steps for dynamically scaling a number of instances of a single-tenant application based on workload. 15. A method, comprising: assigning, with one or more processors, different instances of a single-tenant application among a plurality of instances of the single-tenant application to different computing sessions with different client computing devices associated with different tenant user ac

Assignees

Inventors

Classifications

  • Grid computing · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • G06F16/252Primary

    between a Database Management System and a front-end application · CPC title

  • considering the load · CPC title

  • Distribution of virtual machine instances; Migration and load balancing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10467241B2 cover?
Provided is a process, including: assigning different instances of a single-tenant application among a plurality of instances of the single-tenant application to different computing sessions with different client computing devices associated with different tenant user accounts; while the plurality of instances of the single-tenant application are executing, determining that a workload of the pl…
Who is the assignee on this patent?
Ca Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/252. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 05 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).