Exactly once semantics

US2016246522A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016246522-A1
Application numberUS-201514631408-A
CountryUS
Kind codeA1
Filing dateFeb 25, 2015
Priority dateFeb 25, 2015
Publication dateAug 25, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016246522A1 cover?
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 t…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 25 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).