IP Library Granted Patent US 10,437,802
Granted Patent B2
US 10,437,802 · App. 15/063,253 · Granted Oct 8, 2019

Single IO operation integer-value database

Inventor: Frederik Jacqueline Luc De Schrijver (Wenduine, BE)
Assignee: Western Digital Technologies, Inc.
G06F16/2228G06F16/2379
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 10,437,802
App. No.
15/063,253
Granted
Oct 8, 2019
Kind
B2
Abstract

The present disclosure relates to a system and methods of implementing an integer-value database using a single I/O operation. In particular, the present disclosure relates to methods of writing and reading information to a database using key/value pairs, including receiving, at a database management system, a value to be written to a database, the database including a plurality of segments stored on a storage medium, and assigning, by the database management system, an assigned key to the value based on keys previously used in the database. The method may further include storing, by the database management system, the assigned key and the value to a segment at a virtual end of the database, wherein the segment is identified in a mapping index by an offset and the mapping index identifies a first key in the segment, and returning the assigned key.

Claims (44)

1. A computer-implemented method comprising:

receiving, at a database management system, a value to be written to a database, the database including a plurality of segments stored on a storage medium;

assigning, by the database management system, an assigned key to the value based on keys previously used in the database;

storing, by the database management system, the assigned key and the value to a segment at a virtual end of the database, wherein:

the virtual end of the database is located at a segment in the plurality of segments in the database that has been most recently modified,

the segment is identified in a mapping index by an offset and the mapping index identifies a first key in the segment, and

the assigning an assigned key to the value based on keys previously used in the database and the storing the assigned key and the value to a segment at a virtual end of the database are performed by the database management system in a single input/output operation on the storage medium; and

returning, by the database management system, the assigned key.

2. The computer-implemented method of claim 1 , wherein storing the assigned key and the value to the segment at the virtual end of the database includes:

determining, by the database management system, that a segment directly preceding a new segment does not have enough remaining storage space to store the assigned key and the value; and

creating, by the database management system, the new segment in the database, wherein the new segment is the segment at the virtual end of the database to which the assigned key and value are stored.

3. The computer-implemented method of claim 2 , further comprising:

filling, by the database management system, a remaining portion of the new segment with logical 0s.

4. The computer-implemented method of claim 2 , further comprising:

updating, by the database management system, the mapping index to include the assigned key as the first key in the segment and the offset identifying the new segment.

5. The computer-implemented method of claim 1 , wherein the assigned key and the keys previously used in the database are stored in increasing order in the storage medium.

6. The computer-implemented method of claim 1 , wherein the storage medium includes a hard disk drive.

7. The computer-implemented method of claim 1 , further comprising:

storing, by the database management system, the segment and the assigned key in memory; and

syncing, by the database management system, the segment in memory to the storage medium based on an event.

8. The computer-implemented method of claim 1 , wherein the offset indicates a relative placement of the segment with respect to the plurality of segments in the database.

9. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

receive a value to be written to a database, the database including a plurality of segments stored on a storage medium;

assign an assigned key to the value based on keys previously used in the database;

store the assigned key and the value to a segment at a virtual end of the database, wherein:

the virtual end of the database is located at a segment in the plurality of segments in the database that has been most recently modified,

the segment is identified in a mapping index by an offset and the mapping index identifies a first key in the segment, and

the assigning an assigned key to the value based on keys previously used in the database and the storing the assigned key and the value to a segment at a virtual end of the database are performed by a database management system in a single input/output operation on the storage medium; and

return the assigned key.

10. The system of claim 9 , wherein to store the assigned key and the value to the segment at the virtual end of the database the instructions cause the system to:

determine that a segment directly preceding a new segment does not have enough remaining storage space to store the assigned key and the value; and

create the new segment in the database, wherein the new segment is the segment at the virtual end of the database to which the assigned key and value are stored.

11. The system of claim 10 , wherein the instructions cause the system to:

fill a remaining portion of the new segment with logical 0s.

12. The system of claim 10 , wherein the instructions cause the system to:

update the mapping index to include the assigned key as the first key in the segment and the offset identifying the new segment.

13. The system of claim 9 , wherein the assigned key and the keys previously used in the database are stored in increasing order in the storage medium.

14. The system of claim 9 , wherein the storage medium includes a hard disk drive.

15. The system of claim 9 , wherein the instructions cause the system to:

store the segment and the assigned key in memory; and

sync the segment in memory to the storage medium based on an event.

16. The system of claim 9 , wherein the offset indicates a relative placement of the segment with respect to the plurality of segments in the database.

Assignments (8)
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 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: DE SCHRIJVER, FREDERIK JACQUELINE LUC
To: AMPLIDATA N.V.
Reel/Frame 040256/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2016
From: DE SCHRIJVER, FREDERIK JACQUELINE LUC
To: HGST NETHERLANDS B.V.
Reel/Frame 039279/0022 →
Continuity (1)
Related Publication 20170255657A1 · Sep 7, 2017