IP Library Granted Patent US 10,795,760
Granted Patent B2
US 10,795,760 · App. 15/876,028 · Granted Oct 6, 2020

Key value SSD

Inventor: Yang Seok Ki (Palo Alto, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F11/1068G06F3/064G06F3/065G06F3/0619G06F3/0664G06F3/0683G06F11/108G11C7/24H03M13/154H03M13/373H03M13/3761G11C29/52H03M13/1515
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,795,760
App. No.
15/876,028
Granted
Oct 6, 2020
Kind
B2
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 erasure coding to some of the objects and replication to other ones of the objects depending on respective sizes of the objects.

Claims (43)

1. A storage device comprising:

a plurality of memory devices, each of the memory devices having a minimum size value allowable, configured as a virtual device utilizing stateless data protection; and

a virtual device layer configured to manage the virtual device to store a first object and a second object, each having a respective size, by applying one of a first data protection and a second data protection to each of the first object and the second object depending on the respective sizes of the first object and the second object,

wherein the virtual device layer is configured to:

apply the first data protection to a large object;

apply the second data protection to a small object; and

apply either the first data protection or the second data protection to a medium object.

2. The storage device of claim 1 , wherein the memory devices are configured as one or more data devices and one or more parity devices.

3. The storage device of claim 2 , wherein the first data protection comprises erasure coding and the second data protection comprises replication.

4. The storage device of claim 3 , wherein the erasure coding is utilized for data protection when a corresponding one of the first and second objects is classified as a large object.

5. The storage device of claim 4 , wherein the corresponding one of the first and second objects is classified as the large object when ((P+1)*O>(S+P)*m AND O>=S*m), wherein O refers to an 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.

6. The storage device of claim 3 , wherein the replication is utilized for data protection when a corresponding one of the first and second objects is classified as a small object.

7. The storage device of claim 6 , wherein the corresponding one of the first and second objects is classified as the small object when ((P+1)*O=<(S+P)*m)), wherein O refers to an 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.

8. The storage device of claim 3 , wherein when a corresponding one of the first and second objects is classified as a medium object when it is neither a large object nor a small object, either the erasure coding or the replication is utilized for data protection based on one or more of space available on the plurality of memory devices, access time for the first object or the second object when stored on the virtual device, and how frequently the first object or the second object is accessed.

9. The storage device of claim 8 , wherein the corresponding one of the objects is classified as a medium object when ((P+1)*O>(S+P)*m)>S*m>O), wherein O refers to an 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.

10. The storage device of claim 2 , wherein the parity devices are a fixed subset of the memory devices.

11. The storage device of claim 2 , wherein the parity devices comprise a changing subset of the memory devices wherein each of the plurality of memory devices is configured to operate as both a data device and as a parity device.

12. The storage device of claim 1 , wherein the memory devices comprise solid state drives.

13. A method of utilizing a virtual device layer to store objects in a virtual device comprising a plurality of memory devices, each having a minimum size value allowable, the method comprising:

receiving by the virtual device layer an object to be stored;

determining by the virtual device layer whether the object is large or small 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 to classify the object as large or small;

when the object is classified as large:

determining a chunk size for 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 object is classified as small:

determining the memory devices for data and replicas; and

writing the data and the replicas to the memory devices.

14. The method of claim 13 , wherein the object is classified as medium when it is neither large nor small, and the replication or the erasure coding is applied based on one or more of space available on the plurality of memory devices, access time for the object when stored on the virtual device, and how frequently the object is accessed.

15. The method of claim 13 , wherein the parity chunks corresponding to a first object and a second object respectively are stored on a fixed subset of the memory devices.

16. The method of claim 13 , wherein the parity chunks corresponding to a first object and a second object are stored on a variable subset of the memory devices.

17. The method of claim 13 , wherein the data and the replicas corresponding to a first object and a second object are stored on different ones of the memory devices.

18. The method of claim 13 , wherein at least one of the data chunks is padded with zeros.

19. A method of reading an object, wherein the object is small, medium, or large 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 having a minimum size value allowable, 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, 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 the object is large or medium, a data chunk and a parity chunk are received by the virtual device layer to rebuild the object utilizing erasure coding, and

when the object is small, the received response is the object or is replica of the object.

20. The method of claim 19 , wherein the key comprises a hash(key) for determining a start device or a primary device from among the plurality of devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD
Reel/Frame 044714/0096 →
Continuity (4)
Provisional Application 62474039 · Mar 20, 2017
Provisional Application 62561625 · Sep 21, 2017
Provisional Application 62562219 · Sep 22, 2017
Related Publication 20180267854A1 · Sep 20, 2018
Cited By (1)
US 12,430,039