IP Library Granted Patent US 11,630,592
Granted Patent B2
US 11,630,592 · App. 17/181,902 · Granted Apr 18, 2023

Data storage device database management architecture

Inventors: Israel Zimmerman (Ashdod, IL); Eyal Hakoun (Gesher Haziv, IL); Judah Gamliel Hahn (Ofra, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/064G06F3/0604G06F3/0679G06F12/0292
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,630,592
App. No.
17/181,902
Granted
Apr 18, 2023
Kind
B2
Abstract

A method and apparatus for a database management architecture on an SSD. A list of tables is stored in the SSD, and records of a table are stored across multiple FIMs of the SSD such that a group of records may be read in parallel by concurrently reading from multiple FIMs. The records of the table are stored on jumboblocks, organized in an unordered fashion as a linked list. New records are added to the end of the linked list. Records having gaps resulting from data modification or bad portions of an NVM die are re-organized via garbage collection when the gap memory size reaches about 20% of table memory size.

Claims (55)

1. A data storage device, comprising:

a front-end (FE);

a front-end module (FM) comprising a plurality of flash interface modules (FIMs), a table list and a jumboblock list, the FM coupled to the FE; and

a controller comprising a processor configured to perform a method for database record management, the method comprising:

writing a first record of a table to a first location on a first FIM of the plurality of FIMs;

writing a second record of the table to a second location of a second FIM of the plurality of FIMs, wherein the second record comprises one or more gaps resulting from data modifications and wherein records of the table are stored across multiple FIMs such that a group of records can be read in parallel;

updating a first entry of the jumboblock list with the first location and a second entry of the jumboblock list with the second location; and

updating the table list with a reference to the first location of the jumboblock list.

2. The data storage device of claim 1 , wherein the first entry comprises a reference to the second entry.

3. The data storage device of claim 2 , wherein the FM further comprises a last memory buffer, the method further comprising:

receiving a third record of the table to the last memory buffer;

writing the third record to a third location on a third FIM of the plurality of FIMs;

updating a third entry of the jumboblock list with the third location; and

updating the second entry to be coupled to the third entry.

4. The data storage device of claim 3 , wherein the FM further comprises an available jumboblock list comprising at least one available location of a FIM of the plurality of FIMs, the method further comprising receiving the third location on the third FIM from the available jumboblock list.

5. The data storage device of claim 1 , wherein the first location and second location comprise sequential block addresses of the first FIM and second FIM.

6. The data storage device of claim 5 , wherein the method further comprises reading the first record and second record in parallel.

7. The data storage device of claim 6 , wherein the FM further comprises an available blocks list comprising a list of an available block of each of the plurality of FIMs.

8. The data storage device of claim 7 , wherein the method further comprises providing a third location of a third FIM for receiving a third record of the table, wherein the third location comprises a sequential block reference on the third FIM relative to the second location of the second FIM.

9. A controller for a data storage device, comprising:

an I/O to one or more memory devices; and

a processor configured to execute a method for database record management, the method comprising:

storing a first reference of a first memory location of a first flash interface module (FIM);

storing a second reference of a second memory location of a second FIM, wherein the first reference is coupled to the second reference and wherein the first and second references being coupled allow for parallel reads of memory locations of the first and second FIMs;

receiving an indication that data at one of the first memory location or second memory location has been modified, creating a gap in data; and

storing a first gap reference to the gap in data.

10. The controller of claim 9 , wherein the first reference is updated to include the first gap reference.

11. The controller of claim 10 , wherein the method further comprises receiving a request for the first and second reference.

12. The controller of claim 11 , wherein the method further comprises providing data from the first memory location, that is not referenced by the first gap reference.

13. The controller of claim 9 , further comprising a plurality of references to a plurality of memory locations of a plurality of FIMs.

14. The controller of claim 13 , wherein the first reference, second reference, and plurality of references are coupled as a linked list.

15. The controller of claim 14 , wherein at least one additional gap reference is coupled to one of the plurality of references.

16. The controller of claim 15 , wherein the method further comprises performing a garbage collection on the first gap references and the at least one additional gap reference.

17. A controller for a data storage device, comprising:

an I/O to one or more memory devices;

a processor configured to execute a method for database record management, the method comprising:

storing a first reference to a first memory location of a first flash interface module (FIM);

storing a second reference to a second memory location of a second FIM, wherein the first reference is coupled to the second reference;

receiving an indication that data at one of the first memory location and second memory location has been modified, creating a gap in data;

storing a first gap reference to the gap in data; and

performing a garbage collection on the first gap references and at least one additional gap reference, wherein the garbage collection is performed when the first gap reference and at least one additional gap reference references at least 20% of memory referenced by the first reference, second reference, and plurality of references; and

a plurality of references to a plurality of memory locations of a plurality of FIMs, wherein the first reference, second reference, and plurality of references are coupled as a linked list, and wherein the at least one additional gap reference is coupled to one of the plurality of references.

18. A system for storing data, comprising:

a front-end (FE) means;

a front-end module (FM) means comprising a table list and an available blocks list, and a data block list, the available blocks list comprising a plurality of references to a plurality of locations on one or more flash interface modules (FIMs), wherein the available blocks list allows for parallel reads of a plurality of locations on one or more FIMs; and

a controller means configured to perform a method for database record management, the method comprising:

receiving a table comprising records;

updating the table list to reference the table;

receiving a plurality of records from the table;

updating a first FIM with data from a first record of the plurality of records;

updating a second FIM with data from a second record of the plurality of records, wherein the second record contains gaps resulting from data modification; and

updating the data block list to include references to memory locations on the first and second FIMs comprising the data from the first and second records.

19. The system of claim 18 , further comprising:

updating additional FIMs with data from additional records from the plurality of records such that reading data from the first and second FIMs and additional FIMs will cause the data from the first and second records and data from additional records to be read in parallel.

20. The system of claim 18 , wherein the method further comprises providing a reference to a last buffer comprising a reference memory location in a random access memory (RAM).

Assignments (10)
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2021
From: ZIMMERMAN, ISRAEL; HAKOUN, EYAL; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055365/0262 →