IP Library Granted Patent US 11,507,277
Granted Patent B2
US 11,507,277 · App. 16/452,254 · Granted Nov 22, 2022

Key value store using progress verification

Inventors: Thomas Demoor (Ghent, BE); Carl Rene D'Halluin (Zwijnaarde, BE)
Assignee: Western Digital Technologies, Inc.
G06F3/0614G06F3/067G06F3/0631G06F12/0253G06F16/27H04L9/3297
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,507,277
App. No.
16/452,254
Granted
Nov 22, 2022
Kind
B2
Abstract

Example storage systems and methods provide data storage management using a key data store with progress values. A key data store includes a set of key data entries that each include a key value associated with a storage operation and a timestamp corresponding to a creation time of the key data entry. Storage management processes are executed on the set of key data entries and progress values for the storage management processes are tracked using the timestamps of the key data entries to manage the relative progress of the storage management processes.

Claims (130)

1. A storage system, comprising:

at least one storage node configured to execute storage operations;

a key data store configured to store a log including 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

a timestamp corresponding to a creation time of the key data entry;

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:

executing a first storage management process on a plurality of key data entries from the set of key data entries in the key data store;

tracking, using timestamps of key data entries forming the plurality of key data entries, a first progress value for the first storage management process; and

verifying, using a second progress value for a second storage management process, at least one condition for the first storage management process, wherein:

the plurality of key data entries is configured in a timestamp order;

the first storage management process traverses the plurality of key data entries in the timestamp order;

the first progress value is configured to be a most recently processed key data entry for the first storage management process;

the second storage management process traverses the plurality of key data entries in the timestamp order;

the second progress value is configured to be a most recently processed key data entry for the second storage management process; and

completion of the first storage management process is based on a verification of the at least one condition for the first storage management process.

2. The storage system of claim 1 , wherein:

the key data store is sharded across a plurality of databases;

each key data entry of the set of key data entries further includes an original shard identifier;

the first storage management process is configured to operate on a first shard;

the second storage management process is configured to operate on a second shard; and

the operations further comprise:

determining, based on the original shard identifier in at least one key data entry associated with the first storage management process, the second storage management process; and

querying, responsive to determining the second storage management process, for the second progress value.

3. The storage system of claim 2 , wherein:

each key data entry of the set of key data entries further includes an original shard timestamp; and

the at least one condition includes a comparison between the original shard timestamp to the second progress value.

4. The storage system of claim 1 , wherein:

the at least one condition requires the second progress value to exceed the first progress value; and

the operations further comprise:

suspending, responsive to the verification of the at least one condition for the first storage management process being unsuccessful, the first storage management process;

periodically attempting to verify the at least one condition of the first storage management process; and

resuming, responsive to the verification of the at least one condition for the first storage management process being successful, the first storage management process.

5. The storage system of claim 1 , wherein the operations further comprise:

executing the second storage management process, wherein:

the first storage management process overlaps the second storage management process; and

the at least one condition for the first storage management process is dependent on a progress state of the second storage management process; and

tracking, using the timestamps of the key data entries, the second progress value for the second storage management process.

6. The storage system of claim 5 , wherein verifying the at least one condition includes:

comparing the first progress value to the second progress value;

determining, responsive to the second progress value exceeding the first progress value, the progress state to be met;

returning, responsive to the progress state being met, a successful verification condition; and

returning, responsive to the progress state not being met, an unsuccessful verification condition.

7. The storage system of claim 1 , wherein:

the first progress value corresponds to the timestamp of a most recently processed key data entry associated with the first storage management process; and

the second progress value corresponds to the timestamp of a most recently processed key data entry associated with the second storage management process.

8. The storage system of claim 1 , wherein the first storage management process is one of:

calculating a storage property;

replicating data objects; and

garbage collection.

9. The storage system of claim 1 , wherein:

each key data entry of the set of key data entries further comprises at least one property value including:

at least one precondition value; and

at least one postcondition value; and

the first storage management process calculates, based on the at least one precondition value and the at least one postcondition value, a storage property.

10. A computer-implemented method, comprising:

providing a key data store comprising a log including 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

a timestamp corresponding to a creation time of the key data entry;

executing a first storage management process on a plurality of key data entries from the set of key data entries in the key data store;

tracking, using timestamps of key data entries forming the plurality of key data entries, a first progress value for the first storage management process; and

verifying, using a second progress value for a second storage management process, at least one condition for the first storage management process, wherein:

the plurality of key data entries is configured in a timestamp order;

the first storage management process traverses the plurality of key data entries in the timestamp order;

the first progress value is configured to be a most recently processed key data entry for the first storage management process;

the second storage management process traverses the plurality of key data entries in the timestamp order;

the second progress value is configured to be a most recently processed key data entry for the second storage management process; and

completion of the first storage management process is based on a verification of the at least one condition for the first storage management process.

11. The computer-implemented method of claim 10 ,

wherein:

the key data store is sharded across a plurality of databases;

each key data entry of the set of key data entries further includes an original shard identifier;

the first storage management process is configured to operate on a first shard; and

the second storage management process is configured to operate on a second shard; and

further comprising:

determining, based on the original shard identifier in at least one key data entry associated with the first storage management process, the second storage management process; and

querying, responsive to determining the second storage management process, for the second progress value.

12. The computer-implemented method of claim 11 , wherein:

each key data entry of the set of key data entries further includes an original shard timestamp; and

the at least one condition includes a comparison between the original shard timestamp to the second progress value.

13. The computer-implemented method of claim 10 , wherein the at least one condition requires the second progress value to exceed the first progress value and further comprising:

suspending, responsive to the verification of the at least one condition for the first storage management process being unsuccessful, the first storage management process;

periodically attempting to verify the at least one condition of the first storage management process; and

resuming, responsive to the verification of the at least one condition for the first storage management process being successful, the first storage management process.

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

executing the second storage management process, wherein:

the first storage management process overlaps the second storage management process; and

the at least one condition for the first storage management process is dependent on a progress state of the second storage management process; and

tracking, using the timestamps of the key data entries, the second progress value for the second storage management process.

15. The computer-implemented method of claim 14 , wherein verifying the at least one condition includes:

comparing the first progress value to the second progress value;

determining, responsive to the second progress value exceeding the first progress value, the progress state to be met;

returning, responsive to the progress state being met, a successful verification condition; and

returning, responsive to the progress state not being met, an unsuccessful verification condition.

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

the first progress value corresponds to the timestamp of a most recently processed key data entry associated with the first storage management process; and

the second progress value corresponds to the timestamp of a most recently processed key data entry associated with the second storage management process.

17. The computer-implemented method of claim 10 , wherein the first storage management process is one of:

calculating a storage property;

replicating data objects; and

garbage collection.

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

each key data entry of the set of key data entries further comprises at least one property value including:

at least one precondition value; and

at least one postcondition value; and

the first storage management process calculates, based on the at least one precondition value and the at least one postcondition value, a storage property.

19. A system, comprising:

at least one storage node configured to execute storage operations;

a key data store configured to store a log including 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

a timestamp corresponding to a creation time of the key data entry;

means for executing a first storage management process on a plurality of key data entries from the set of key data entries in the key data store;

means for tracking, using timestamps of key data entries forming the plurality of key data entries, a first progress value for the first storage management process; and

means for verifying, using a second progress value for a second storage management process, at least one condition for the first storage management process, wherein:

the plurality of key data entries is configured in a timestamp order;

the first storage management process traverses the plurality of key data entries in the timestamp order;

the first progress value is configured to be a most recently processed key data entry for the first storage management process;

the second storage management process traverses the plurality of key data entries in the timestamp order;

the second progress value is configured to be a most recently processed key data entry for the second storage management process; and

completion of the first storage management process is based on a verification of the at least one condition for the first storage management process.

20. The system of claim 19 ,

wherein:

the key data store is sharded across a plurality of databases;

each key data entry of the set of key data entries further includes an original shard identifier;

the first storage management process is configured to operate on a first shard; and

the second storage management process is configured to operate on a second shard; and

further comprising:

means for determining, based on the original shard identifier in at least one key data entry associated with the first storage management process, the second storage management process; and

means for querying, responsive to determining the second storage management process, for the second progress value.

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 Aug 28, 2019
From: DEMOOR, THOMAS; D'HALLUIN, CARL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 050201/0976 →
Continuity (1)
Related Publication 20200409566A1 · Dec 31, 2020