IP Library › Granted Patent US 11,334,623
Granted Patent B2
US 11,334,623 · App. 16/367,083 · Granted May 17, 2022

Key value store using change values for data properties

Inventors: Thomas Demoor (Ghent, BE); Carl Rene D'Halluin (Zwijnaarde, BE)
Assignee: Western Digital Technologies, Inc.
G06F16/901
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,334,623
App. No.
16/367,083
Granted
May 17, 2022
Kind
B2
Abstract

Example storage systems and methods provide data storage management using change values in a key data store. A key data store includes a set of key data entries that each include a key value associated with a storage operation, a precondition value, and a postcondition value. A storage parameter is calculated using the precondition value and the postcondition value for each key data entry the set of key data entries. The calculated storage parameter may be reported to manage storage configuration and operations in the storage system.

Claims (88)

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 set of key data entries includes:

a key value corresponding to at least one storage operation for a particular data object;

at least one precondition value for a storage property of the particular data object prior to execution of the at least one storage operation by the at least one storage node; and

at least one postcondition value for the storage property of the particular data object after execution of the at least one storage operation by the at least one storage node;

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:

traversing the log to read the at least one precondition value and the at least one postcondition value of a plurality of key data entries in the set of key data entries that include the storage property;

calculating a storage system parameter from the plurality of key data entries of the set of key data entries by aggregating storage property values using the at least one precondition value and the at least one postcondition value of each key data entry of the plurality of key data entries; and

reporting the storage system parameter.

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

a data object identifier;

an inverse timestamp; and

an operation identifier.

3. The storage system of claim 1 , 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 further includes at least one operation property for the at least one precondition value and the at least one postcondition value.

4. The storage system of claim 1 , wherein:

a plurality of precondition values and a plurality of postcondition values are associated with a plurality of operation properties;

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

the plurality of operation properties for the plurality of precondition values; and

the plurality of operation properties for the plurality of postcondition values; and

calculating the storage system parameter from the plurality of key data entries of the set of key data entries uses the plurality of precondition values and the plurality of postcondition values for the plurality of key data entries.

5. The storage system of claim 1 , wherein the storage application is further executable to perform operations comprising:

calculating delta values from each key data entry of the plurality of key data entries of the set of key data entries using a difference between the at least one precondition value and the at least one postcondition value, wherein calculating the storage system parameter from the plurality of key data entries of the set of key data entries uses the delta values to calculate the storage system parameter.

6. The storage system of claim 1 , wherein:

the storage application is further executable to perform operations comprising adding a new key data entry to the set of key data entries; and

calculating the storage system parameter is performed responsive to adding the new key data entry.

7. The storage system of claim 1 , wherein the storage system parameter is calculated on a recurring basis at a defined time interval.

8. The storage system of claim 1 , wherein the storage application is further executable to perform operations comprising:

identifying a change operation related to a prior data object, wherein a prior key data entry in the set of key data entries references the prior data object;

executing, responsive to the change operation, a cleanup key data entry operation on the set of key data entries, wherein the cleanup key data entry operation identifies the prior data object for garbage collection; and

executing, responsive to identifying garbage collection for the prior data object as complete, a removal key data entry operation on the set of key data entries, wherein the removal key data entry operation adds at least one deletion postcondition value related to the prior data object.

9. The storage system of claim 8 , wherein the storage application is further executable to perform operations comprising:

executing, responsive to the change operation, a logically deleted key data entry operation to the set of key data entries, wherein a resulting key data entry includes:

at least one deletion postcondition value related to the prior data object; and

a logically deleted marker.

10. A computer-implemented method, comprising:

storing a set of key data entries in a key value store, each key data entry of the set of key data entries including:

a key value corresponding to at least one storage operation for a particular data object;

at least one precondition value for a storage property of the particular data object prior to execution of the at least one storage operation by at least one storage node; and

at least one postcondition value for the storage property of the particular data object after execution of the at least one storage operation by the at least one storage node;

traversing the set of key data entries to read the at least one precondition value and the at least one postcondition value of a plurality of key data entries in the set of key data entries that include the storage property;

calculating a storage system parameter from the plurality of key data entries of the set of key data entries by aggregating storage property values using the at least one precondition value and the at least one postcondition value for each of the plurality of key data entries; and

reporting the storage system parameter.

11. The computer-implemented method of claim 10 , wherein the key value includes:

a data object identifier;

an inverse timestamp; and

an operation identifier.

12. The computer-implemented method of claim 10 , 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 set of key data entries further includes at least one operation property for the at least one precondition value and the at least one postcondition value.

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

a plurality of precondition values and a plurality of postcondition values are associated with a plurality of operation properties;

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

the plurality of operation properties for the plurality of precondition values; and

the plurality of operation properties for the plurality of postcondition values; and

calculating the storage system parameter from the plurality of key data entries of the set of key data entries uses the plurality of precondition values and the plurality of postcondition values for the plurality of key data entries.

14. The computer-implemented method of claim 10 , further comprising:

calculating delta values from each key data entry of the plurality of key data entries of the set of key data entries using a difference between the at least one precondition value and the at least one postcondition value; and

using the delta values to calculate the storage system parameter.

15. The computer-implemented method of claim 10 , further comprising:

adding a new key data entry to the set of key data entries, wherein calculating the storage system parameter is performed responsive to adding the new key data entry.

16. The computer-implemented method of claim 10 , wherein calculating the storage system parameter is performed on a recurring basis at a defined time interval.

17. The computer-implemented method of claim 10 , further comprising:

identifying a change operation related to a prior data object, wherein a prior key data entry in the set of key data entries references the prior data object;

executing, responsive to the change operation, a cleanup key data entry operation on the set of key data entries, wherein the cleanup key data entry operation identifies the prior data object for garbage collection; and

executing, responsive to identifying garbage collection for the prior data object as complete, a removal key data entry operation on the set of key data entries, wherein the removal key data entry operation adds at least one deletion postcondition value related to the prior data object.

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

executing, responsive to the change operation, a logically deleted key data entry operation on the set of key data entries, wherein the logically deleted key data entry operation includes:

at least one deletion postcondition value related to the prior data object; and

a logically deleted marker.

19. A system, comprising:

at least one storage node configured to execute storage operations;

a key data store 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 for a particular data object;

at least one precondition value for a storage property of the particular data object prior to execution of the at least one storage operation by the at least one storage node; and

at least one postcondition value for the storage property of the particular data object after execution of the at least one storage operation by the at least one storage node;

means for traversing the set of key data entries to read the at least one precondition value and the at least one postcondition value of a plurality of key data entries in the set of key data entries that include the storage property;

means for calculating a storage system parameter from the plurality of key data entries of the set of key data entries using the at least one precondition value and the at least one postcondition value for each of the plurality of key data entries; and

means for reporting the storage system parameter.

20. The system of claim 19 , further comprising:

means for identifying a change operation related to a prior data object, wherein a prior key data entry in the set of key data entries references the prior data object;

means for executing, responsive to the change operation, a cleanup key data entry operation on the set of key data entries, wherein the cleanup key data entry operation identifies the prior data object for garbage collection; and

means for executing, responsive to identifying garbage collection for the prior data object as complete, a removal key data entry operation on the set of key data entries, wherein the removal key data entry operation includes at least one deletion post-condition value related to the prior data object.

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 048851/0043 →
Continuity (1)
Related Publication 20200311132A1 · Oct 1, 2020