IP Library Granted Patent US 10,437,671
Granted Patent B2
US 10,437,671 · App. 15/164,357 · Granted Oct 8, 2019

Synchronizing replicated stored data

Inventors: Scott M. Horan (Clarendon Hills, IL); Ravi V. Khadiwala (Bartlett, IL); Greg R. Dhuse (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/065G06F3/067G06F3/0619G06F11/1662G06F16/22G06F16/2471G06F16/24578G06F16/27G06F16/273H03M13/33H03M13/3761H04L65/4076H04L67/06H04L67/1095H04L67/1097H04L67/16G06F2201/805H03M13/1515
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,671
App. No.
15/164,357
Granted
Oct 8, 2019
Kind
B2
Abstract

A method begins by a processing module initiating storage of a data object in two or more storage sets. The method continues with the processing module updating synchronization status for the two or more storage sets when detecting failure to store at least a minimum number of encoded data slices to enable recovery from one of the storage sets. The method continues with the processing module determining to resynchronize the two or more storage sets. The method continues with the processing module identifying a data object requiring resynchronization. The method continues with the processing module identifying a latest available revision associated with the data object and facilitating storage of the identified latest available revision of the data object in at least one storage set requiring the latest revision to satisfy the resynchronization.

Claims (58)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

initiating storage of a data object in two or more storage sets, wherein the data objects stored in each of the two or more storage sets are copies of each other, wherein the data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs);

detecting a failure to store at least a minimum number of EDSs of the data object in at least one of the two or more storage sets, wherein the minimum number of EDSs is a number required to enable recovery of the data object;

initiating storage of an entry in the DSN, wherein the entry indicates the data object for which at least a minimum number of EDS failed to store;

updating synchronization status for the data objects stored in each of the two or more storage sets, wherein the updating the synchronization status is includes querying the DSN for the entry for the data object;

based on the updated synchronization status, determining to resynchronize the two or more storage sets;

identifying a data object requiring resynchronization;

identifying a latest available revision associated with the data object; and

facilitating storage of the identified latest available revision of the data object in at least one storage set requiring the latest revision to satisfy the resynchronization.

2. The method of claim 1 , wherein initiating storage includes: identifying the two or more storage sets, generating a plurality of sets of encoded data slices and sending the plurality of sets of encoded data slices to the identified two or more storage sets.

3. The method of claim 2 , wherein the identified two or more storage sets are associated with common user.

4. The method of claim 2 , wherein the updating includes any of: generating the updated synchronization status to indicate an identity of the storage set and the data object, storing the updated synchronization status in at least one of a local memory or storing a dispersed hierarchical index within one or more of the storage sets.

5. The method of claim 2 , wherein the determining to resynchronize is in accordance with a schedule or when detecting availability of a previously unavailable storage set.

6. The method of claim 2 , wherein the identifying a data object includes retrieving the synchronization status and selecting an un-synchronized data object associated with a now-available storage set.

7. The method of claim 2 , wherein the identifying a latest available revision includes: issuing revision requests, receiving revision responses and selecting a source storage set associated with a desired revision.

8. The method of claim 7 , wherein the latest revision is based on the revision responses.

9. The method of claim 2 , wherein the initiating storage includes:

issuing a request for slices of the latest revision of the data object from source storage set; receiving the slices of the latest revision of the data object; and identifying the at least one storage set requiring the latest revision and sending the slices of the latest revision of the data object to the identified at least one storage set.

10. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:

initiate storage of a data object in two or more storage sets, wherein the data objects stored in each of the two or more storage sets are copies of each other, wherein the data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs);

detect a failure to store at least a minimum number of EDSs from the data object in at least one of the two or more storage sets, wherein the minimum number of EDSs is a number required to enable recovery of the data object;

initiate storage of an entry in the DSN, wherein the entry indicates the data object for which at least a minimum number of EDS failed to store;

update synchronization status for the data objects stored in each of the two or more storage sets, wherein the updating the synchronization status is includes querying the DSN for the entry for the data object;

determine, based on the updated synchronization status, to resynchronize the two or more storage sets;

identify a data object requiring resynchronization;

identify a latest available revision associated with the data object; and

facilitate storage of the identified latest available revision of the data object in at least one storage set requiring the latest revision to satisfy the resynchronization.

11. The non-transitory computer readable storage medium of claim 10 further comprises:

during initiating storage, identifying the two or more storage sets, generating a plurality of sets of encoded data slices and sending the plurality of sets of encoded data slices to the identified two or more storage sets.

12. The non-transitory computer readable storage medium of claim 10 further comprises:

the identified two or more storage sets being associated with a common user.

13. The non-transitory computer readable storage medium of claim 10 further comprises:

the updating synchronization status including any of: generating the updated synchronization status to indicate an identity of the storage set and the data object, storing the updated synchronization status in at least one of a local memory or storing a dispersed hierarchical index within one or more of the storage sets.

14. The non-transitory computer readable storage medium of claim 10 further comprises:

the determining to resynchronize the two or more storage sets being executed in accordance with a schedule or when detecting availability of a previously unavailable storage set.

15. The non-transitory computer readable storage medium of claim 10 further comprises:

the identifying a data object including retrieving the synchronization status and selecting an un-synchronized data object associated with a now-available storage set.

16. The non-transitory computer readable storage medium of claim 10 further comprises:

the identifying a latest available revision including: issuing revision requests, receiving revision responses and selecting a source storage set associated with a desired revision.

17. The non-transitory computer readable storage medium of claim 10 further comprises:

the facilitating storage including: issuing a request for slices of the latest revision of the data object from source storage set, receiving the slices of the latest revision of the data object, identifying the at least one storage set requiring the latest revision and sending the slices of the latest revision of the data object to the identified at least one storage set.

18. A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

initiate storage of a data object in two or more storage sets, wherein the data objects stored in each of the two or more storage sets are copies of each other, wherein the data object is segmented into a plurality of data segments, wherein each data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs), wherein each storage set of the two or more storage sets is associated with a vault;

detect a failure to store at least a minimum number of EDSs from the data object in at least one of the two or more storage sets, wherein the minimum number of EDSs is a number required to enable recovery of the data object;

initiate storage of an entry in the DSN, wherein the entry indicates the data object for which at least a minimum number of EDS failed to store;

update synchronization status for the data objects stored in each of the two or more storage sets, wherein the updating the synchronization status is includes querying the DSN for the entry for the data object;

determine, based on the updated synchronization status, to resynchronize the two or more storage sets;

identify a data object requiring resynchronization;

identify a latest available revision associated with the data object; and

facilitate storage of the identified latest available revision of the data object in at least one storage set requiring the latest revision to satisfy the resynchronization.

19. The computing device of claim 18 , wherein the processing module further functions to:

generate the updated synchronization status to indicate an identity of the storage set and the data object, storing the updated synchronization status in at least one of a local memory or storing a dispersed hierarchical index within one or more of the storage sets.

20. The computing device of claim 18 , wherein the processing module further functions to:

determining to resynchronize in accordance with a schedule or when detecting availability of a previously unavailable storage set.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2016
From: HORAN, SCOTT M.; KHADIWALA, RAVI V.; DHUSE, GREG R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038718/0801 →
Continuity (2)
Provisional Application 62186590 · Jun 30, 2015
Related Publication 20170004055A1 · Jan 5, 2017