US2011258512A1PendingUtilityA1
Apparatus, System, and Method for Storing Data on a Solid-State Storage Device
Est. expiryDec 6, 2026(~0.4 yrs left)· nominal 20-yr term from priority
G06F 9/52G06F 2212/2022H04L 67/1097H04L 67/02G06F 13/4022G06F 3/0656G06F 3/0679G06F 12/123G06F 2212/7205H05K 7/1487G06F 13/426G06F 12/0868G06F 2212/222G06F 11/108G06F 3/0613G06F 12/0804G06F 3/0685G06F 13/28G06F 3/0619G06F 3/0659G06F 3/0608G06F 12/121H05K 7/1444G06F 3/0688G06F 9/54G06F 2212/70G06F 3/0604G06F 12/0246G06F 1/183G06F 12/12G06F 2211/103G06F 3/0643G06F 3/065G06F 2212/1044G06F 3/0652G06F 2211/002Y02D10/00G06F 2212/7208G06F 2212/7203G06F 2212/1032
61
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
An apparatus, system, and method are disclosed for storing data on a solid-state storage device. A method includes receiving a storage request to store data on the solid-state storage device, representing the data in an object entry in an object index maintained by a solid-state storage device controller, storing the data as one or more object data segments on the solid-state storage device, and referencing in the object entry the one or more object data segments on the solid-state storage device.
Claims
exact text as granted — not AI-modified1 . A method for storing data on a solid-state storage device, the method comprising:
receiving a storage request to store data on the solid-state storage device; representing the data in an object entry in an object index maintained by a solid-state storage device controller; storing the data as one or more object data segments on the solid-state storage device; and referencing in the object entry the one or more object data segments on the solid-state storage device.
2 . The method of claim 1 , further comprising dividing the data into two or more object data segments.
3 . The method of claim 1 , wherein the data comprises one or more fixed-size data blocks, and wherein storing the data as object data segments comprises reformatting one or more of the fixed-size data blocks.
4 . The method of claim 3 , further comprising:
reading the data from the solid-state storage device by,
reading the one or more object data segments from the solid-state storage device, and
reformatting data extracted from the one or more object data segments read from the solid-state storage device into the one or more fixed-size data blocks.
5 . The method of claim 1 , further comprising creating an object identifier for the object entry.
6 . The method of claim 5 , wherein the object identifier is derived from a physical address included in the storage request.
7 . The method of claim 1 , wherein receiving the storage request comprises receiving the storage request through a block device application programming interface of the solid-state storage device.
8 . The method of claim 1 , further comprising:
providing a first block device application program interface (API) configured to receive block device requests; providing a second object storage API configured to receive object requests; and servicing requests received via the first block device API and the second API as object requests.
9 . The method of claim 1 , wherein the data is stored as a plurality of object data segments on the solid-state storage device, the method further comprising:
receiving a request to modify data stored in a first one of the object data segments; storing modified data as a second object data segment on the solid-state storage device while maintaining the plurality of object data segments, other than the first object data segment, on the solid-state storage device wherein the second object data segment is stored on the solid-state storage device in accordance with a sequence for storage operations on the solid-state storage device; and updating the object index to reference the second object data segment.
10 . The method of claim 9 , further comprising invalidating the first object data segment.
11 . The method of claim 1 , further comprising including the data in one or more error-correcting code (ECC) blocks, each ECC block comprising at least a portion of the data and a respective error-correcting code configured to correct an error in the ECC block.
12 . The method of claim 11 , wherein storing the one or more object data segments on the solid-state storage device comprises:
storing a first portion of a first one of the one or more ECC blocks on a page of a first solid-state storage element of the solid-state storage device, and storing a second portion of the first ECC block on a page of a second solid-state storage element of the solid-state storage device.
13 . The method of claim 12 , wherein the first portion and the second portion are stored in response to a single solid-state storage element programming command.
14 . A method for storing data on a solid-state storage device, comprising:
receiving an object storage request referencing object data; and servicing the request by,
writing the object data sequentially on the solid-state storage device as a plurality of object data segments such that the object data on the solid-state storage device preserves an ordered sequence of storage operations completed on the solid-state storage device, and
referencing the plurality of object data segments in one or more object entries of an object index maintained by a controller of the solid-state storage device.
15 . The method of claim 14 , wherein receiving an object storage request further comprises receiving a plurality of object storage requests, each object storage request associated with a different object, and wherein writing the object data sequentially on the solid-state storage device further comprises writing object data segments ordered independent of an order of receipt for the plurality of object storage requests.
16 . The method of claim 14 , wherein the object storage request comprises a request to write new object data to an existing object stored on the solid-state storage device, and wherein servicing the request further comprises,
writing the new object data on the solid-state storage device as a plurality of additional object data segments while maintaining one or more stored object data segments of the existing object on the solid-state storage device, and updating one or more object entries of the existing object to reference the new object data segments.
17 . The method of claim 14 , wherein the object storage request is to modify an existing object stored on the solid-state storage device, and wherein servicing the request further comprises,
writing modified object data as one or more additional object data segments on the solid-state storage device in sequence while maintaining one or more object data segments separate from the modified object data on the solid-state storage device, and updating an object entry of the existing object to reference the one or more additional object data segments in addition to the one or more object data segments.
18 . The method of claim 17 , further comprising invalidating object data segments that store object data replaced by the modified object data.
19 . The method of claim 14 , the method further comprising reading an object from the solid-state storage device by,
accessing an object entry in an object index, the object entry comprising a plurality of references to storage locations on the solid-state storage device comprising object data of the object stored in accordance with a storage operation sequence; and reading object data from the storage locations referenced in the object entry, wherein the storage locations are arranged discontiguously within a plurality of storage locations of the solid-state storage device.
20 . An object modification method comprising:
receiving a request to modify a first data segment of an object stored in a first location of a solid-state storage device, the solid-state storage device storing a second data segment of the object in a second location of the solid-state storage device; modifying the first data segment according to the request; storing the modified first data segment in a third location of the data storage device; and modifying an object entry in an object index in response to the request, the modified object entry indicating where the data segments of the object are stored on the solid-state storage device, the modified object entry comprising a first pointer associated with the first data segment and pointing to the third location and a second pointer associated with the second data segment and pointing to the second location.Join the waitlist — get patent alerts
Track US2011258512A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.