IP Library Granted Patent US 12687981
Granted Patent B2
US 12687981 · App. 18/480,671 · Granted Jul 21, 2026

Key-group based data management in KV SSD

Inventors: Ramanathan Muthiah (Bangalore, IN); Ramkumar Ramamurthy (San Jose, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0652G06F3/0619G06F3/064G06F3/0679
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 12687981
App. No.
18/480,671
Granted
Jul 21, 2026
Kind
B2
Abstract

Instead of using trees to group key values (KV) based on KV information, use host provided information for grouping KVs. In the cases where the host provides KV information, the host determines how to group the information. The controller will then use the KV information to store the KV information in a group. The KVs can be sorted in the group by either size, length, type, etc. of the KV received from the host. Independent backend logic, such as data routing management, parity management, block management, and proactive data retrieval, is used to group KV information. Grouping the KV information using the independent backend logic will make garbage collection (GC) less difficult and increase retrieval performance due to the grouping of the KVs.

Claims (37)

1 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

receive a write command to write first data to the memory device, wherein the first data has a first group identifier of a plurality of group identifiers;

determine a first key value (KV) group of a plurality of KV groups is associated with the first group identifier, wherein each group identifier of the plurality of group identifiers is associated with a separate and distinct sequence of video/audio frames, and wherein parity of each KV group of the plurality of KV groups is generated, stored, and managed separately;

write the first data to a first location in the memory device, wherein the first location is associated with the first KV group;

receive a write command to write second data to the memory device;

determine that the write command to write second data comprises the first group identifier;

write the second data to the first location in the memory device;

track a sequence of key additions to each KV group;

receive a first read request for data within the first KV group;

pre-retrieve data from the memory device based upon the first read request for data within the first KV group, wherein the pre-retrieval is further based on the sequence of key additions to the first KV group; and

learn from a hit/miss rate of the pre-retrieved data to determine when to proactively pre-retrieve data.

2 . The data storage device of claim 1 , wherein the controller is configured to:

receive a write command to write third data to the memory device, wherein the third data has a second group identifier of the plurality of group identifiers; and

write the third data to a second location separate and distinct from the first location, wherein the second location is associated with a second KV group of the plurality of KV groups.

3 . The data storage device of claim 2 , wherein the first location and the second location are blocks.

4 . The data storage device of claim 1 , wherein the controller is configured to parse the second data to determine the second data is part of the first KV group.

5 . The data storage device of claim 1 , wherein the first location comprises:

a first portion for storing data having a length that is below a first threshold; and

a second portion for storing data having a length that is above the first threshold.

6 . The data storage device of claim 5 , wherein the first portion and the second portion are each blocks that are part of a same metablock.

7 . The data storage device of claim 1 , wherein the controller is configured to:

receive a command to erase all data associated with the first KV group; and

erase the first location.

8 . The data storage device of claim 1 , wherein the controller is further configured to create parity data associated with the first group identifier for the first location.

9 . The data storage device of claim 8 , wherein the controller is configured to receive a command to erase data having the first group identifier, and wherein the controller is configured to, upon receiving the command to erase data having the first group identifier, delete the parity data and data of the first KV group.

10 . The data storage device of claim 1 , wherein the controller is configured to dynamically adjust block sizes within the memory device based upon KV group size.

11 . The data storage device of claim 1 , wherein the controller is configured to pre-retrieve data from the memory device based upon a read request for data within a same KV group.

12 . The data storage device of claim 11 , wherein the pre-retrieval is further based on the sequence of key additions to the same KV group.

13 . The data storage device of claim 1 , wherein the controller is configured to learn from a hit/miss rate of the pre-retrieved data for each KV group to determine when to proactively pre-retrieve data.

14 . The data storage device of claim 1 , wherein the memory device comprises a cache, and wherein the pre-retrieved data read from a NAND-based flash memory device and stored in the cache.

15 . The data storage device of claim 1 , wherein the controller is further configured to:

receive a second read request for data within the first KV group; and

determine not to perform the proactive pre-retrieval of data associated with the second read request based on the learned hit/miss rate.

16 . The data storage device of claim 15 , wherein the controller determines not to preform the proactive pre-retrieval of data when the controller determines that an overhead of storage is not properly utilized.

17 . The data storage device of claim 1 , wherein the memory device comprises NAND-based flash memory devices.