IP Library Granted Patent US 12,019,548
Granted Patent B2
US 12,019,548 · App. 17/839,439 · Granted Jun 25, 2024

Systems and methods for a cross-layer key-value store architecture with a computational storage device

Inventors: Naga Sanjana Bikonda (Blacksburg, VA); Wookhee Kim (Blacksburg, VA); Madhava Krishnan Ramanathan (Blacksburg, VA); Changwoo Min (Blacksburg, VA); Vishwanath Maram (San Jose, CA)
Assignees: Samsung Electronics Co., Ltd.; Virginia Tech Intellectual Properties, INC
G06F12/0815G06F9/3834G06F11/2056G06F12/0868G06F2212/466
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 12,019,548
App. No.
17/839,439
Granted
Jun 25, 2024
Kind
B2
Abstract

Provided is a data storage system including a host including a host cache portion of a mirror cache, the host cache portion for storing metadata indicating a location of a data node that is stored in a kernel cache portion of the mirror cache, and a storage device including the kernel cache portion located in a common memory area.

Claims (65)

1. A data storage system comprising:

a host comprising a host cache portion of a mirror cache, the host cache portion for storing metadata indicating a location of a data node that is stored in a kernel cache portion of the mirror cache; and

a storage device comprising the kernel cache portion located in a common memory area, wherein:

a first host-cache entry of the host cache portion includes metadata associated with a first kernel-cache entry of the kernel cache portion;

a second host-cache entry of the host cache portion includes metadata associated with a second kernel-cache entry of the kernel cache portion; and

an order of the first host-cache entry and the second host-cache entry in the host cache portion is the same as an order of the first kernel-cache entry and the second kernel-cache entry in the kernel cache portion.

2. The data storage system of claim 1 , further comprising:

a search layer on the host; and

a data layer on the storage device.

3. The data storage system of claim 2 , wherein the search layer comprises a tree structure, and

wherein the data layer comprises the data node corresponding to a leaf node within a doubly-linked list of leaf nodes corresponding to the tree structure.

4. The data storage system of claim 1 , wherein the storage device further comprises:

a persistent memory coupled to the common memory area; and

a processing circuit coupled to the common memory area.

5. The data storage system of claim 4 , wherein the processing circuit is configured to perform a data operation on the data node, and is configured to write the data node to the kernel cache portion as an updated data node.

6. The data storage system of claim 5 , wherein the host is configured to:

determine the updated data node is populated onto the common memory area; and

cause a peer-to-peer write from the common memory area to the persistent memory.

7. The data storage system of claim 1 , wherein the host is configured to:

determine that an amount of available space in the data node is less than an amount of space for accommodating a data access request corresponding to the data node; and

assign an extension node to the data node.

8. The data storage system of claim 7 , wherein the storage device further comprises a processing circuit configured to update metadata of the data node to point to the extension node,

wherein the metadata of the data node indicates a first version number, and

wherein metadata of the extension node indicates the first version number.

9. The data storage system of claim 8 , wherein the processing circuit is configured to:

update the extension node;

update the metadata of the data node to indicate a second version number to identify the data node as an updated data node;

update the metadata of the extension node to indicate the second version number to identify the extension node as an updated extension node; and

update the metadata of the updated data node to point to the updated extension node.

10. The data storage system of claim 9 , wherein the processing circuit is configured to:

write the updated extension node to a storage of the storage device in an out-of-place manner; and

write the updated data node to the storage in an in-place manner.

11. The data storage system of claim 1 , wherein the host is configured to manage concurrent access to the storage device by:

receiving a read request and acquiring a read lock on the data node; or

receiving a write request and acquiring a write lock on the data node.

12. A method of data storage, the method comprising:

locating, in a host cache portion of a mirror cache, metadata indicating a location of a data node stored in a storage device, the host cache portion being stored on a host; and

determining that the data node is present in a kernel cache portion of the mirror cache, the kernel cache portion being stored on a common memory area of the storage device, wherein:

a first host-cache entry of the host cache portion includes metadata associated with a first kernel-cache entry of the kernel cache portion;

a second host-cache entry of the host cache portion includes metadata associated with a second kernel-cache entry of the kernel cache portion; and

an order of the first host-cache entry and the second host-cache entry in the host cache portion is the same as an order of the first kernel-cache entry and the second kernel-cache entry in the kernel cache portion.

13. The method of claim 12 , further comprising locating, by the host, a partial key in a search layer to find the metadata indicating the location of the data node.

14. The method of claim 12 , further comprising:

determining that the data node has an amount of available space that is less than an amount of space for accommodating a data access request; and

assigning an extension node to the data node.

15. The method of claim 14 , wherein the storage device comprises:

a persistent memory coupled to the common memory area; and

a processing circuit coupled to the common memory area.

16. The method of claim 15 , further comprising updating, by the processing circuit, metadata of the data node to point to the extension node,

wherein the metadata of the data node and metadata of the extension node indicate a first version number.

17. The method of claim 16 , further comprising:

updating the extension node;

updating the metadata of the data node to indicate a second version number;

updating the metadata of the extension node to indicate the second version number, the second version number identifying the data node as an updated data node and identifying the extension node as an updated extension node; and

updating the metadata of the updated data node to point to the updated extension node.

18. The method of claim 17 , further comprising:

writing the updated extension node to a storage of the storage device in an out-of-place manner; and

writing the updated data node to the storage in an in-place manner.

19. A non-transitory computer readable medium implemented on a key-value store, the non-transitory computer readable medium having computer code that, when executed on a processor, implements a method of data storage, the method comprising:

locating, in a host cache portion of a mirror cache, a host cache metadata indicating a location of a data node stored in a storage device; and

determining that the data node is present in a kernel cache portion of the mirror cache in accordance with the host cache metadata, the kernel cache portion being stored on a common memory area of the storage device, wherein:

a first host-cache entry of the host cache portion includes metadata associated with a first kernel-cache entry of the kernel cache portion;

a second host-cache entry of the host cache portion includes metadata associated with a second kernel-cache entry of the kernel cache portion; and

an order of the first host-cache entry and the second host-cache entry in the host cache portion is the same as an order of the first kernel-cache entry and the second kernel-cache entry in the kernel cache portion.

20. The non-transitory computer readable medium of claim 19 , wherein the method further comprises locating a partial key in a search layer to find the host cache metadata.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2023
From: VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY
To: VIRGINIA TECH INTELLECTUAL PROPERTIES, INC.
Reel/Frame 063617/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: BIKONDA, NAGA SANJANA; KIM, WOOKHEE; RAMANATHAN, MADHAVA KRISHNAN; MIN, CHANGWOO
To: VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY
Reel/Frame 060640/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: MARAM, VISHWANATH
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 060640/0190 →
Continuity (2)
Provisional Application 63332161 · Apr 18, 2022
Related Publication 20230333983A1 · Oct 19, 2023