Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
First Claim
1. An apparatus comprising:
- a controller configured to;
receive, at a first time, a first storage request to store data on a non-volatile storage medium;
receive, at a second time after the first time, a second storage request to store data on the non-volatile storage medium; and
update an index based on the second storage request before updating the index based on the first storage request, wherein the index is updated with information corresponding to the second storage request, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map.
2 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.
-
Citations
18 Claims
-
1. An apparatus comprising:
a controller configured to; receive, at a first time, a first storage request to store data on a non-volatile storage medium; receive, at a second time after the first time, a second storage request to store data on the non-volatile storage medium; and update an index based on the second storage request before updating the index based on the first storage request, wherein the index is updated with information corresponding to the second storage request, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. An apparatus comprising:
-
means for receiving, at a first time, a first storage command to store data on a non-volatile storage media; means for receiving, at a second time after the first time, a second storage command to store data on the non-volatile storage media; means for ordering the first and second storage commands to perform the second storage command before the first storage command; and means for updating an index based on the second storage command before updating the index based on the first storage command, wherein the index is updated with information corresponding to the second storage command, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method comprising:
-
receiving, at a first time, a first storage request to store data on a non-volatile storage media; receiving, at a second time after the first time, a second storage request to store data on the non-volatile storage media; servicing the second storage request before servicing the first storage request; and updating an index based on the second storage request before updating the index based on the first storage request, wherein the index is updated with information corresponding to the second storage request, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification