IP Library Granted Patent US 7,406,464
Granted Patent B2
US 7,406,464 · App. 11/007,061 · Granted Jul 29, 2008

Custom caching

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,406,464
App. No.
11/007,061
Granted
Jul 29, 2008
Kind
B2
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.

Claims (17)

1. A method, comprising:

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 portions of the data is loaded into the cache store;

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;

receiving, from a different thread of the application, a specific key into the index along with the reference to the cache; and

returning, to the different thread, the data acquired by traversing the reference located at its entry value.

2. A system, including:

a key manager;

a cache manager;

a cache entry loader; and

a cache loader, wherein the cache manager creates instances of caches for application threads, the key manager manages key definitions associated with the caches, and the key definitions create a key into an index of the cache store for each portion of data loaded by the cache entry loader, the cache entry loader loads data into the cache store and populates the index with the keys, each key entry having a reference to the loaded data within the cache store, the cache loader acquires the data from one or more data sources, and wherein an instance of one of the caches retrieves or writes information to and from the cache store in response to application thread supplied references to the caches and application thread supplied keys which match one of the keys created by the key definitions.

3. The system of claim 2 wherein the key definitions parse the data from its related data object type to create a specific key for its key type, and provides methods for directly passing the values constructing the key for use by an application.

4. The system of claim 2 further including, a cache maintainer that manages the refreshing of a state of a shared cache, wherein the shared cache store has an instance of the cache store that is indexed therein by a number of the index entries and is shared by a plurality of the application threads.

5. The system of claim 2 further including, a thread local cache manager that manages a number of thread local cache instances associated with specific application thread instances, wherein each thread local cache instance has an instance of the cache store that the data is indexed therein by a number of the index entries, and wherein the data is loaded, modified, and removed based on instructions received from a particular one of the application thread instances associated with a particular one of the thread local cache instances.

6. The system of claim 2 further including, a cache eviction policy that defines the conditions or events under which portions of the data in the cache store are removed from the cache store.

7. A machine readable medium embodying instructions that, when executed by a machine, cause the machine to perform the processing associated with the claim 1 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2015
From: EBAY INC.
To: PAYPAL, INC.
Reel/Frame 036163/0469 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2005
From: KASTEN, CHRISTOPHER J.; SEITZ, GREG
To: EBAY INC.
Reel/Frame 015872/0520 →