Allocation of shared system resources
US-9703951-B2 · Jul 11, 2017 · US
US10013501B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10013501-B2 |
| Application number | US-201514922574-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 26, 2015 |
| Priority date | Oct 26, 2015 |
| Publication date | Jul 3, 2018 |
| Grant date | Jul 3, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques are disclosed relating to caching web application data. In some embodiments, a computing system maintains a multi-tenant database and an in-memory cache for the database. In some embodiments, the computing system is configured to store data in an entry in response to a store request and retrieve data in response to a read request. In various embodiments, data cached by one tenant is not visible to other tenants. The cache may be partitioned and each partition may have an assigned capacity. The computing system may be configured to evict cached data based on capacity thresholds, least-recently-used information, time-to-live information, amount of data in an entry, etc. The cache may indicate misses when requested data is not present. Various disclosed techniques may improve web application performance while maintaining privacy between tenants.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: maintaining, by a computing system, a multi-tenant data store that stores data for a plurality of tenants associated with the computing system; maintaining, by the computing system, an in-memory cache for the multi-tenant data store, wherein the in-memory cache includes, for a particular tenant of the plurality of tenants: a session cache configured to store data corresponding to user sessions of users associated with the particular tenant, wherein the data stored by the session cache for ones of the user sessions is not maintained after respective ends of the ones of the user sessions; and an organization cache configured to store data for multiple different user sessions of users associated with the particular tenant; receiving, by the computing system, a store request to store data in an entry of the in-memory cache, wherein the store request includes the data and an identifier for the entry; storing, by the computing system, the data in the entry of the in-memory cache; receiving, by the computing system from a requesting user, a request to access the data, wherein the request specifies the identifier for the entry; in response to the request, retrieving, by the computing system, the data from the entry of the in-memory cache and not from the multi-tenant data store; and providing, by the computing system, the retrieved data to the requesting user. 2. The method of claim 1 , wherein the storing is performed using a field of a shared cache data structure that stores entries for multiple different tenants. 3. The method of claim 1 , wherein the in-memory cache is divided into a plurality of partitions, wherein one or more of the partitions are defined by a first tenant of the plurality of tenants, and wherein each of the partitions has a capacity threshold, the method further comprising: monitoring used capacity of the partitions; and evicting data from a first entry in one of the partitions based on the monitoring. 4. The method of claim 3 , wherein the evicting is further based on at least one of: least-recently-used (LRU) information maintained for the first entry; time-to-live information maintained for the first entry; or a size of data used by the first entry. 5. The method of claim 1 , further comprising: determining a tenant corresponding to the user who initiated the store request; and allowing only users associated with the tenant to access the data stored in the in-memory cache for the tenant. 6. The method of claim 1 , further comprising: receiving, by the computer system from a second requesting user, a second request to access second data, wherein the second request includes a second identifier; determining, by the computer system, that the second data is not stored by the in-memory cache; and transmitting, by the computer system to the second requesting user, a response to the second request that indicates a cache miss. 7. A non-transitory computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising: maintaining a multi-tenant data store that stores data for a plurality of tenants; maintaining an in-memory cache for the multi-tenant data store, wherein the in-memory cache includes, for a particular tenant of the plurality of tenants: a session cache configured to store data corresponding to user sessions of users associated with the particular tenant, wherein the data stored by the session cache for ones of the user sessions is not maintained after respective ends of the ones of the user sessions; and an organization cache configured to store data for multiple different user sessions of users associated with the particular tenant; receiving, from a requesting user, a store request to store data in an entry of the in-memory cache, wherein the store request includes the data and an identifier for the entry; storing the data in the entry of the in-memory cache; receiving a request to access the data, wherein the request specifies the identifier for the entry; in response to the request, retrieving the data from the entry of the in-memory cache and not from the multi-tenant data store; and providing the retrieved data to the requesting user. 8. The non-transitory computer-readable medium of claim 7 , wherein the storing is performed using a cache memory space that includes entries for different tenants of the plurality of tenants. 9. The non-transitory computer-readable medium of claim 7 , wherein the in-memory cache is distributed across multiple servers. 10. The non-transitory computer-readable medium of claim 7 , wherein the in-memory cache is divided into a plurality of partitions, wherein each of the partitions has a capacity threshold, and wherein the operations further comprise: monitoring used capacity of the partitions; and evicting data from a first entry in one of the partitions based on the monitoring and at least one of the capacity thresholds. 11. The non-transitory computer-readable medium of claim 10 , wherein the evicted first entry is selected based on two or more of: least-recently-used (LRU) information maintained for the first entry; time-to-live information maintained for the first entry; or a size of data used by the first entry. 12. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise: adjusting one of the capacity thresholds for a partition based on a payment from a tenant. 13. The non-transitory computer-readable medium of claim 7 , wherein the operations further comprise: determining that a user who initiated the store request is associated with a first tenant of the plurality of tenants; storing information indicative of the first tenant; and allowing only users associated with the first tenant to access the data stored in the in-memory cache for the first tenant. 14. The non-transitory computer-readable medium of claim 7 , wherein the in-memory cache is maintained by a provider entity that provides an application for use by users associated with one or more of the plurality of tenants, wherein the in-memory cache is used to store data generated by the application by the users associated with one or more of the plurality of tenants.
of access to content, e.g. by caching · CPC title
Partitioned cache, e.g. separate instruction and operand caches · CPC title
for multiprocessing or multitasking · CPC title
Partitioned cache · CPC title
Multiuser, multiprocessor or multiprocessing cache systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.