IP Library Granted Patent US 11,269,520
Granted Patent B2
US 11,269,520 · App. 16/776,497 · Granted Mar 8, 2022

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)
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 11,269,520
App. No.
16/776,497
Granted
Mar 8, 2022
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 (69)

1. A system, comprising:

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

a memory storing the instructions of the application;

a processing module to generate a key-value (KV) command based on the command and associate the KV command with a 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 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 processing module includes a KV-NVMe translator to generate an NVMe command using the KV command, a Logical Block Address (LBA) and an offset for the object; and

the 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 system further includes:

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

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

the system further comprises the second system including:

the at least one storage device;

a second receiver to receive the fabric command;

a second processing module to recover the KV command from the fabric command; and

a second transmitter to transmit the data for the object to the 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 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 generate an NVMe command using the KV command, an LBA and an offset for the object; and

the second 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;

an association module associate the NVMe command and to insert in a fabric command; and

a recovery module recovers the NVMe command from the fabric command.

9. A method, comprising:

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

generating a key-value (KV) command based on the command;

associating the KV command with a fabric command; and

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

10. A method according to claim 9 , wherein generating 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 fabric command to a storage device storing the object includes sending the fabric command to a KV-SSD in a system remote from the processor, the KV-SSD storing the data for the object.

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

recovering the KV command from the fabric command on the system remote from the processor; and

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

13. A method according to claim 9 , wherein sending the fabric command to a storage device storing the object includes sending the fabric command to an NVMe-SSD in a 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:

recovering the KV command from the fabric command on the system remote from the processor;

constructing an NVMe command from the KV command; and

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

15. A method according to claim 13 , wherein associating the KV command with a fabric command 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

associating the NVMe command with the fabric command.

16. A method according to claim 13 , wherein associating the KV command with a fabric command includes:

associating the KV command with a second fabric command;

sending the second fabric command to a KV-SSD in a second 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 system remote from the processor;

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

associating the NVMe command with the fabric command.

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 a command from an application running on a processor, the command relating to an object;

generating a key-value (KV) command based on the command;

associating the KV command with a fabric command; and

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

18. An article according to claim 17 , wherein sending the fabric command to a storage device storing the object includes sending the fabric command to a KV-SSD in a system remote from the processor, the KV-SSD storing the data for the object.

19. An article according to claim 17 , wherein sending the fabric command to a storage device storing the object includes sending the fabric command to an NVMe-SSD in a system remote from the processor, the NVMe-SSD storing the data for the object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2023
From: SUBRAMANIAN, ANAND; PINTO, OSCAR PREM
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 063867/0928 →
Continuity (3)
Continuation 15881706 · Jan 26, 2018
Provisional Application 62586809 · Nov 15, 2017
Related Publication 20200167082A1 · May 28, 2020