Apparatus, system, and method for atomic storage operations
First Claim
1. A method, comprising:
- storing a plurality of data units pertaining to an atomic storage request sequentially at an append point of a log within a physical address space of a non-volatile storage device in a plurality of storage operations, each storage operation to write a respective data unit at the append point of the log with respective persistent metadata and to advance the append point sequentially in the physical address space, such that physical storage addresses of data units stored within the log correspond to a sequence order of the data units, wherein;
the persistent metadata of data units to be written in storage operations other than a last storage operation of the atomic storage request comprises a first value configured to indicate that the data units correspond to an incomplete atomic storage request, andthe persistent metadata of a data unit to be written in the last storage operation of the atomic storage request comprises a second value configured to indicate that the plurality of data units correspond to a completed atomic storage request; and
determining whether the atomic storage request completed, the determining comprising;
traversing data units stored within the log in a reverse sequence order of the data units, the reverse sequence order corresponding to physical storage addresses of the data units stored within the log; and
accessing the persistent metadata of a first data unit in the reverse sequence order.
9 Assignments
0 Petitions
Accused Products
Abstract
A storage layer (SL) for a non-volatile storage device presents a logical address space of a non-volatile storage device to storage clients. Storage metadata assigns logical identifiers in the logical address space to physical storage locations on the non-volatile storage device. Data is stored on the non-volatile storage device in a sequential log-based format. Data on the non-volatile storage device comprises an event log of the storage operations performed on the non-volatile storage device. The SL presents an interface for requesting atomic storage operations. Previous versions of data overwritten by the atomic storage device are maintained until the atomic storage operation is successfully completed. Data pertaining to a failed atomic storage operation may be identified using a persistent metadata flag stored with the data on the non-volatile storage device. Data pertaining to failed or incomplete atomic storage requests may be invalidated and removed from the non-volatile storage device.
-
Citations
19 Claims
-
1. A method, comprising:
-
storing a plurality of data units pertaining to an atomic storage request sequentially at an append point of a log within a physical address space of a non-volatile storage device in a plurality of storage operations, each storage operation to write a respective data unit at the append point of the log with respective persistent metadata and to advance the append point sequentially in the physical address space, such that physical storage addresses of data units stored within the log correspond to a sequence order of the data units, wherein; the persistent metadata of data units to be written in storage operations other than a last storage operation of the atomic storage request comprises a first value configured to indicate that the data units correspond to an incomplete atomic storage request, and the persistent metadata of a data unit to be written in the last storage operation of the atomic storage request comprises a second value configured to indicate that the plurality of data units correspond to a completed atomic storage request; and determining whether the atomic storage request completed, the determining comprising; traversing data units stored within the log in a reverse sequence order of the data units, the reverse sequence order corresponding to physical storage addresses of the data units stored within the log; and accessing the persistent metadata of a first data unit in the reverse sequence order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium comprising machine-readable instructions configured to cause a machine to perform operations, comprising:
-
storing data of an atomic storage request on the non-volatile storage device within a plurality of data packets, each data packet stored in a respective storage operation comprising, writing the data packet at an append point for a log maintained on a non-volatile storage medium and advancing the append point sequentially within a physical address space of the non-volatile storage medium, such that physical addresses of the data packets appended to the log correspond to a sequencer order of the data units, wherein; data packets to be appended to the log in storage operations other than a last storage operation of the atomic storage request comprise a first persistent flag configured to indicate that the data packets correspond to an incomplete atomic storage operation, and a data packet to be appended to the log in the last storage operation of the atomic storage request comprises a second persistent value configured to indicate that the plurality of data packets correspond to a complete atomic storage operation; and determining whether the atomic storage request was successful, the determining comprising; accessing data packets stored within the log on the non-volatile storage medium in a reverse sequence order, the reverse sequencer order corresponding to physical addresses of the data packets on the non-volatile storage medium; and evaluating a persistent flag of a first data packet accessed in the reverse sequence order. - View Dependent Claims (14)
-
-
15. An apparatus for providing atomic storage operations, comprising:
-
a non-volatile storage device comprising a non-volatile storage medium; and a storage layer configured to; receive an atomic storage request from a storage client, and store a plurality of data segments of the atomic storage request within a log on the non-volatile storage device, each data segment being written to the log in a respective storage operation, comprising writing the data segment at an append point for the log together with persistent metadata, and advancing the append point sequentially within a storage address space of the non-volatile storage device, such that storage addresses of the data segments stored on the non-volatile storage device correspond to a sequence order of the data segments in the log, wherein; the persistent metadata stored with data segments to be written in storage operations other than a last storage operation of the atomic storage request comprises a first value configured to indicate that the data segments correspond to an incomplete atomic storage request, and the persistent metadata stored with a data segment to be written in the last storage operation of the atomic storage request comprises a second value configured to indicate that the plurality of data segments correspond to a completed atomic storage request; and to determine whether the atomic storage request was successfully completed, the storage layer is further configured to; identify a current append point of the log within the storage address space of the non-volatile storage device, and read persistent metadata of a data segment stored at the current append point of the log. - View Dependent Claims (16, 17, 18, 19)
-
Specification