IP Library Granted Patent US 11,080,239
Granted Patent B2
US 11,080,239 · App. 16/367,080 · Granted Aug 3, 2021

Key value store using generation markers

Inventors: Thomas Demoor (Ghent, BE); Carl Rene D'Halluin (Zwijnaarde, BE)
Assignee: Western Digital Technologies, Inc.
G06F16/1734G06F3/0604G06F3/0632G06F12/0253G06F3/067
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,080,239
App. No.
16/367,080
Granted
Aug 3, 2021
Kind
B2
Abstract

Example storage systems and methods provide data storage management using generation markers in a key data store. A key data store includes a set of key data entries that each include a key value and a property value associated with a storage operation. An active generation of the key data entries include an active generation marker and a base generation does not. A base storage parameter is calculated from a data scan and a current storage parameter is calculated from the base storage parameter and the property values of the active generation of key data entries. The calculated storage parameter may be reported to manage storage configuration and operations in the storage system.

Claims (118)

1. A storage system, comprising:

at least one storage node configured to execute storage operations;

a key data store comprising a log configured to include a set of key data entries, wherein:

each key data entry of the key data entries includes:

a key value corresponding to at least one storage operation; and

at least one property value related to the at least one storage operation;

a second subset of the key data entries of the set of key data entries includes a second generation marker value configured to designate each key data entry in the second subset; and

a first subset of the key data entries of the set of key data entries omits the second generation marker value;

at least one memory;

at least one processor; and

a storage application executable by the at least one processor using the at least one memory to perform operations comprising:

calculating a base storage system parameter from the key data store;

initializing an incremental key scheme, wherein:

a prior log subset of the key data entries is in the key data store at initialization; and

the prior log subset includes the first subset of the key data entries of the set of key data entries;

adding, responsive to at least one storage operation executed after initialization, at least one new key data entry in the second subset;

calculating a current storage system parameter using:

the base storage system parameter; and

the at least one property value of the key data entries in the second subset of the key data entries; and

reporting the current storage system parameter.

2. The storage system of claim 1 , wherein the key value includes:

a data object identifier;

an inverse timestamp;

an operation identifier; and

a generation marker, wherein the generation marker of the second subset includes the second generation marker value.

3. The storage system of claim 1 , wherein:

the at least one property value of each key data entry of the key data entries in the second subset comprises:

at least one precondition value; and

at least one postcondition value; and

calculating the current storage system parameter includes calculating a difference between the at least one precondition value and the at least one postcondition value.

4. The storage system of claim 3 , wherein:

the at least one precondition value and the at least one postcondition value are associated with at least one operation property; and

each key data entry of the key data entries in the second subset further includes at least one operation property for the at least one precondition value and the at least one postcondition value.

5. The storage system of claim 1 , wherein:

the storage application is further executable to perform operations comprising:

executing garbage collection using the key data store; and

adding, responsive to executing garbage collection, garbage collection key data entries to the set of key data entries, wherein garbage collection key data entries include the second generation marker value;

calculating the base storage system parameter is based on a data scan of the key data store without garbage collection; and

calculating the current storage system parameter is performed responsive to adding garbage collection key data entries to the set of key data entries.

6. The storage system of claim 1 , wherein:

the at least one property value of the new key data entry comprises:

at least one precondition value; and

at least one postcondition value; and

calculating the current storage system parameter includes calculating a difference between the at least one precondition value and the at least one postcondition value.

7. The storage system of claim 6 , wherein:

the current storage system parameter is storage capacity; and

the base storage system parameter is a base storage capacity at initialization.

8. The storage system of claim 1 , wherein:

the set of key data entries includes a plurality of operating generations of key data entries corresponding to a plurality of sequential operating periods; and

each of the plurality of operating generations corresponds to a generation subset of key data entries that include a generation marker value configured to designate each of the key data entries in the generation subset.

9. A system, comprising:

at least one storage node configured to execute storage operations;

a key data store comprising a log including a set of key data entries, wherein:

each key data entry of the key data entries includes:

a key value corresponding to at least one storage operation; and

at least one property value related to the at least one storage operation;

a second subset of the key data entries of the set of key data entries includes a second generation marker value configured to designate each of the key data entries in the second subset; and

a first subset of the key data entries of the set of key data entries does not include the second generation marker value;

means for calculating a base storage system parameter from a data scan of the key data store;

means for initializing an incremental key scheme, wherein:

a prior log subset of the key data entries is in the key data store at initialization; and

the prior log subset includes the first subset of the key data entries of the set of key data entries:

means for adding, responsive to at least one storage operation executed after initialization, at least one new key data entry in the second subset;

means for calculating a current storage system parameter from the base storage system parameter and property values of the second subset of key data entries; and

means for reporting the current storage system parameter.

10. The system of claim 9 , wherein:

the at least one property value of each key data entry of the key data entries in the second subset comprises:

at least one precondition value; and

at least one postcondition value; and

the means for calculating the current storage system parameter includes means for calculating a difference between the at least one precondition value and the at least one postcondition value.

11. The system of claim 9 , further comprising:

means for executing garbage collection using the key data store; and

means for adding, responsive to garbage collection, garbage collection key data entries to the set of key data entries, wherein:

garbage collection key data entries include the second generation marker value;

calculating the base storage system parameter from the key data store is executed without garbage collection; and

calculating the current storage system parameter is performed responsive to adding garbage collection key data entries to the set of key data entries.

12. The system of claim 11 , wherein:

the at least one property value of the new key data entry comprises:

at least one precondition value; and

at least one postcondition value; and

calculating the current storage system parameter includes calculating a difference between the at least one precondition value and the at least one postcondition value.

13. A computer-implemented method, comprising:

providing a key data store comprising a log configured to include a set of key data entries, wherein:

each key data entry of the set of key data entries includes:

a key value corresponding to at least one storage operation; and

at least one property value related to the at least one storage operation;

a second subset of the key data entries of the set of key data entries includes a second generation marker value configured to designate each key data entry in the second subset; and

a first subset of the key data entries of the set of key data entries omits the second generation marker value;

calculating, without garbage collection, a base storage system parameter from the key data store;

executing garbage collection using the key data store;

adding, responsive to executing garbage collection, garbage collection key data entries to the set of key data entries, wherein garbage collection key data entries include the second generation marker value;

calculating, responsive to executing garbage collection, a current storage system parameter from:

the base storage system parameter; and

the at least one property value of the second subset of key data entries; and

reporting the current storage system parameter.

14. The computer-implemented method of claim 13 , wherein the key value includes:

a data object identifier;

an inverse timestamp;

an operation identifier; and

a generation marker, wherein the generation marker of the second subset includes the second generation marker value.

15. The computer-implemented method of claim 14 , wherein the generation marker of the first subset includes a first generation marker value.

16. The computer-implemented method of claim 13 , wherein:

the at least one property value of each key data entry of the key data entries in the second subset comprises:

at least one precondition value; and

at least one postcondition value; and

calculating the current storage system parameter includes calculating a difference between the at least one precondition value and the at least one postcondition value.

17. The computer-implemented method of claim 16 , wherein:

the at least one precondition value and the at least one postcondition value are associated with at least one operation property; and

each key data entry of the key data entries in the second subset further includes at least one operation property for the at least one precondition value and the at least one postcondition value.

18. The computer-implemented method of claim 13 , further comprising:

initializing an incremental key scheme, wherein a prior log subset of the key data entries is in the key data store at initialization; and

adding, responsive to at least one storage operation executed after initialization, at least one new key data entry in the second subset.

19. The computer-implemented method of claim 18 , wherein:

the current storage system parameter is storage capacity; and

the base storage system parameter is a base storage capacity at initialization.

20. The computer-implemented method of claim 13 , wherein:

the set of key data entries includes a plurality of operating generations of key data entries corresponding to a plurality of subsequent operating periods; and

each operating generation of the plurality of operating generations corresponds to a generation subset of key data entries that include a generation marker value configured to designate each key data entry of the key data entries in the generation subset.

Assignments (5)
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2019
From: DEMOOR, THOMAS; D'HALLUIN, CARL RENE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048850/0755 →
Continuity (1)
Related Publication 20200311029A1 · Oct 1, 2020
Cited By (3)
US 12,614,147 US 12,639,745 US 12,711,535