Systems and methods for persistent cache logging
First Claim
1. A method comprising:
- caching write requests directed to a backing store, the write requests for storing respective write data on the backing store, wherein caching a write request comprises;
caching write data corresponding to the write request within a first cache storage, the write data designated to be written to the backing store from the first cache storage; and
storing a redundant copy of the write data cached within the first cache storage on a second, persistent cache storage, separate from the first cache storage, wherein storing the redundant copy of the write data comprises recording a log entry comprising the write data in an ordered sequence of log entries on the second, persistent cache storage, each log entry corresponding to a set of write requests directed to the backing store; and
maintaining associations between the write data cached within the first cache storage and log entries comprising redundant copies of the write data stored on the second, persistent cache storage.
9 Assignments
0 Petitions
Accused Products
Abstract
A cache log module stores an ordered log of cache storage operations sequentially within the physical address space of a non-volatile storage device. The log may be divided into segments, each comprising a set of log entries. Data admitted into the cache may be associated with respective log segments. Cache data may be associated with the log segment that corresponds to the cache storage operation in which the cache data was written into the cache. The backing store of the data may be synchronized to a particular log segment by identifying the cache data pertaining to the segment (using the associations), and writing the identified data to the backing store. Data lost from the cache may be recovered from the log by, inter alia, committing entries in the log after the last synchronization time of the backing store.
500 Citations
23 Claims
-
1. A method comprising:
-
caching write requests directed to a backing store, the write requests for storing respective write data on the backing store, wherein caching a write request comprises; caching write data corresponding to the write request within a first cache storage, the write data designated to be written to the backing store from the first cache storage; and storing a redundant copy of the write data cached within the first cache storage on a second, persistent cache storage, separate from the first cache storage, wherein storing the redundant copy of the write data comprises recording a log entry comprising the write data in an ordered sequence of log entries on the second, persistent cache storage, each log entry corresponding to a set of write requests directed to the backing store; and maintaining associations between the write data cached within the first cache storage and log entries comprising redundant copies of the write data stored on the second, persistent cache storage. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus, comprising:
-
a request monitor configured to identify write requests directed to a backing store; and a cache manager configured to cache the identified write requests, wherein to cache the identified write requests, the cache manager is configured to; admit write data corresponding to the identified write requests into a first cache storage, wherein the write data of the identified write requests are cached within the first cache storage in one or more cache write operations, and wherein the write data admitted into the first cache storage are designated to be written to the backing store from the first cache storage; and maintain redundant copies of the write data corresponding to the identified write requests within a second cache storage, separate from the first cache storage, the redundant copies comprising log entries stored on a non-volatile storage device of the second cache storage, the log entries corresponding to the one or more cache write operations performed on the first cache storage to admit the write data into the first cache storage; wherein the request monitor is further configured to acknowledge completion of a write request, of the identified write requests in response to; completing a cache write operation to admit the write data corresponding to the write request into the first cache storage; and storing a redundant copy of the write data corresponding to the write request as a log entry on the non-volatile storage device of the second cache storage. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium comprising instructions configured to cause a computing system to perform operations, the operations comprising:
caching write-back data responsive to write requests, the write requests corresponding to respective virtual machines of a plurality of virtual machines, the write-back data comprising data to be written to primary storage responsive to the write requests, wherein caching the write-back data of a write request comprises; performing a first cache write operation to cache the write-back data of the write request within a first cache, the write-back data designated to be written to the primary storage from the first cache; performing a second cache write operation to store a redundant copy of the write-back data in a second cache, separate from the first cache, wherein performing the second cache write operation comprises appending a log entry comprising the write-back data of the write request to a persistent, ordered log on a non-volatile storage device of the second cache the persistent, ordered log comprising log entries corresponding to respective cache write operations performed on the first cache during respective log periods; and associating the write-back data of the write request cached within the first cache storage with a log period of the persistent, ordered log on the non-volatile storage device of the second cache. - View Dependent Claims (19, 20, 21, 22, 23)
Specification