Annotated atomic write

US10223208B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10223208-B2
Application numberUS-201414230844-A
CountryUS
Kind codeB2
Filing dateMar 31, 2014
Priority dateAug 13, 2013
Publication dateMar 5, 2019
Grant dateMar 5, 2019

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.

Techniques are disclosed relating to writing data atomically to one or more recording media. In one embodiment, a request is received to perform an atomic write for a set of data. Responsive to the request, the set of data is written across a plurality of storage units including storing metadata at a dedicated location within at least one of the plurality of storage units. The metadata is usable to determine whether the writing completed successfully. In some embodiments, the request is received from an application that has been assigned an address range of the plurality of storage units. In such an embodiment, the address range is accessible to the application for storing data, and the dedicated location resides outside of the address range. In one embodiment, the metadata specifies an address range where the set of data was written and a sequence number.

First claim

Opening claim text (preview).

What is claimed is: 1. A method to improve recovery of a system crash using metadata the method comprising: receiving, from an application, a request to perform an atomic write operation for a set of data; responsive to the request, writing the set of data across a plurality of storage units including storing metadata at a dynamic location within at least one of the plurality of storage units; and deny the application access to the dynamic location at which the metadata is written, wherein: the metadata is usable to determine whether the writing completed; the metadata comprises multiple bits that identify the set of data of the atomic write operation; and the application has been assigned an accessible address range of the plurality of storage units. 2. The method of claim 1 , further comprising: assigning at least one sequence number to atomic write operations performed to the plurality of storage units, wherein: the sequence numbers are indicative of an order in which the atomic write operations occurred; and the metadata specifies an address range where the set of data is written and a sequence number corresponding to the writing of the set of data. 3. The method of claim 2 , further comprising: rolling back the atomic write operation, wherein the rolling back includes invalidating data written to the specified address range. 4. The method of claim 1 , wherein: the writing includes storing a respective instance of a sequence number on each of the plurality of storage units to which the set of data is written; the metadata includes another instance of the sequence number; and the method further comprises determining whether the writing completed by verifying that the instances of the sequence number match. 5. The method of claim 1 , further comprising: reading the metadata from each of the plurality of storage units; and determining, based on reading the metadata, that the atomic write operation failed. 6. The method of claim 1 , further comprising: indicating, to the application, that the writing failed to complete successfully, wherein the indicating includes identifying one or more logical block addresses for which the set of data was not written successfully; and receiving, from the application, a request to rollback the atomic write operation. 7. The method of claim 1 , wherein the stored metadata includes metadata provided by the application. 8. The method of claim 1 , wherein storing the metadata includes: storing a first instance of the metadata at a dedicated location within a first of the plurality of storage devices; and storing a second instance of the metadata at a dedicated location within a second of the plurality of storage devices, wherein the first and second instances are redundant. 9. An apparatus to improve recovery of a system crash using metadata, the apparatus comprising: a vector storage module configured to perform a group of storage operations for a set of data on a plurality of storage devices, including storing the metadata independent of the set of data, wherein: the metadata indicates whether the group of storage operations was performed successfully: the metadata comprises multiple bits that identify the set of data; the vector storage module is configured to store the metadata within a dynamic storage block in at least one of the plurality of storage devices; and the vector storage module is configured to deny an application associated with the set of data access to the dynamic storage block; and a rollback module configured to rollback, in response to receiving a request, the group of storage operations based on the stored metadata; wherein the vector storage module and the rollback module comprise one or more of circuitry and instructions stored on a non-transitory computer readable medium, and the instructions stored on the non-transitory computer readable medium are executable by one or more processors. 10. The apparatus of claim 9 , wherein: the request is a request to perform a partial rollback; and the rollback module is configured to rollback a subset of the group of storage operations but not all of the group of storage operations in response to the request. 11. The apparatus of claim 9 , wherein the rollback module is configured to rollback the group of storage operations by issuing one or more TRIM commands to the plurality of storage devices. 12. The apparatus of claim 9 , wherein: the vector storage module is configured to perform a storage operation for a portion of the set of data that includes encapsulating the portion within a packet having a packet header; the packet header includes one or more bits usable to determine whether the storage operation was performed successfully; and the one or more bits are distinct from the stored metadata. 13. An apparatus to improve recovery of a system crash using metadata, the apparatus comprising: a controller configured to: attempt an atomic write for a set of data to an address range associated with a group of storage devices; store metadata in a storage block having a dynamic address external to the address range, wherein: the address range is accessible to an application associated with the data; the metadata is indicative of writing the set of data; and the metadata comprises multiple bits that identify the set of data of the atomic write; deny the application access to the dynamic address external to the address range; write a respective portion of the set of data to each storage device in the group of storage devices along with a respective instance of a sequence number indicative of an ordering in which the atomic write was attempted; and determine whether the atomic write completed successfully by comparing the instances of the sequence number with an instance of the sequence number in the metadata; wherein the controller comprises one or more of circuitry and instructions stored on a non-transitory computer readable medium, and the instructions stored on the non-transitory computer readable medium are executable by one or more processors. 14. The apparatus of claim 13 , wherein: the controller is configured to maintain a respective storage block for each of a plurality of applications; and each storage block includes metadata corresponding to a most recent atomic write for that application. 15. The apparatus of claim 13 , wherein: the controller is configured to maintain a plurality of storage blocks for an application; and the plurality of storage blocks includes metadata corresponding to a plurality of most recent atomic writes for the application. 16. The apparatus of claim 13 , wherein: the address range is a logical block address range of a sparse address space; and the external address is a logical block address that does not abut the logical block address range. 17. An apparatus to improve recovery of a system crash using metadata, the apparatus comprising: a first means for storing data using a log-structure, wherein the first means includes a plurality of storage blocks; a second means for writing data atomically to a subset of the plurality of storage blocks and writing the metadata to a dynamic storage block that is not within the subset, wherein: the metadata is usable to determine whether the atomical writing of the data completed; the metadata is usable to rollback the atomical writing of the data; and the metadata comprises multiple bits that identify that data atomically written; and a third means for denying a application that requests data to be written atomically a

Assignees

Inventors

Classifications

  • by selection of backup contents · CPC title

  • G06F3/0658Primary

    Controller construction arrangements · CPC title

  • in transactions (updating of structured data in databases G06F16/23) · CPC title

  • in relation to response time · CPC title

  • implemented using Network-attached Storage [NAS] architecture (distributed or networked storage systems G06F3/067; protocols for distributed storage of data in a network H04L67/1097) · 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 US10223208B2 cover?
Techniques are disclosed relating to writing data atomically to one or more recording media. In one embodiment, a request is received to perform an atomic write for a set of data. Responsive to the request, the set of data is written across a plurality of storage units including storing metadata at a dedicated location within at least one of the plurality of storage units. The metadata is usabl…
Who is the assignee on this patent?
Intelligent Ip Holdings 2 Llc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/1451. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 05 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).