Methods and appratuses for atomic storage operations
First Claim
1. A method for servicing an atomic storage request to store data on a non-volatile solid-state storage device, the non-volatile solid-state storage device comprising one or more solid-state storage elements, each solid-state storage element partitioned into a plurality of physical erase blocks, the method comprising:
- storing data of an atomic storage request comprising a first data packet and a second data packet on a non-volatile solid-state storage device in a log-based sequential format, wherein the first data packet and the second data packet are stored on different logical erase blocks, wherein each logical erase block comprises two or more physical erase blocks;
storing persistent metadata within each data packet of the atomic storage request that indicates that the data of the atomic storage request pertains to the atomic storage request; and
acknowledging completion of the atomic storage request upon completion of storing the data of the atomic storage request.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for storing data packets in two different logical erase blocks pursuant to an atomic storage request is disclosed. Each data packet stored in response to the atomic storage request comprises persistent metadata indicating that the data packet pertains to an atomic storage request. In addition, a method and apparatus for restart recovery is disclosed. A data packet preceding an append point is identified as satisfying a failed atomic write criteria, indicating that the data packet pertains to a failed atomic storage request. One or more data packets associated with the failed atomic storage request are identified and excluded from an index of a non-volatile storage media.
220 Citations
30 Claims
-
1. A method for servicing an atomic storage request to store data on a non-volatile solid-state storage device, the non-volatile solid-state storage device comprising one or more solid-state storage elements, each solid-state storage element partitioned into a plurality of physical erase blocks, the method comprising:
-
storing data of an atomic storage request comprising a first data packet and a second data packet on a non-volatile solid-state storage device in a log-based sequential format, wherein the first data packet and the second data packet are stored on different logical erase blocks, wherein each logical erase block comprises two or more physical erase blocks; storing persistent metadata within each data packet of the atomic storage request that indicates that the data of the atomic storage request pertains to the atomic storage request; and acknowledging completion of the atomic storage request upon completion of storing the data of the atomic storage request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus for servicing an atomic storage request, the apparatus comprising:
-
a non-volatile solid-state storage device comprising one or more solid-state storage elements, each solid-state storage element partitioned into a plurality of physical erase blocks; and a storage layer configured to; store data of an atomic storage request comprising a first data packet and a second data packet in a log-based sequential format, wherein the first data packet and the second data packet are stored on separate logical erase blocks, wherein each logical erase block comprises two or more physical erase blocks; include persistent metadata within each of the first and second data packets, the persistent metadata configured to indicate that the data is associated with the atomic storage request; and report completion of the atomic storage request when the first and second data packets are stored. - View Dependent Claims (8, 9, 10)
-
-
11. A method for restart recovery for a non-volatile storage device configured to accept atomic and non-atomic storage requests, the method comprising:
-
accessing a non-volatile storage device at an append point, the non-volatile storage device configured to store a plurality of data packets to solid-state storage media by sequentially appending the data packets at the append point to a log-based structure of the solid-state storage media, the data packets associated with different logical identifiers belonging to a logical address space that is independent of physical storage locations on the solid-state storage media; identifying a failed atomic storage request in response to a data packet preceding the append point comprising a persistent indicator that satisfies a failed atomic write criteria; identifying one or more data packets associated with the failed atomic storage request; and excluding from an index each data packet associated with the failed atomic storage request, the index mapping the logical identifiers to physical locations of the plurality of data packets on the solid-state storage media. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for restart recovery for a non-volatile storage device configured to accept atomic and non-atomic storage requests, the apparatus comprising:
-
a non-volatile storage device configured to store a plurality of data packets to solid-state storage media by sequentially appending the data packets at an append point to a log-based structure of the solid-state storage media, the data packets associated with different logical identifiers belonging to a logical address space that is independent of physical storage locations on the solid-state storage media; and a storage layer configured to; access the non-volatile storage device at the append point; identify a failed atomic storage request in response to a data packet preceding the append point comprising a persistent indicator that satisfies a failed atomic write criteria; identify one or more data packets associated with the failed atomic storage request; and exclude from an index each data packet associated with the failed atomic storage request, the index mapping the logical identifiers to physical locations of the plurality of data packets on the solid-state storage media. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. An atomic storage request method to store data on a non-volatile solid-state storage device comprising a solid-state storage element partitioned into a plurality of physical erase blocks, the method comprising:
-
storing data of an atomic storage request on a non-volatile solid-state storage device in a log-based sequential format including storing a first data packet and a second data packet on different logical erase blocks in the storage device, wherein each logical erase block comprises two or more physical erase blocks; storing metadata on the different logical erase blocks, the metadata indicating that the data relates to the atomic storage request; and reporting that the atomic storage request is complete when the data is stored. - View Dependent Claims (28)
-
-
29. An apparatus, comprising:
-
a non-volatile solid-state storage device comprising a solid-state storage element partitioned into a plurality of physical erase blocks, the non-volatile solid-state storage device configured to service an atomic storage request; and a storage layer configured to; package data of the atomic storage request into a first data packet and a second data packet; generate persistent metadata for each data packet, the persistent metadata configured to indicate that the data is associated with the atomic storage request; store the first data packet and the second data packet on separate logical erase blocks, wherein each logical erase block comprises two or more physical erase blocks; and store persistent metadata for each data packet on media of the non-volatile solid-state storage device. - View Dependent Claims (30)
-
Specification