Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
First Claim
1. A method for coordinating storage requests, comprising:
- generating a first append storage command in response to a first request to store first data on a storage device;
generating a second append storage command in response to a second request to store second data on the storage device, the second data overlapping at least a portion of the first data, the second request received after the first request; and
updating an index for the first append storage command and updating the index for the second append storage command, wherein the update for the first append storage command retains a reference to the second data in the index when the index is updated for the first append storage command after the index is updated for the second append storage command.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.
85 Citations
24 Claims
-
1. A method for coordinating storage requests, comprising:
-
generating a first append storage command in response to a first request to store first data on a storage device; generating a second append storage command in response to a second request to store second data on the storage device, the second data overlapping at least a portion of the first data, the second request received after the first request; and updating an index for the first append storage command and updating the index for the second append storage command, wherein the update for the first append storage command retains a reference to the second data in the index when the index is updated for the first append storage command after the index is updated for the second append storage command. - 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 coordinating storage requests, comprising:
-
generating a first append storage command in response to a first request to store first data on a storage device; generating a second append storage command in response to a second request to store second data on the storage device, the second data pertaining to a logical identifier range that overlaps at least a portion of a logical identifier range of the first data, wherein the second request is more recent than the first request; updating an index associating logical identifiers with storage locations on the storage device for the first append storage command and updating the index for the second append storage command, the updating to retain an association between a storage location of the second data and the overlapping logical identifier range when the index is updated for the second append storage command before being updated for the first append storage command, wherein updating the index comprises invalidating a portion of the first data associated with the overlapping logical address range. - View Dependent Claims (21, 22, 23)
-
-
24. A computer program product comprising a computer readable storage medium comprising code executable to perform operations for coordinating storage requests, the operations comprising:
-
generating a first append storage command in response to a first request to store first data on a storage device; generating a second append storage command in response to a second request to store second data on the storage device, the second data pertaining to a logical identifier range that overlaps at least a portion of a logical identifier range of the first data, wherein the second request is more recent than the first request; updating an index associating logical identifiers with storage locations on the storage device for the first append storage command and updating the index for the second append storage command, the updating to retain an association between a storage location of the second data on the storage device and the overlapping logical identifier range when the index is updated for the second append storage command before the index is updated for the first append storage command; and preventing access to a region of the index pertaining to the second append storage command while the index is updated for the second append storage command.
-
Specification