KEY VALUE SSD
First Claim
Patent Images
1. A storage device comprising:
- a plurality of memory devices, each of the memory devices being configured as a virtual device and having a minimum size value allowable, which is the minimum object size that the memory device is configured to store; and
a virtual device layer configured to manage the virtual device to store an object by applying one of a first data protection and a second data protection to the object, based, at least in part, on the size of the object,wherein the virtual device layer is configured to;
apply the first data protection to the object based on a space overhead of the first data protection for the object being less than a space overhead of the second data protection for the object;
apply the second data protection to the object based on the space overhead of the first data protection for the object being greater than the space overhead of the second data protection for the object.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage device includes: a plurality of memory devices configured as a virtual device utilizing stateless data protection; and a virtual device layer configured to manage the virtual device to store objects by applying a first data protection to some of the objects and a second data protection to other ones of the objects depending on respective sizes of the objects.
1 Citation
22 Claims
-
1. A storage device comprising:
-
a plurality of memory devices, each of the memory devices being configured as a virtual device and having a minimum size value allowable, which is the minimum object size that the memory device is configured to store; and a virtual device layer configured to manage the virtual device to store an object by applying one of a first data protection and a second data protection to the object, based, at least in part, on the size of the object, wherein the virtual device layer is configured to; apply the first data protection to the object based on a space overhead of the first data protection for the object being less than a space overhead of the second data protection for the object; apply the second data protection to the object based on the space overhead of the first data protection for the object being greater than the space overhead of the second data protection for the object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of utilizing a virtual device layer to store objects in a virtual device comprising a plurality of memory devices, each of the memory devices having a minimum size value allowable, which is the minimum object size that the memory device is configured to store, the method comprising:
-
receiving by the virtual device layer an object to be stored; determining by the virtual device layer a space overhead for either erasure coding or replicating the object for storage based on O, P, S and m, wherein O refers to the object size, P refers to a number of parity devices, S refers to a number of data devices, and m refers to a maximum value of the minimum size value allowable from among the respective minimum size value allowable of the plurality of memory devices; when the space overhead of the erasure coding for the object is less than the space overhead of the replication for the object; determining a chunk size for the erasure coding and an amount of padding of a data chunk of the object; partitioning the object into a plurality of data chunks each having the chunk size for the erasure coding; calculating P parity chunks using the erasure coding; determining the memory devices to store the data and parity chunks; and writing the data and parity chunks to the memory devices, and when the space overhead of the erasure coding for the object is greater than the space overhead of the replication for the object; determining the memory devices for data and replicas; and writing the data and the replicas to the memory devices. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method of reading an object, wherein the object has a space overhead for a first data protection and a space overhead for a second data protection based on O, P, S, and m, with a key by a virtual device layer from a virtual device comprising a plurality of memory devices, each of the memory devices having a minimum size value allowable, which is the minimum object size that the memory device is configured to store, wherein 0 refers to the object size, P refers to a number of parity devices, S refers to a number of data devices, and m refers to a maximum value of the minimum size value allowable from among the respective minimum size value allowable of the plurality of memory devices, the method comprising:
-
receiving by the virtual device layer a key corresponding to a data read request; sending by the virtual device layer to all of the memory devices a request to read; and receiving by the virtual device layer responses from the memory devices, wherein when a space overhead of the first data protection for the object is less than or equal to a space overhead of the second data protection for the object, a data chunk and a parity chunk are received by the virtual device layer to rebuild the object utilizing the first data protection, and when the space overhead of the first data protection for the object is greater than the space overhead of the second data protection for the object, the received response is the object or is a replica of the object. - View Dependent Claims (19, 20)
-
-
21. A storage device comprising:
-
a plurality of memory devices, each of the memory devices being configured as a virtual device and having a minimum size value allowable, which is the minimum object size that the memory device is configured to store; and a virtual device layer configured to manage the virtual device to store a first object and a second object, wherein the first object is larger than the second object, by applying one of a first data protection and a second data protection to each of the first object and the second object, wherein the virtual device layer is configured to; apply the first data protection to the first object; and apply the second data protection to the second object. - View Dependent Claims (22)
-
Specification