In-memory cache for web application data
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
40 Citations
14 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
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. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
Specification