Systems and methods for persistent atomic storage operations

US9323465B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9323465-B2
Application numberUS-201514627869-A
CountryUS
Kind codeB2
Filing dateFeb 20, 2015
Priority dateMar 18, 2011
Publication dateApr 26, 2016
Grant dateApr 26, 2016

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.

A storage layer presents logical address space of a non-volatile storage device. The storage layer maintains logical interfaces to the non-volatile storage device, which may include arbitrary, any-to-any mappings between logical identifiers and storage resources. Data may be stored on the non-volatile storage device in a contextual format, which includes persistent metadata that defines the logical interface of the data. The storage layer may modify the logical interface of data that is stored in the contextual format. The modified logical interface may be inconsistent with the existing contextual format of the data on the non-volatile storage media. The storage layer may provide access to the data in the inconsistent contextual format through the modified logical interface. The contextual format of the data may be updated to be consistent with the modified logical interface in a write out-of-place storage operation.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a storage controller configured to perform an atomic transaction on a storage medium, wherein performing the atomic transaction comprises storing a plurality of data blocks for the atomic transaction on the storage medium, each data block corresponding to a respective logical identifier of a logical address space, wherein storing a data block for the atomic transaction comprises designating the stored data block for invalidation by associating the stored data block with a logical identifier of a designated set of logical identifiers that differs from the logical identifier corresponding to the data block; and a reconstruction module configured to invalidate stored data blocks that are associated with logical identifiers of the designated set of logical identifiers. 2. The apparatus of claim 1 , wherein the storage controller is further configured to associate the stored data block with the logical identifier corresponding to the data block in response to storing the plurality of data blocks for the atomic storage transaction on the storage medium. 3. The apparatus of claim 1 , wherein the reconstruction module is configured to identify stored data blocks that are associated with the logical identifiers of the designated set of logical identifiers in response to an invalid shutdown. 4. The apparatus of claim 1 , wherein the storage controller is configured to associate the stored data block with the logical identifier of the designated set of logical identifiers by writing persistent data to the storage medium, and wherein the reconstruction module is configured to identify the stored data blocks of the atomic transaction that is associated with the logical identifier of the designated set of logical identifiers by use of the persistent data written to the storage medium. 5. The apparatus of claim 1 , wherein storing the data block comprises storing the data block with persistent metadata that comprises the logical identifier of the designated set of logical identifiers on the storage medium, and wherein the storage controller is further configured to store persistent metadata on the storage medium to associate the stored data block with the logical identifier corresponding to the data block in response to storing the plurality of data blocks for the atomic storage transaction on the storage medium. 6. The apparatus of claim 5 , wherein the reconstruction module is configured to invalidate the stored data block in response to determining that the stored data block is associated with the logical identifier of the designated set of logical identifiers. 7. The apparatus of claim 5 , wherein the storage controller is configured to determine that the stored data block comprises valid data in response to determining that the stored data block is associated with the logical identifier corresponding to the data block. 8. The apparatus of claim 1 , wherein the designated set of logical identifiers comprise one or more of a range of logical identifiers of the logical address space, an extent of the logical address space, a subset of the logical address space, and logical identifiers of an address space that is separate from the logical address space of the logical identifiers corresponding to the data blocks. 9. The apparatus of claim 1 , wherein the storage controller is configured to cancel the invalidation designation of the stored data block by associating the stored data block with the logical identifier corresponding to the data block in response to storing the plurality of data blocks for the atomic transaction on the storage medium. 10. The apparatus of claim 1 , wherein the storage controller comprises a log storage module configured to append data blocks as packets in a storage log on the storage medium, to designate the stored data block for invalidation by associating the stored data block with the logical identifier of the designated set by use of a header of a packet comprising the stored data block, and to remove the invalidation designation from the stored data block by appending a persistent note to the storage log configured to associate the stored data block with the logical identifier corresponding to the data block. 11. A system, comprising: a storage interface configured to receive an atomic storage request; a log storage module configured to complete the atomic storage request, wherein completing the atomic storage request comprises writing a plurality of data segments of the atomic storage request to a storage log on a non-volatile storage medium, each data segment being associated with a respective one of a first set of logical addresses; wherein the log storage module is configured to write the plurality of data segments to the storage log with persistent metadata that maps the data segments to respective logical addresses of a second set of logical addresses that differ from the logical addresses of the first set of logical addresses, wherein the log storage module is configured to invalidate the persistent metadata that maps the data segment to the logical address of the second set of logical addresses in response to completing the atomic storage request; and a translation layer configured to maintain logical address mappings between logical addresses and data segments of the storage log, wherein the translation layer is configured to invalidate data segments of the storage log that are mapped to logical addresses in the second set of logical addresses. 12. The system of claim 11 , wherein the log storage module is configured to write a persistent note to the storage log that invalidates mappings between the data segments of the atomic storage request and logical addresses in the second set of logical addresses in response to completing the atomic storage request. 13. The system of claim 12 , wherein the persistent note is configured to map the data segments of the atomic storage request to logical addresses in the first set of logical addresses. 14. The system of claim 11 , wherein the translation layer is configured to reconstruct logical address mappings of data segments in the storage log by use of the persistent metadata of the data segments stored within the storage log, and wherein the translation layer is configured to ignore logical address mappings pertaining to data segments that are associated with logical addresses in the second set of logical addresses. 15. The system of claim 11 , wherein completing the atomic storage request further comprises associating a particular data segment stored in the storage log that maps to a particular logical identifier with a logical identifier in the second set of logical identifiers such that the particular data segment is mapped to both the particular logical identifier and the logical identifier in the second set of logical identifiers. 16. A method, comprising: servicing an atomic storage request comprising a plurality of storage operations, each storage operation comprising storage of a respective data segment corresponding to a respective logical address on a non-volatile storage medium, wherein servicing the atomic storage request comprises; storing data segments of the atomic storage request on the non-volatile storage medium, wherein storing the data segments comprises assigning the stored data segments to respective logical addresses of a designated extent of logical addresses, wherein the assigned logical addresses differ from the logical addresses corresponding to the respective data segments, and writing persistent metadata on the non-volatile storage medium to assign the stored data

Assignees

Inventors

Classifications

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • by changing the state or mode of one or more devices · CPC title

  • Auxiliary circuits, e.g. for writing into memory · CPC title

  • by allocating resources to storage systems · CPC title

  • Non-volatile semiconductor memory arrays · 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 US9323465B2 cover?
A storage layer presents logical address space of a non-volatile storage device. The storage layer maintains logical interfaces to the non-volatile storage device, which may include arbitrary, any-to-any mappings between logical identifiers and storage resources. Data may be stored on the non-volatile storage device in a contextual format, which includes persistent metadata that defines the log…
Who is the assignee on this patent?
Fusion Io Llc, Sandisk Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 26 2016 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).