Database server storing plurality of versions of data, and database management method
US-2015379065-A1 · Dec 31, 2015 · US
US9569475B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9569475-B2 |
| Application number | US-201313799572-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 13, 2013 |
| Priority date | Feb 12, 2008 |
| Publication date | Feb 14, 2017 |
| Grant date | Feb 14, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A plurality of mid-tier databases form a single, consistent cache grid for data in 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. Ownership locks maintain consistency in the cache grid. 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.
Opening claim text (preview).
What is claimed is: 1. A method comprising: storing a plurality of backend data elements in one or more backend data sources in at least one persistent storage device; storing a plurality of mid-tier databases at a plurality of computing devices of a caching grid, each computing device of the plurality of computing devices comprising a self-contained database server that: processes database commands, does not share one or more resources with other mid-tier database servers of other computing devices of the plurality of computing devices, and maintains transactional consistency with respect to one or more mid-tier databases stored at said each computing device; maintaining, in the plurality of mid-tier databases, a plurality of shared cache instances that each correspond to a backend data element selected from the plurality of backend data elements stored in the one or more backend data sources; ensuring that for a particular backend data element, the plurality of mid-tier databases does not store, at any given time, more than one shared cache instance for the particular backend data element; providing a first application access to a first mid-tier database at a first computing device; receiving, at the first computing device, a database command from the first application that modifies a first cache instance of a first backend element; in response to the database command from the first application, moving the first cache instance from a second mid-tier database at a second computing device to the first mid-tier database, wherein the first cache instance is removed from the second mid-tier database; after moving the first cache instance, accessing the first cache instance, by the first application, at the first computing device using one or more database commands; wherein the method is performed by one or more computing devices. 2. The method of claim 1 , further comprising maintaining the caching grid in an online state even after failure of one or more of the plurality of mid-tier databases. 3. The method of claim 1 , further comprising: maintaining shared ownership metadata that maps particular cache instances of particular backend data elements to particular mid-tier databases; locating the first cache instance within the second mid-tier database based on the shared ownership metadata; and updating the shared ownership metadata to indicate that the first cache instance has been moved to the first mid-tier database. 4. The method of claim 1 , wherein the plurality of mid-tier databases are in-memory relational databases. 5. The method of claim 1 , further comprising: maintaining metadata defining one or more shared cache groups, the one or more shared cache groups comprising the plurality of shared cache instances, said metadata indicating that at any given time, the caching grid should maintain only a single consistent version of a corresponding backend data element; storing, within at least the first mid-tier database of the plurality of mid-tier databases, a plurality of local cache instances, wherein the plurality of local cache instances are not in the one or more shared cache groups. 6. The method of claim 1 , further comprising: maintaining metadata defining one or more shared cache groups, the one or more shared cache groups comprising the plurality of shared cache instances, said metadata indicating that at any given time, the caching grid should maintain only a single consistent version of a corresponding backend data element; wherein each of the one or more shared cache groups is mapped to a different set of one or more tables in the one or more backend data sources; wherein no table in the one or more backend data sources is mapped to more than one of the one or more shared cache groups; wherein each cache instance of said plurality of shared cache instances maps to a different set of one or more associated rows or row portions. 7. The method of claim 1 , wherein the one or more computing devices store an active copy of a particular mid-tier database and a standby copy of the particular mid-tier database, wherein upon failure of the active copy of the particular mid-tier database, the standby copy of the particular mid-tier database retains ownership of any cache instances assigned to the particular mid-tier database. 8. The method of claim 1 , further comprising: committing, at a particular computing device of the caching grid that stores a particular mid-tier database, changes to a particular cache instance maintained in the particular mid-tier database; propagating the changes that were committed to the one or more backend data sources. 9. The method of claim 1 , further comprising: providing, at each particular computing device of the plurality of computing devices of the caching grid, a code library by which one or more applications executing at the plurality of computing devices are enabled to locate and read cache instances directly from a local volatile memory in which a local mid-tier database, of the plurality of mid-tier databases, is stored; wherein each code library is configured to interface with a local cache agent to access cache instances that are not stored at the local mid-tier database; wherein the local cache agents coordinate with each other to collectively maintain the caching grid; wherein the first cache instance is requested by a first cache agent at the first computing device; removing, by a second cache agent, the first cache instance from the second mid-tier database at the second computing device; storing, by the first cache agent, the first cache instance in the first mid-tier database at the first computing device. 10. One or more non-transitory storage media storing one or more sequences of instructions that, when executed by one or more computing devices, cause: storing a plurality of backend data elements in one or more backend data sources in at least one persistent storage device; storing a plurality of mid-tier databases at a plurality of computing devices of a caching grid, each computing device of the plurality of computing devices comprising a self-contained database server that: processes database commands, does not share one or more resources with other mid-tier database servers of other computing devices of the plurality of computing devices, and maintains transactional consistency with respect to one or more mid-tier databases stored at said each computing device; maintaining, in the plurality of mid-tier databases a plurality of shared cache instances that each correspond to a backend data element selected from the plurality of backend data elements stored in the one or more backend data sources; ensuring that for a particular backend data element, the plurality of mid-tier databases does not store, at any given time, more than one shared cache instance for the particular backend data element; providing a first application access to a first mid-tier database at a first computing device; receiving, at the first computing device, a database command from the first application that modifies a first cache instance of a first backend element; in response to the database command from the first application, moving the first cache instance from a second mid-tier database at a second computing device to the first mid-tier database, wherein the first cache instance is removed from the second mid-tier database; after moving the first cache instance, accessing the first cache instance, by the first application, at the first computing device using one or more database commands. 11. The one or more storage media of claim 10 , wherein the one or more sequences of instructions further include instructions that, whe
Physics · mapped topic
with a shared cache · CPC title
Indexing; Data structures therefor; Storage structures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.