Systems and methods for persistent atomic storage operations
First Claim
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.
4 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
21 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15)
-
-
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 segments to the logical address corresponding to the respective data segments in response to servicing the plurality of storage operations of the atomic storage request; and reconstructing assignments between the logical address space and data segments stored on the non-volatile storage medium in response to an invalid shutdown, wherein reconstructing the assignments comprises omitting assignments pertaining to the designated extent of logical addresses. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification