Memory device with data scrubbing capability and methods
US-2024393961-A1 · Nov 28, 2024 · US
US2016246522A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016246522-A1 |
| Application number | US-201514631408-A |
| Country | US |
| Kind code | A1 |
| Filing date | Feb 25, 2015 |
| Priority date | Feb 25, 2015 |
| Publication date | Aug 25, 2016 |
| Grant date | — |
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.
An exactly once semantics (EOS) system of a storage input/output (I/O) stack implements a technique ensuring that non-idempotent operations occur exactly once in a storage system embodied as a node of a cluster. Illustratively, a first layer of the storage I/O stack may act as a client issuing a non-idempotent operation to second layer of the stack, which may act as a server. According to the technique, the EOS system may wrap (i.e., encapsulate) the non-idempotent operation within a transaction embodied as an EOS transaction data structure having a transaction identifier that uniquely identifies the transaction. The server may complete the transaction and reply with a result to the client, which may acknowledge receipt of the reply. In response to a crash and subsequent recovery of the node, the EOS system may determine whether the transaction had completed prior to the crash. If so, the EOS system ensures that the transaction is not re-played (re-executed). Otherwise, the EOS system allows execution of the transaction such that the transaction occurs exactly once.
Opening claim text (preview).
What is claimed is: 1 . A method comprising: receiving a write request directed towards a storage container, the write request having data, the write request processed at a storage system having a memory and a processor; creating a first transaction at a client process of the storage system, the first transaction having a first operation to store the data and including a unique transaction identifier (ID), the first operation stored to a first log maintained by the client process; sending the first transaction to a server process of the storage system; processing the first transaction at the server process, wherein the data is deduplicated with an extent stored on a storage array of storage devices attached to the storage system, wherein a first persistent state associated with the first transaction is maintained by the server process; sending a first reply for the first transaction from the server process to the client process; and acknowledging the first reply by the client process to the server process, wherein the server process removes the first persistent state associated with the first transaction such that the first operation is executed only once by the storage system. 2 . The method of claim 1 wherein the transaction ID includes a first used only once (nonce) ID generated by the client process. 3 . The method of claim 2 wherein the transaction ID includes a client ID identifying the client process. 4 . The method of claim 1 further comprising: in response to an unexpected interruption of sending the first reply, replaying the first transaction by the client process, wherein the first transaction is sent again to the server process; and sending the first reply from the server process to the client process for the first transaction without executing the first operation again. 5 . The method of claim 1 further comprising: in response to an unexpected interruption of the transaction, replaying the first transaction by the client process; and sending an acknowledgement for the first transaction and a second transaction from the client process to the server process, wherein the first and second transactions are unacknowledged at a time of the unexpected interruption. 6 . The method of claim 5 wherein an in-core counter used by the client process to generate the nonce ID is reset to a sentinel value. 7 . The method of claim 2 further comprising: appending by the client process a transaction data structure to the first transaction, wherein the transaction data structure includes a second nonce ID for a second transaction, wherein a second reply to the second transaction is received by the client process, wherein the second transaction is associated with a second operation; and wherein the server process removes a second persistent state associated with the second transaction such that the second operation is executed only once by the storage system. 8 . The method of claim 1 further comprising: associating metadata with the data; creating a second transaction to store the metadata; and creating by the client process a second transaction having a second operation to store the metadata, wherein the second operation is idempotent; processing by the server process the second transaction such that the metadata is stored on the storage array, wherein no transaction ID is associated with the transaction. 9 . The method of claim 1 wherein the storage devices are solid state drives. 10 . The method of claim 3 wherein the server ID is assigned to the server process at an initial boot of the storage system, and wherein the assignment of the server ID to the server process remains unchanged on subsequent boots of the storage system. 11 . A system comprising: a storage system having a memory connected to a processor via a bus; a storage array coupled to the storage system and having one or more storage devices; a storage I/O stack executing on the processor of the storage system, the storage I/O stack when executed operable to: receive a write request directed towards a storage container, the write request having data; create a first transaction at a client process of the storage system, the first transaction having a first operation to store the data, the first transaction including a unique transaction identifier (ID), the first operation stored to a first log maintained by the client process; send the first transaction to a server process of the storage system; execute the first transaction at the server process, wherein a first persistent state associated with the first transaction is maintained by the server process; send a first reply for the first transaction from the server process to the client process; and acknowledge the first reply by the client process to the server process, wherein the server process removes the first persistent state associated with the first transaction such that the first operation is executed only once by the storage system. 12 . The system of claim 11 wherein the transaction ID includes a first used only once (nonce) ID generated by the client process. 13 . The system of claim 12 wherein the transaction ID includes a client ID identifying the client process. 14 . The system of claim 11 wherein the storage I/O stack is further operable to: in response to an unexpected interruption of sending the first reply, replay the first transaction by the client process, wherein the first transaction is sent again to the server process; and send the first reply from the server process to the client process for the first transaction without executing the first operation again. 15 . The system of claim 11 wherein the storage I/O stack is further operable to: in response to an unexpected interruption of the transaction, replaying the first transaction by the client process; and sending an acknowledgement for the first transaction and a second transaction from the client process to the server process, wherein the first and second transactions are unacknowledged at a time of the unexpected interruption. 16 . The system of claim 15 wherein an in-core counter used by the client process to generate the nonce ID is reset to a sentinel value. 17 . The system of claim 12 wherein the storage I/O stack is further operable to: appending by the client process a transaction data structure to the first transaction, wherein the transaction data structure includes a second nonce ID for a second transaction, wherein a second reply to the second transaction is received by the client process, wherein the second transaction is associated with a second operation; and wherein the server process removes a second persistent state associated with the second transaction such that the second operation is executed only once by the storage system. 18 . The system of claim 12 wherein the storage I/O stack is further operable to: associating metadata with the data; creating a second transaction to store the metadata; creating by the client process a second transaction having a second operation to store the metadata, wherein the second operation is idempotent; and processing by the server process the second transaction such that the metadata is stored on the storage array, wherein no transaction ID is associated with the transaction. 19 . The system of claim 13 wherein the server ID is assigned to the server process at an initial boot of the storage system, and wherein the assignment of the server ID to the server process remains unchanged on subsequent boot
involving logging of persistent data for recovery · CPC title
Using snapshots, i.e. a logical point-in-time copy of the data · CPC title
in transactions (updating of structured data in databases G06F16/23) · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.