APPARATUS, SYSTEM, AND METHOD FOR CONDITIONAL AND ATOMIC STORAGE OPERATIONS
First Claim
1. A method for providing a conditional storage request, comprising:
- presenting a logical address space of the non-volatile storage device to a storage client, the logical address space comprising a plurality of logical identifiers;
receiving a conditional storage request comprising a condition, the request configured to conditionally store data on the non-volatile storage device;
rejecting the conditional storage request in response to determining that the condition of the request is not satisfied; and
servicing the conditional storage request by storing data referenced in the conditional storage request on the non-volatile storage device in response to determining that the condition of the request is satisfied.
9 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for implementing conditional storage operations. Storage clients access and allocate portions of an address space of a non-volatile storage device. A conditional storage request is provided, which causes data to be stored to the non-volatile storage device on the condition that the address space of the device can satisfy the entire request. If only a portion of the request can be satisfied, the conditional storage request may be deferred or fail. An atomic storage request is provided, which may comprise one or more storage operations. The atomic storage request succeeds if all of the one or more storage operations are complete successfully. If one or more of the storage operations fails, the atomic storage request is invalidated, which may comprise deallocating logical identifiers of the request and/or invalidating data on the non-volatile storage device pertaining to the request.
-
Citations
28 Claims
-
1. A method for providing a conditional storage request, comprising:
-
presenting a logical address space of the non-volatile storage device to a storage client, the logical address space comprising a plurality of logical identifiers; receiving a conditional storage request comprising a condition, the request configured to conditionally store data on the non-volatile storage device; rejecting the conditional storage request in response to determining that the condition of the request is not satisfied; and servicing the conditional storage request by storing data referenced in the conditional storage request on the non-volatile storage device in response to determining that the condition of the request is satisfied. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for providing an atomic storage request, comprising:
-
providing for storing data of the atomic storage request in one or more storage operations on a non-volatile storage device; in response to completion of the one or more storage operations, updating storage metadata to assign allocated logical identifiers to storage locations comprising data of the atomic storage request on the non-volatile storage device, and updating the storage metadata to indicate that the atomic storage request is complete; and in response to failure of one or more of the storage operations, rolling back the atomic storage request. - View Dependent Claims (21, 22, 23)
-
-
24. A non-transitory computer-readable storage medium comprising machine-readable instructions configured to cause a machine to perform a method for providing a conditional storage request, the method comprising:
-
presenting a logical address space of the non-volatile storage device to a storage client, the logical address space comprising a plurality of logical identifiers; receiving a conditional storage request comprising a condition, the request configured to conditionally store data on the non-volatile storage device, wherein the condition relates to logical identifiers of the presented logical address space; rejecting the conditional storage request in response to determining that the condition of the request is not satisfied; and servicing the conditional storage request by storing data referenced in the conditional storage request on the non-volatile storage device in response to determining that the condition of the request is satisfied. - View Dependent Claims (25, 26, 27)
-
-
28. A non-transitory computer-readable storage medium comprising machine-readable instructions configured to cause a machine to perform a method for providing an atomic storage request, the method comprising:
-
providing for storing data of the atomic storage request in one or more storage operations a non-volatile storage device; maintaining storage metadata an inflight datastructure to track in-process storage requests, the inflight datastructure comprising indicators a storage location comprising data stored on the non-volatile storage device in one of the one or more storage operations of the atomic storage request; in response to completion of the one or more storage operations, updating an index of the storage metadata to assign logical identifiers allocated to the atomic storage request to storage locations on the non-volatile storage device comprising data of the atomic storage request using the inflight datastructure, and updating the inflight datastructure to indicate that the atomic storage request is complete; and in response to failure of one or more of the storage operations, invalidating data pertaining to the atomic storage request using the inflight datastructure.
-
Specification