Write-Back Storage Cache Based On Fast Persistent Memory
First Claim
Patent Images
1. A method, comprising steps of:
- a storage device receiving from a storage device client a data block write request to write a data block to said storage device;
wherein said storage device comprises one or more primary storage devices and one or more persistent cache devices;
storing, to a persistent cache device of said one or more persistent cache devices, said data block as a cache copy of the data block version stored in said one or more primary storage devices;
in response to storing said data block to said persistent cache device, transmitting an acknowledgement to the storage device client to acknowledge commitment of the write of said data block; and
after transmitting said acknowledgment, said storage device storing said data block to said one or more primary storage devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage device uses non-volatile memory devices for caching. The storage device operates in a mode referred to herein as write-back mode. In write-back mode, a storage device responds to a request to write data by persistently writing the data to a cache in a non-volatile memory device and acknowledges to the requestor that the data is written persistently in the storage device. The acknowledgement is sent without necessarily having written the data that was requested to be written to primary storage. Instead, the data is written to primary storage later.
64 Citations
9 Claims
-
1. A method, comprising steps of:
-
a storage device receiving from a storage device client a data block write request to write a data block to said storage device; wherein said storage device comprises one or more primary storage devices and one or more persistent cache devices; storing, to a persistent cache device of said one or more persistent cache devices, said data block as a cache copy of the data block version stored in said one or more primary storage devices; in response to storing said data block to said persistent cache device, transmitting an acknowledgement to the storage device client to acknowledge commitment of the write of said data block; and after transmitting said acknowledgment, said storage device storing said data block to said one or more primary storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising steps of:
-
a storage device receiving from a storage device client a data block write request to write a data block to said storage device; wherein said storage device comprises one or more primary storage devices and one or more persistent cache devices; selecting a victim cache copy stored in said one or more persistent cache devices to which to replace with said data block; wherein said persistent cache metadata; maps the cache block address of said victim to the primary block address of the data block of which said victim is a cache copy; contains a dirty flag that specifies that said victim is clean; associates with said victim a block check value; overwriting said victim in said persistent cache device with the contents of said data block; encountering a storage device failure before updating said persistent cache metadata to reflect said overwriting of said victim; and said storage device performing recovery, wherein performing recovery includes; generating a block check value based on said content of the data block stored in place of said victim in said persistent storage device, making a comparison between (1) the block check value generated based on the content of the data block stored in place of said victim and (2) the block check value associated with said victim by said persistent cache metadata, and based on the comparison, detecting that the persistent cache metadata contains a false dirty flag that species that the data block stored in place of said victim is clean.
-
-
9. A method, comprising steps of:
-
a storage device receiving from a storage device client a data block write request to write a data block to said storage device; wherein said storage device comprises one or more primary storage devices and one or more persistent cache devices; determining that a cache copy of said data block is stored in a persistent cache device of said one or more persistent cache devices; wherein said persistent cache metadata; maps the cache block address of said cache copy to the primary block address of a data block of which said cache copy is a copy, contains a dirty flag that specifies that said cache copy is dirty, and associates with said victim a block check value; overwriting said cache copy in said persistent cache device with the contents of said data block specified in said data block request; transmitting an acknowledgement to the storage device client to acknowledge commitment of the write of said data block; and said storage device performing recovery, wherein performing recovery includes determining that the overwritten version of said cache copy is dirty based on said dirty flag.
-
Specification