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
US9727470B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9727470-B1 |
| Application number | US-201414501928-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 30, 2014 |
| Priority date | Sep 30, 2014 |
| Publication date | Aug 8, 2017 |
| Grant date | Aug 8, 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.
Systems and methods are provided herein for efficient local caching of data tiered to cloud storage to help reduce the bandwidth cost of repeated reads and writes to the same region of a stubbed file, increase the performance of write operations, and increase performance of read operations to portions of a stubbed file accessed repeatedly. When operations are directed toward data tiered to the cloud, the data can be read from cloud storage and stored within a local cache. A cache tracking tree can be generated and used to track file regions of a stub file, cached states associated with regions of the stub file, a set of cache flags, and other file and mapping data. For example, the cache state of regions of a stub file can be tracked including a cached data state, a non-cached state, a modified state, or a truncated state. Operations directed toward stubbed files can then look to the cache tracking tree to determine the most efficient way to access, retrieve, or operate on the data that maximizes local file system performance while reducing network activity.
Opening claim text (preview).
What is claimed is: 1. A method comprising: generating a cache tracking tree based on a stub file, wherein the cache tracking tree tracks file regions of the stub file, cached states associated with regions of the stub file, a set of cache flags, a version, a file size, a region size, a data offset, a last region, and a range map; associating the cache tracking tree with the stub file; receiving a read request associated with a set of regions of the stub file; activating a shared cache tracking tree lock on the cache tracking tree wherein the set of cache flags are set to indicate the shared cache tracking tree lock; activating a shared region lock for the set of regions, wherein the set of cache flags are set to indicate the shared region lock; determining a cached state associated with the set of regions of the stub file; in response to determining the cached state associated with the set of regions of the stub file do not have a state of not cached, upgrading the shared region lock to an exclusive region lock; reading file data from the set of regions; and deactivating the shared cache tracking tree lock and the exclusive region lock. 2. The method of claim 1 , further comprising: receiving a fill request associated with a set of regions of the stub file; activating an exclusive cache tracking tree lock on the cache tracking tree, wherein the set of cache flags are set to indicate the exclusive cache tracking tree lock is active; determining a cached state associated with the set of regions of the stub file; in response to determining the cached state associated with the set of regions of the stub file are not dirty, downgrading the exclusive cache tracking tree lock to a shared cache tracking tree lock, wherein the set of cache flags are set to indicate the shared cache tracking tree lock is active; updating the cached states associated with the set of regions to cached; activating a shared region lock for the set of regions wherein the set of cache flags are set to indicate the shared region lock; reading file data from cloud storage associated with the set of regions; storing the file data in local cache storage based on the cache tracking tree; and deactivating the shared cache tracking tree lock and the shared region lock. 3. The method of claim 1 , further comprising: receiving a write operation associated with a set of regions of the stub file and a set of write data; activating an exclusive lock on the cache tracking tree wherein the set of cache flags are set to indicate the exclusive lock; in response to determining that the file size of the write is greater than the file size, updating at least one of the file size, the last region, and the range map; downgrading the exclusive lock to a cache tracking tree shared lock, wherein the set of cache flags are set to indicate the cache tracking tree shared lock; activating an exclusive region lock for the set of regions wherein the set of cache flags are set to indicate the exclusive region lock; in response to determining that regions of the set of regions have a cached state of not cached, filling regions of the set of regions; updating the cached states of the set of regions to dirty; writing the write data into the set of regions; and deactivating the cache tracking tree shared lock and the exclusive region lock. 4. A system comprising at least one storage device and at least one hardware processor configured to: generating a cache tracking tree based on a stub file, wherein the cache tracking tree tracks file regions of the stub file, cached states associated with regions of the stub file, a set of cache flags, a version, a file size, a region size, a data offset, a last region, and a range map; associating the cache tracking tree with the stub file; receiving a read request associated with a set of regions of the stub file; activating a shared cache tracking tree lock on the cache tracking tree wherein the set of cache flags are set to indicate the shared cache tracking tree lock; activating a shared region lock for the set of regions, wherein the set of cache flags are set to indicate the shared region lock; determining a cached state associated with the set of regions of the stub file; in response to determining the cached state associated with the set of regions of the stub file do not have a state of not cached, upgrading the shared region lock to an exclusive region lock; reading file data from the set of regions; and deactivating the shared cache tracking tree lock and the exclusive region lock. 5. The system of claim 4 , further configured to: receiving a fill request associated with a set of regions of the stub file; activating an exclusive cache tracking tree lock on the cache tracking tree, wherein the set of cache flags are set to indicate the exclusive cache tracking tree lock is active; determining a cached state associated with the set of regions of the stub file; in response to determining the cached state associated with the set of regions of the stub file are not dirty, downgrading the exclusive cache tracking tree lock to a shared cache tracking tree lock, wherein the set of cache flags are set to indicate the shared cache tracking tree lock is active; updating the cached states associated with the set of regions to cached; activating a shared region lock for the set of regions wherein the set of cache flags are set to indicate the shared region lock; reading file data from cloud storage associated with the set of regions; storing the file data in local cache storage based on the cache tracking tree; and deactivating the shared cache tracking tree lock and the shared region lock. 6. The system of claim 4 , further configured to: receiving a write operation associated with a set of regions of the stub file and a set of write data; activating an exclusive lock on the cache tracking tree wherein the set of cache flags are set to indicate the exclusive lock; in response to determining that the file size of the write is greater than the file size, updating at least one of the file size, the last region, and the range map; downgrading the exclusive lock to a cache tracking tree shared lock, wherein the set of cache flags are set to indicate the cache tracking tree shared lock; activating an exclusive region lock for the set of regions wherein the set of cache flags are set to indicate the exclusive region lock; in response to determining that regions of the set of regions have a cached state of not cached, filling regions of the set of regions; updating the cached states of the set of regions to dirty; writing the write data into the set of regions; and deactivating the cache tracking tree shared lock and the exclusive region lock. 7. A non-transitory computer readable medium with program instructions stored thereon to perform the following acts: generating a cache tracking tree based on a stub file, wherein the cache tracking tree tracks file regions of the stub file, cached states associated with regions of the stub file, a set of cache flags, a version, a file size, a region size, a data offset, a last region, and a range map; associating the cache tracking tree with the stub file; receiving a read request associated with a set of regions of the stub file; activating a shared cache tracking tree lock on the cache tracking tree wherein the set of cache flags are set to indicate the shared cache tracking tree lock; activating a shared region lock for the set of regions, wherein the set of cache flags are set to indicate the shared region lock; determining a cached state associated with the set of regions of the stub file; in response to determining the cached state associated with the set of regions of the stub f
Physics · mapped topic
Coherency control relating to peripheral accessing, e.g. from DMA or I/O device · CPC title
Physics · mapped topic
in combination with broadcast means (e.g. for invalidation or updating) · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.