Distributed Consistent Grid of In-Memory Database Caches
First Claim
1. A method comprising:
- maintaining a grid of mid-tier databases storing cache instances of elements from one or more one or more backend data sources, wherein changes to said cache instances are propagated back to the one or more backend data sources;
receiving a request to change data in a particular mid-tier database, said data belonging to a particular element in the one or more backend data sources;
in response to the request;
identifying a particular cache instance mapped to the data;
determining ownership information for the particular cache instance, wherein the ownership information indicates either;
a) a mid-tier database to which the particular cache instance has been exclusively assigned, or b) that the particular cache instance is not yet stored in the grid;
changing the data in the particular mid-tier database only if the particular database has been assigned exclusive ownership of the particular cache instance;
wherein the method is performed by one or more computing devices implementing the grid.
1 Assignment
0 Petitions
Accused Products
Abstract
A plurality of mid-tier databases form a single, consistent cache grid for data in a one or more backend data sources, such as a database system. The mid-tier databases may be standard relational databases. Cache agents at each mid-tier database swap in data from the backend database as needed. Consistency in the cache grid is maintained by ownership locks. Cache agents prevent database operations that will modify cached data in a mid-tier database unless and until ownership of the cached data can be acquired for the mid-tier database. Cache groups define what backend data may be cached, as well as a general structure in which the backend data is to be cached. Metadata for cache groups is shared to ensure that data is cached in the same form throughout the entire grid. Ownership of cached data can then be tracked through a mapping of cached instances of data to particular mid-tier databases.
-
Citations
32 Claims
-
1. A method comprising:
-
maintaining a grid of mid-tier databases storing cache instances of elements from one or more one or more backend data sources, wherein changes to said cache instances are propagated back to the one or more backend data sources; receiving a request to change data in a particular mid-tier database, said data belonging to a particular element in the one or more backend data sources; in response to the request; identifying a particular cache instance mapped to the data; determining ownership information for the particular cache instance, wherein the ownership information indicates either;
a) a mid-tier database to which the particular cache instance has been exclusively assigned, or b) that the particular cache instance is not yet stored in the grid;changing the data in the particular mid-tier database only if the particular database has been assigned exclusive ownership of the particular cache instance; wherein the method is performed by one or more computing devices implementing the grid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
one or more backend data sources stored in at least one persistent storage device; a backend server executing at a first set of one or more computing devices, the backend server being configured to provide access to the one or more backend data sources; a plurality of mid-tier databases stored at a second set of one or more computing devices; one or more processes executing at the second set of computing devices, the one or more processes configured to maintain, in the plurality of mid-tier databases, a caching grid, said caching grid comprising at least a plurality of shared cache instances of data from the one or more backend data sources; wherein the plurality of shared cache instances are stored in the plurality of mid-tier databases; wherein the one or more processes ensure that for any given data element of the one or more backend data sources for which the caching grid maintains a shared cache instance, the plurality of mid-tier databases store, at any given time, no more than one version of the shared cache instance. - View Dependent Claims (17)
-
-
18. One or more storage media storing instructions which, when executed by one or more computing devices, cause performance of:
-
maintaining a grid of mid-tier databases storing cache instances of elements from one or more one or more backend data sources, wherein changes to said cache instances are propagated back to the one or more backend data sources; receiving a request to change data in a particular mid-tier database, said data belonging to a particular element in the one or more backend data sources; in response to the request; identifying a particular cache instance mapped to the data; determining ownership information for the particular cache instance, wherein the ownership information indicates either;
a) a mid-tier database to which the particular cache instance has been exclusively assigned, or b) that the particular cache instance is not yet stored in the grid;changing the data in the particular mid-tier database only if the particular database has been assigned exclusive ownership of the particular cache instance; wherein the method is performed by one or more computing devices implementing the grid. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification