Systems and methods for atomic storage operations

US9842128B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9842128-B2
Application numberUS-201414313933-A
CountryUS
Kind codeB2
Filing dateJun 24, 2014
Priority dateAug 1, 2013
Publication dateDec 12, 2017
Grant dateDec 12, 2017

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 atomic storage module may be configured to implement atomic storage operation directed to a first set of identifiers in reference to a second, different set of identifiers. In response to completing the atomic storage operation, the atomic storage module may move the corresponding data to the first, target set of identifiers. The move operation may comprise modifying a logical interface of the data. The move operation may further include storing persistent metadata configured to bind the data to the first set of identifiers.

First claim

Opening claim text (preview).

We claim: 1. A method, comprising: implementing an atomic storage request, the atomic storage request corresponding to an address space, wherein a translation layer maps identifiers of the address space to data stored on a non-volatile storage medium, and wherein implementing the atomic storage request comprises: executing a plurality of storage operations corresponding to the atomic storage request, the plurality of storage operations comprising a write to a specified target identifier of the atomic storage request, wherein executing the write comprises storing a data segment on the non-volatile storage medium with a transactional identifier, the transactional identifier different from the specified target identifier of the atomic storage request; and committing the atomic storage request in response to completing execution of the plurality of storage operations corresponding to the atomic storage request, wherein committing the atomic storage request comprises recording persistent metadata that associates the specified target identifier of the atomic storage request with the stored data segment, such that the translation layer maps the specified target identifier to the data segment stored with the transactional identifier on the non-volatile storage medium. 2. The method of claim 1 , wherein storing the data segment comprises appending the data segment to a log on the non-volatile storage medium, the data segment comprising first mapping metadata that associates the appended data segment with the transactional identifier. 3. The method of claim 2 , wherein recording the persistent metadata comprises appending second mapping metadata to the log on the non-volatile storage medium, the second mapping metadata associating the appended data segment with the specified target identifier and following the first mapping metadata in the log, the method further comprising: determining that the second mapping metadata replaces the first mapping metadata based on the second mapping metadata following the first mapping metadata in the log, such that the translation layer associates the appended data segment with the specified target identifier of the second mapping metadata rather than the transactional identifier of the first mapping metadata. 4. The method of claim 1 , wherein storing the data segment further comprises associating a storage address of the data segment stored on the non-volatile storage medium with the transactional identifier in the translation layer. 5. The method of claim 4 , wherein committing the atomic storage request further comprises replacing, in the translation layer, an association between the transactional identifier and the storage address with an association between the specified target identifier and the storage address. 6. The method of claim 1 , wherein committing the atomic storage request further comprises writing the persistent metadata on the non-volatile storage medium in a single operation, the method further comprising acknowledging completion of the atomic storage request in response to determining that the single operation will result in storing the persistent metadata on the non-volatile storage medium. 7. An apparatus, comprising: a storage layer configured to perform storage operations on a storage device and to manage storage metadata that maps identifiers of a logical address space to data stored on the storage device; and a storage interface configured to receive a storage request, the storage request comprising a plurality of storage operations and pertaining to a first set of identifiers of the logical address space; wherein the storage layer is configured to service the storage request, and wherein to service the storage request the storage layer is configured to: perform the plurality of storage operations of the storage request on the storage device within a second set of identifiers, different from the first set of identifiers, wherein performing the plurality of storage operations comprises storing data segments on the storage device with identifiers of the second set of identifiers, and move the storage operations of the storage request to the first set of identifiers in response to performing the plurality of storage operations of the storage request, wherein moving the storage operations comprises writing a persistent note that associates identifiers of the first set of identifiers with the data segments stored on the storage device with the identifiers of the second set of identifiers, such that the storage metadata maps the identifiers of the first set of identifiers to the stored data segments. 8. The apparatus of claim 7 , wherein: storing the data segments with the identifiers of the second set of identifiers comprises mapping the identifiers of the second set of identifiers to the stored data segments in the storage metadata; and moving the storage operations comprises unmapping the identifiers of the second set of identifiers from the stored data segments in the storage metadata. 9. The apparatus of claim 7 , wherein the storage layer is configured to acknowledge completion of the storage request in response to determining that the persistent note will be stored on the storage device. 10. The apparatus of claim 7 , wherein: the first set of identifiers comprises a plurality of disjoint sets of identifiers; and the persistent note is configured to bind the data segments written on the storage device with the identifiers of the second set of identifiers to respective identifiers within the plurality of disjoint sets of identifiers. 11. The apparatus of claim 7 , wherein the storage layer is configured to allocate the second set of identifiers within one of: a different address space from the logical address space, and a designated region of the logical address space. 12. The apparatus of claim 7 , wherein: writing the data segments with the identifiers of the second set of identifiers comprises appending first mapping metadata to an ordered log maintained on the storage device, the first mapping metadata associating the data segments stored on the storage device with the identifiers of the second set of identifiers, storing the persistent note comprises appending second mapping metadata to the ordered log, the second mapping metadata associating the stored data segments with the identifiers of the first set of identifiers and being ordered after the first mapping metadata in the ordered log, and the second mapping metadata overrides the first mapping metadata based on being ordered after the first mapping metadata in the ordered log. 13. The apparatus of claim 7 , wherein: the storage layer is configured to write translation metadata on the storage device, the translation metadata configured to record associations between the storage operations performed on the storage device and respective identifiers, the second set of identifiers comprises identifiers of a transactional address space, the storage layer is configured to rebuild the storage metadata by use of the translation metadata written on the storage device, and rebuilding the storage metadata comprises invalidating data stored on the storage device associated with the identifiers of the transactional address space by the translation metadata. 14. The apparatus of claim 7 , wherein the storage layer is configured to invalidate one of the identifiers within the first set of identifiers in response to moving a storage operation configured to invalidate data of one of the identifiers in the second set of identifiers. 15. The apparatus of claim 7 , wherein the storage layer is further configured to append the

Assignees

Inventors

Classifications

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Transactional memory (G06F9/528 takes precedence) · CPC title

  • Organizing or formatting or addressing of data · CPC title

  • Management of blocks · CPC title

  • Physics · mapped topic

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 US9842128B2 cover?
An atomic storage module may be configured to implement atomic storage operation directed to a first set of identifiers in reference to a second, different set of identifiers. In response to completing the atomic storage operation, the atomic storage module may move the corresponding data to the first, target set of identifiers. The move operation may comprise modifying a logical interface of t…
Who is the assignee on this patent?
Sandisk Technologies Llc
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 Tue Dec 12 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).