IP Library › Granted Patent US 12,687,981
Granted Patent B2
US 12,687,981 · 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 12,687,981
App. No.
18/480,671
Filed
Oct 4, 2023
Granted
Jul 21, 2026
Kind
B2
Art Unit
2137
USPC
711/154
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.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2023
From: MUTHIAH, RAMANATHAN; RAMAMURTHY, RAMKUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 065120/0759 →
Continuity (1)
Related Publication 20250117152A1 · Apr 10, 2025
References Cited (19)
US 8738861B2 · Bao et al. · 2014 [cited by applicant]
US 9971526B1 · Wei · 2018 [cited by examiner]
US 10769064B1 · Twitto · 2020 [cited by applicant]
US 11327891B2 · Park et al. · 2022 [cited by applicant]
US 20090274364A1 · Shakya · 2009 [cited by examiner]
US 20090292862A1 · Kitahara · 2009 [cited by applicant]
US 20150149870A1 · Kozat · 2015 [cited by examiner]
US 20170116133A1 · Kumar · 2017 [cited by examiner]
US 20170147231A1 · Jung · 2017 [cited by applicant]
US 20180048732A1 · Zhu et al. · 2018 [cited by applicant]
US 20180173419A1 · Dubeyko · 2018 [cited by examiner]
US 20180357234A1 · De · 2018 [cited by applicant]
US 20190057140A1 · Pitchumani · 2019 [cited by examiner]
US 20220011948A1 · Kang et al. · 2022 [cited by applicant]
US 20220269407A1 · Wang · 2022 [cited by examiner]
WO 2022153024A1 · 2022 [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2024/041427 dated Nov. 22, 2024. [cited by applicant]
T. Bisson, K. Chen, C. Choi, V. Balakrishnan and Y. -s. Kee, “Crail-KV: A High-Performance Distributed Key-Value Store Leveraging Native KV-SSDs over NVMe-oF,” 2018 IEEE 37th International Performance Computing and Comm… [cited by applicant]
Bill Martin; Samsung; John Kim, NVIDIA, “The Key to Value: Understanding the NVMe Key-Value Standard” SNIA, Sep. 1, 2020. [cited by applicant]