Custom caching
AssigneeeBay Inc.
InventorsChristopher J. Kasten, Greg Seitz
Life of this patent
Estimating the term…
Abstract
Methods and systems are presented for custom caching. Application threads define caches. The caches may be accessed through multiple index keys, which are mapped to multiple application thread-defined keys. Methods provide for the each index key and each application thread-defined key to be symmetrical. The index keys are used for loading data from one or more data sources into the cache stores on behalf of the application threads. Application threads access the data from the cache store by providing references to the caches and the application-supplied keys. Some data associated with some caches may be shared from the cache store by multiple application threads. Additionally, some caches are exclusively accessed by specific application threads.
Claims20
A method, including:
- receiving a request, from an application, to create to a custom application-defined cache;
- acquiring configuration information, from the application, the configuration information includes a key manager having one or more key definitions;
- loading portions of data, when not present in a global cache, and loading into the global cache using each of the key definitions for each portion of the loaded data, the global cache is immutable and refreshed at intervals based on configuration policies;
- returning, to the application, a reference to the custom application-defined cache;
- and
- maintaining a plurality of additional custom application-defined caches for additional applications, each additional application is supplied an additional reference to its particular custom application-defined cache, the custom application-defined cache and the additional custom application defined caches are accessed only by specific threads.
A method, including:
- acquiring, from an application, a key manager for a cache;
- loading a cache store by using potentially multiple unique key definitions acquired from the key manager with each portion of data as the portion of data is loaded into the cache store, the multiple unique key definitions provide symmetrical keys between the application and the method;
- receiving for each portion, during the loading, one or more keys into an index associated with the cache store;
- storing, during the receiving, a reference to the data as an entry value that is associated with each key within the index;
- and
- permitting the application and other threads associated with other instances of the application to use the one or more keys to acquire access to the data via the cache store.
A method, including:
- receiving an instruction, from a thread of an application, to begin a threaded local cache of data objects encountered by the thread;
- acquiring a key manager having key definitions from the thread as it is encountered by the thread, the key definitions provide symmetrical keys between the application and the method;
- loading portions of data within a cache store as instructed by the thread, wherein for each portion one or more keys are generated into a cache store using the key definitions supplied by the key manager;
- and
- managing a plurality of other cache stores for other threads using other key definitions supplied or defined by those other threads.
Dependencies are inferred from the claim text.