In-memory caching of shared customizable multi-tenant data
First Claim
1. A method to be executed at least in part in a computing device for handling customizable data in a multi-tenant environment, the method comprising:
- receiving a request for data from a tenant;
determining whether an entry associated with the requested data is stored in a cache store;
when a determination is made that the entry associated with the requested data is stored in the cache store, determining whether the entry is a delete sentinel or a system sentinel, the delete sentinel indicating that the requested data associated with the entry does not exist in the cache store, the system sentinel indicating that the entry is associated with non-customized data that can be provided to any requesting tenant, the entry being associated with customized data for the tenant when the entry is neither the delete sentinel nor the system sentinel;
when it is determined that the entry is the delete sentinel, providing a notice of non-existent data to the requesting tenant;
when it is determined that the entry is the system sentinel, retrieving requested system data from the cache store and providing the data to the requesting tenant, a single copy of the retrieved requested system data being stored in the cache store for any requesting tenant;
when it is determined that the entry is neither the delete sentinel nor the system sentinel, retrieving the requested customized data from the cache store;
if no entry associated with the requested data is stored in the cache store;
determining whether the data exists in a data store associated with the tenant;
if the data does not exist in the data store associated with the tenant, storing a “
delete sentinel”
entry in the cache store and providing the notice of non-existent data to the requesting tenant;
if the data exists in the data store associated with the tenant and is customized data for the tenant, storing the customized data in the cache store and providing the customized data to the requesting tenant; and
if the data exists in the data store associated with the tenant and is system level data, storing a system sentinel and the system level data in the cache store and providing the customized data to any requesting tenant; and
providing the requested customized data to the requesting tenant.
2 Assignments
0 Petitions
Accused Products
Abstract
In a multi-tenant data sharing environment with shared, customizable data attributes are assigned to requested data and stored in a cache store along with the requested data. For non-customized data designated as system data, one copy is stored in the cache store for use by multiple tenants allowing optimization of memory and performance for each data request/retrieval operation. A “delete sentinel” attribute may be assigned to non-existing data in the cache store enabling notification of requesting tenant(s) without a need to access the tenant data store each time a request for the non-existing data is received.
23 Citations
17 Claims
-
1. A method to be executed at least in part in a computing device for handling customizable data in a multi-tenant environment, the method comprising:
-
receiving a request for data from a tenant; determining whether an entry associated with the requested data is stored in a cache store; when a determination is made that the entry associated with the requested data is stored in the cache store, determining whether the entry is a delete sentinel or a system sentinel, the delete sentinel indicating that the requested data associated with the entry does not exist in the cache store, the system sentinel indicating that the entry is associated with non-customized data that can be provided to any requesting tenant, the entry being associated with customized data for the tenant when the entry is neither the delete sentinel nor the system sentinel; when it is determined that the entry is the delete sentinel, providing a notice of non-existent data to the requesting tenant; when it is determined that the entry is the system sentinel, retrieving requested system data from the cache store and providing the data to the requesting tenant, a single copy of the retrieved requested system data being stored in the cache store for any requesting tenant; when it is determined that the entry is neither the delete sentinel nor the system sentinel, retrieving the requested customized data from the cache store; if no entry associated with the requested data is stored in the cache store; determining whether the data exists in a data store associated with the tenant; if the data does not exist in the data store associated with the tenant, storing a “
delete sentinel”
entry in the cache store and providing the notice of non-existent data to the requesting tenant;if the data exists in the data store associated with the tenant and is customized data for the tenant, storing the customized data in the cache store and providing the customized data to the requesting tenant; and if the data exists in the data store associated with the tenant and is system level data, storing a system sentinel and the system level data in the cache store and providing the customized data to any requesting tenant; and providing the requested customized data to the requesting tenant. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for handling customizable data in a multi-tenant business application environment, comprising:
-
a cache memory; a processor coupled to the memory, the memory including instructions that, when executed by the processor, cause the processor to implement program; a caching module configured to; determine whether an entry associated with the requested record is stored in the cache memory; provide a notice of non-existent record to the requesting tenant responsive to determining that the entry is stored and is a delete sentinel, the delete sentinel indicating that the requested record associated with the entry does not exist in the cache memory; retrieve the requested record from the cache memory and provide to the requesting tenant responsive to determining that the entry is stored and is a system sentinel, the system sentinel indicating that the entry is associated with non-customized data that can be provided to any requesting tenant, wherein a single copy of the record is stored in the cache memory for the any requesting tenant; if no entry associated with the requested data is stored in the cache store;
determining whether the data exists in a data store associated with the tenant;if the data does not exist in the data store associated with the tenant, storing a delete sentinel entry in the cache store and providing the notice of non-existent data to the requesting tenant; if the data exists in the data store associated with the tenant and is customized data for the tenant, storing the customized data in the cache store and providing the customized data to the requesting tenant; and if the data exists in the data store associated with the tenant and is system level data, storing a system sentinel and the system level data in the cache store and providing the customized data to any requesting tenant; and provide the customized requested record to the requesting tenant responsive to determining that the entry is stored and is neither the delete sentinel nor the system sentinel. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage device with instructions stored thereon for handling customizable data in a multi-tenant business application environment, the instructions comprising:
-
determining whether an entry associated with requested data is stored in a cache store in response to receiving a request for data from a tenant; if the entry is stored and is a delete sentinel, providing a notice of non-existent data to the requesting tenant, the delete sentinel indicating that the requested data associated with the entry does not exist in the cache memory; if the entry is stored and is a system sentinel, making the requested data available to a plurality of requesting tenants without retrieving the data from a tenant data store for each request, the system sentinel indicating that the entry is associated with non-customized data that can be provided to any requesting tenant; if no entry associated with the requested data is stored in the cache store and the requested data is available from a data store associated with the tenant; retrieving the data from the data store associated with the tenant; determining a customization level of the retrieved data; if the data is customized, providing the customized data only to the requesting tenant; and if the data is non-customized, making the non-customized data available to any requesting tenant, wherein only one copy of the non-customized data is stored in the cache store; and if the entry is stored and is neither the delete sentinel nor the system sentinel, and the entry is the requested data that is customized for the tenant, making the customized data available only to the requesting tenant. - View Dependent Claims (16, 17)
-
Specification