IP Library Granted Patent US 10,572,161
Granted Patent B2
US 10,572,161 · App. 15/881,706 · Granted Feb 25, 2020

Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices

Inventors: Anand Subramanian (San Jose, CA); Oscar Prem Pinto (San Jose, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0611G06F3/0659G06F3/0661G06F3/0679G06F15/17331G06F2212/2022
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,572,161
App. No.
15/881,706
Granted
Feb 25, 2020
Kind
B2
Abstract

A system is disclosed. The system may include a computer system, which may include a processor that may execute instructions of an application that accesses an object using an object command, and a memory storing the instructions of the application. The computer system may also include a conversion module to convert the object command to a key-value (KV) command. Finally, the system may include a storage device storing data for the object and processing the object using the KV command.

Claims (78)

1. A system, comprising:

a computer system including:

a processor executing instructions of an application, the application accessing an object using an object command;

a memory storing the instructions of the application;

a conversion module to convert the object command to a key-value (KV) command; and

an encapsulation module to encapsulate the KV command in a command extension and to insert the command extension as a payload in a Remote Direct Memory Access (RDMA) fabric command; and

at least one storage device storing data for the object and processing the object using the KV command.

2. A system according to claim 1 , wherein:

the at least one storage device storing data for the object includes a KV-Solid State Drive (SSD); and

the computer system is operative to transmit the KV command to the KV-SSD.

3. A system according to claim 1 , wherein:

the at least one storage device storing data for the object includes a Non-Volatile Memory Express (NVMe)-SSD;

the conversion module includes a KV-NVMe translator to convert the KV command to an NVMe command using a Logical Block Address (LBA) and an offset for the object; and

the computer system is operative to transmit the NVMe command to the NVMe-SSD.

4. A system according to claim 3 , wherein:

the at least one storage device storing the object further includes a KV-SSD storing metadata for the object; and

the KV-NVMe translator is operative to access the LBA and the offset for the object from the metadata for the object from the KV-SSD.

5. A system according to claim 1 , wherein:

the computer system further includes:

a first transmitter to transmit the RDMA fabric command to a second computer system; and

a first receiver to receive the data for the object from the second computer system; and

the system further comprises the second computer system including:

the at least one storage device;

a second receiver to receive the RDMA fabric command;

a decapsulation module to recover the KV command from the command extension in the payload of the RDMA fabric command; and

a second transmitter to transmit the data for the object to the computer system.

6. A system according to claim 5 , wherein:

the at least one storage device storing data for the object includes a KV-SSD; and

the second computer system is operative to transmit the KV command to the KV-SSD.

7. A system according to claim 5 , wherein:

the at least one storage device storing data for the object includes an NVMe-SSD;

the system further includes a KV-NVMe translator to convert the KV command to an NVMe command using an LBA and an offset for the object; and

the second computer system is operative to transmit the NVMe command to the NVMe-SSD.

8. A system according to claim 7 , wherein:

the system further comprises a KV-SSD storing metadata for the object, the metadata for the object including the LBA and the offset for the object;

the KV-NVMe translator is operative to access the LBA and the offset for the object from the metadata for the object from the KV-SSD;

the encapsulation module is operative to encapsulate the NVMe command in a command extension and to insert the command extension as a payload in an RDMA fabric command; and

the decapsulation module is operative to recover the NVMe command from the command extension in the payload of the RDMA fabric command.

9. A method, comprising:

receiving an object command from an application running on a processor, the object command relating to an object;

converting the object command to a key-value (KV) command;

encapsulating the KV command in a command extension;

encapsulating the command extension as a payload in a Remote Direct Memory Access (RDMA) fabric command; and

sending the RDMA fabric command to a storage device storing data for the object.

10. A method according to claim 9 , wherein converting the object command to a KV command includes hashing an object identifier (ID) for the object to generate a key.

11. A method according to claim 9 , wherein sending the KV command to a storage device storing the object includes

sending the RDMA fabric command to a KV-SSD in a computer system remote from the processor, the KV-SSD storing the data for the object.

12. A method according to claim 11 , wherein sending the KV command to a storage device storing the object further includes:

decapsulating the KV command from the command extension in the payload of the RDMA fabric command on the computer system remote from the processor; and

executing the KV command on the KV-SSD in the computer system remote from the processor.

13. A method according to claim 9 , wherein sending the KV command to a storage device storing the object includes

sending the RDMA fabric command to an NVMe-SSD in a computer system remote from the processor, the NVMe-SSD storing the data for the object.

14. A method according to claim 13 , wherein sending the KV command to a storage device storing the object further includes:

decapsulating the KV command from the command extension in the payload of the RDMA fabric command on the computer system remote from the processor;

constructing an NVMe command from the KV command; and

executing the NVMe command on the NVMe-SSD in the computer system remote from the processor.

15. A method according to claim 13 , wherein encapsulating the KV command in a command extension includes:

sending the KV command to a KV-SSD local to the processor, the KV-SSD storing metadata for the object, the metadata for the object including an LBA and an offset for the object;

receiving the LBA and the offset from the KV-SSD; and

constructing an NVMe command using the LBA and the offset for the object; and

encapsulating the NVMe command using the LBA and the offset for the object in the command extension.

16. A method according to claim 13 , wherein encapsulating the KV command in a command extension includes:

encapsulating the KV command in a second command extension;

encapsulating the second command extension as a second payload in a second RDMA fabric command;

sending the second RDMA fabric command to a KV-SSD in a second computer system remote from the processor, the KV-SSD storing metadata for the object, the metadata for the object including an LBA and an offset for the object;

receiving the LBA and the offset from the KV-SSD in the second computer system remote from the processor;

constructing an NVMe command using the LBA and the offset for the object; and

encapsulating the NVMe command using the LBA and the offset for the object in the command extension.

17. An article, comprising a non-transitory storage medium, the non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in:

receiving an object command from an application running on a processor, the object command relating to an object;

converting the object command to a key-value (KV) command;

encapsulating the KV command in a command extension;

encapsulating the command extension as a payload in a Remote Direct Memory Access (RDMA) fabric command; and

sending the RDMA fabric command to a storage device storing data for the object.

18. An article according to claim 17 , wherein sending the KV command to a storage device storing the object includes

sending the RDMA fabric command to a KV-SSD in a computer system remote from the processor, the KV-SSD storing the data for the object.

19. An article according to claim 17 , wherein sending the KV command to a storage device storing the object includes

sending the RDMA fabric command to an NVMe-SSD in a computer system remote from the processor, the NVMe-SSD storing the data for the object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: SUBRAMANIAN, ANAND; PINTO, OSCAR PREM
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 045453/0234 →
Continuity (2)
Provisional Application 62586809 · Nov 15, 2017
Related Publication 20190146682A1 · May 16, 2019
Cited By (18)
US 12,210,415 US 12,222,809 US 12,222,810 US 12,242,349 US 12,259,784 US 12,259,785 US 12,259,786 US 12,271,266 US 12,298,853 US 12,306,717 US 12,321,236 US 12,386,542 US 12,399,782 US 12,413,243 US 12,430,056 US 12,474,852 US 12,498,869 US 12,687,967