Method and apparatus to use DRAM as a cache for slow byte-addressible memory for efficient cloud applications
US-12174739-B2 · Dec 24, 2024 · US
US9852073B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9852073-B2 |
| Application number | US-201213568850-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 7, 2012 |
| Priority date | Aug 7, 2012 |
| Publication date | Dec 26, 2017 |
| Grant date | Dec 26, 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.
In one embodiment, a computing system includes a cache and a cache manager. The cache manager is able to receive data, write the data to a first portion of the cache, write the data to a second portion of the cache, and delete the data from the second portion of the cache when the data in the first portion of the cache is flushed.
Opening claim text (preview).
The invention claimed is: 1. A first computing device, comprising: a plurality of memory managers; one or more memory devices; a memory of at least one of the one or more memory devices comprising a cache, wherein the cache comprises a first cache portion and a second cache portion; a configuration manager comprising a journal, wherein the configuration manager coordinates one or more startup events, wherein the one or more startup events comprises initialization of a client; a first memory manager of the plurality of memory managers associated with the first cache portion, wherein at least a first memory manager of the plurality of memory managers determines the at least one of the one or more memory devices comprising the cache based on an entry in the journal, and wherein the first memory manager manages references to and access to one or more first cached data items of the first cache portion; a second memory manager of the plurality of memory managers associated with the second cache portion, wherein the second memory manager manages references to and access to one or more second cached data items of the second cache portion; a metadata service communicatively coupled to at least one of the plurality of memory managers, wherein the at least one of the plurality of memory managers comprises the first memory manager, wherein the metadata service comprises a locality policy, wherein the metadata service tracks one or more cache block references of the cache, wherein the metadata service identifies which of the plurality of memory managers is associated with a requested cached item, wherein the journal comprises information about the metadata service, wherein the information comprises one or more identifiers of one or more metadata servers that have been expelled from the cache; a first request to access at least one first cached data item of the one or more first cached data items, wherein the first request is granted by the first memory manager, and wherein the first memory manager is identified by the metadata service; a record maintained by the first memory manager, wherein the record comprises information that the client has a reference to the at least one first cached data item of the one or more first cached data items, wherein the information is indicative of a read lock by the client to a particular block of memory managed by the first memory manager; a second request to insert a data item into the first cache portion, wherein the second request is granted by the first memory manager based, at least in part, on a cache insertion policy and an eviction policy applied by a policy engine of the metadata service, and wherein the first memory manager coordinates population of a respective memory block of the first cache portion with the data item; and a metadata entry, wherein the memory comprises the metadata entry, and wherein the metadata entry comprises information associated with the memory, the replica store, the first cache portion, and the second cache portion. 2. The first computing device of claim 1 , wherein at least one of the plurality of memory managers is not physically proximate to the memory. 3. The first computing device of claim 1 , wherein the memory comprises a plurality of memories, and wherein the first cache portion is in a first memory of the plurality of memories and the second cache portion is in a second memory of the plurality of memories. 4. The first computing device of claim 1 , wherein the second portion of the cache is in a second memory of a second computing device. 5. The first computing device of claim 1 , wherein the first computing device is communicatively linked to the metadata service. 6. The first computing device of claim 1 , wherein the first computing device is communicatively linked to a configuration manager. 7. The first computing device of claim 1 , wherein the data item is written to the replica store of data in the second cache portion if the data item written to the first cache portion has not been written to a data store communicatively linked to the cache. 8. One or more computer-readable non-transitory storage media embodying logic that is operable when executed to: determine by a first memory manager of a plurality of memory managers if a memory of at least one of one or more memory devices is associated with a cache based on an entry in a journal of a configuration manager, wherein the configuration manager coordinates one or more startup events, wherein the one or more startup events comprises initialization of a client; manage the memory by the plurality of memory managers, wherein the memory comprises the cache; manage by the first memory manager of the plurality of memory managers a first cache portion of the cache of a first computing device, wherein the memory manager manages references to and access to one or more first cached data items of the first cache portion; manage by a second memory manager of the plurality of memory managers a second cache portion of the cache, wherein the second memory manager manages references to and access to one or more second cached data items of the second cache portion; communicatively couple a metadata service to at least one of the plurality of memory managers, wherein the metadata service comprises a locality policy; track, by the metadata service, one or more cache block references of the cache; receive a first request to access at least one first cached data item of the one or more first cached data items; identify by the metadata service which of the plurality of memory managers is associated with the at least one first cached data item of the one or more first cached data items of the first request, wherein the journal comprises information about the metadata service, wherein the information comprises one or more identifiers of one or more metadata servers that have been expelled from the cache; grant, by the first memory manager, the first request to access the at least one first cached data item of the one or more first cached data items, wherein the first memory manager is identified by the metadata service; maintain a record by the first memory manager of information that the client has a reference to the first cached data item of the one or more first cached data items, wherein the information is indicative of a read lock by the client to a particular block of memory managed by the first memory manager; receive, by the metadata service, a second request to insert a data item into the first cache portion; grant, by the first memory manager, the second request to insert the data item into the first cache portion, wherein the second request is granted by the first memory manager based, at least in part, on a cache insertion policy and an eviction policy applied by a policy engine of the metadata service, and wherein the first memory manager is identified by the metadata service; coordinate population, by the first memory manager, of a respective memory block of the first cache portion with the data item; logically copy the data item from the first cache portion to a replica store of data associated with the second cache portion; and create a metadata entry in the memory, wherein the metadata entry comprises information associated with the memory, the replica store, the first cache portion, and the second cache portion. 9. The media of claim 8 , wherein the memory comprises a plurality of memories, and wherein the first cache portion is in a first memory of the plurality of memories and the second cache portion is in a second memory of the plurality of memories. 10. The media of claim 8 , wherein the second cache portion is in a second memory of a second computing device.
with a shared cache · CPC title
Distributed allocation, i.e. involving a plurality of allocating devices, each making partial allocation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.