IP Library Granted Patent US 11,604,707
Granted Patent B2
US 11,604,707 · App. 15/830,252 · Granted Mar 14, 2023

Handling failures when synchronizing objects during a write operation

Inventors: Adam M. Gray (Chicago, IL); Greg R. Dhuse (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Ravi V. Khadiwala (Bartlett, IL); Wesley B. Leggette (Chicago, IL); Scott M. Horan (Clarendon Hills, IL); Franco V. Borich (Naperville, IL); Bart R. Cilfone (Marina del Rey, CA); Daniel J. Scholl (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1469G06F3/064G06F3/067G06F3/0619G06F11/1092G06F11/1464G06F11/1474G06F11/1612G06F16/11H04L63/00H04L67/1097G06F2201/805G06F2201/81G06F2201/82G06F2211/1028H04L63/0428
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,604,707
App. No.
15/830,252
Granted
Mar 14, 2023
Kind
B2
Abstract

A method for execution by a dispersed storage network (DSN). The method begins by obtaining a data object for synchronized storage within a plurality of storage vaults, identifying a plurality of storage vaults, encoding the data object for each storage vault, initiating storage of data slices for each storage vault and interpreting received data slice information from at least some of the storage vaults to determine a number of storage vaults that have successfully stored the corresponding plurality of sets of encoded data slices and when the vault threshold number of storage vaults have not successfully stored the corresponding plurality of sets of encoded data slices within a synchronization timeframe, initiating a rollback process to abandon storage of the data object in the plurality of storage vaults and a store data response to indicate unsuccessful synchronized storage of the data object in the plurality of storage vaults.

Claims (37)

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

obtaining a data object for synchronized storage within a plurality of storage vaults, wherein each of the plurality of storage vaults includes a set of storage units;

identifying the plurality of storage vaults;

encoding the data object for each storage vault of the plurality of storage vaults to produce a corresponding plurality of sets of encoded data slices in accordance with dispersal parameters associated with the storage vault;

initiating storage for each storage vault of the corresponding plurality of sets of encoded data slices, wherein the initiating storage includes initiating storage to two or more vaults;

interpreting received slice information from at least some of the storage vaults to determine a number of storage vaults that have successfully stored the corresponding plurality of sets of encoded data slices;

when a vault threshold number of storage vaults have not successfully stored the corresponding plurality of sets of encoded data slices within a synchronization timeframe, initiating a rollback process to abandon storage of the data object in the plurality of storage vaults; and

generating a store data response to indicate unsuccessful synchronized storage of the data object in the plurality of storage vaults.

2. The method of claim 1 , wherein the initiating a rollback process includes issuing rollback requests to each storage vault of the plurality of storage vaults to facilitate deletion of the corresponding plurality of sets of encoded data slices.

3. The method of claim 1 , wherein the store data response includes identities of one or more storage vaults associated with the unsuccessful synchronized storage.

4. The method of claim 3 , wherein, for each storage vault of the one or more storage vaults, the store data response includes one or more causes associated with the unsuccessful synchronized storage.

5. The method of claim 1 , wherein the obtaining includes a store data request including one or more of: a data object for storage, metadata of the data object including one or more of: a data identifier, a data size indicator, an identifier of a requesting entity, a data type indicator, a data owner identifier, or a synchronization level indicator.

6. The method of claim 1 , wherein the identifying the plurality of storage vaults is based on one or more of: the metadata of the data object, an interpretation of system registry information, a predetermination, or an interpretation of a request.

7. The method of claim 1 , wherein the identifying includes storage vaults based on an identifier of a requesting entity.

8. The method of claim 1 , wherein unique dispersal parameters encode the data object to produce another plurality of sets of encoded data slices.

9. The method of claim 1 , wherein the initiating storage of the corresponding plurality of sets of encoded data slices includes issuing one or more sets of write slice requests to a set of execution units associated with each of the storage vaults, where the one or more sets of write slice requests includes the corresponding plurality of sets of encoded data slices.

10. The method of claim 1 , wherein the corresponding plurality of sets of encoded data slices include slice information including one or more of: a write slice response, a list slice request, a list slice response, a slice name, a slice revision number, a data object revision number, a slice revision number, a rollback write request, or a rollback write response.

11. The method of claim 10 , wherein, for each storage vault slice information, a processing unit determines whether the plurality of sets of encoded data slices have been successfully stored in at least a write threshold number of execution units associated with each of the storage vaults.

12. The method of claim 11 , wherein the processing unit interprets write slice responses indicating success or failure of storage operations.

13. The method of claim 1 , wherein the generated store data response includes an indicator of which storage vaults were unsuccessful and includes a root cause indicator for the unsuccessful synchronized storage.

14. The method of claim 13 , wherein, when two or more indicators are received, a most specific indicator is returned to a requesting entity to provide more specific information about an error condition and about how it might be resolved.

15. The method of claim 14 , wherein each indicator, of the two or more indicators, includes a specificity score that can be used to evaluate and determine which error condition is to be returned.

16. 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:

obtain a data object for synchronized storage within a plurality of storage vaults, wherein each of the plurality of storage vaults includes a set of storage units;

identify the plurality of storage vaults;

encode the data object for each storage vault to produce a corresponding plurality of sets of encoded data slices in accordance with dispersal parameters associated with the storage vault;

initiate storage for each storage vault of the corresponding plurality of sets of encoded data slices, wherein the initiate storage includes initiating storage to two or more vaults;

interpret received slice information from at least some of the storage vaults to determine a number of storage vaults that have successfully stored the corresponding plurality of sets of encoded data slices; and

when a vault threshold number of storage vaults have not successfully stored the corresponding plurality of sets of encoded data slices within a synchronization timeframe, initiate a rollback process to abandon storage of the data object in the plurality of storage vaults; and

generate a store data response to indicate unsuccessful synchronized storage of the data object in the plurality of storage vaults.

17. The computing device of claim 16 , wherein the initiate a rollback process includes issuing rollback requests to each storage vault of the plurality of storage vaults to facilitate deletion of the corresponding plurality of sets of encoded data slices.

18. The computing device of claim 16 , wherein the generated store data response includes an indicator of which storage vaults were unsuccessful and includes a root cause indicator for the unsuccessful synchronized storage.

19. The computing device of claim 18 , wherein, when two or more indicators are received, a most specific indicator is returned to a requesting entity to provide more specific information about an error condition and about how it might be resolved.

20. The computing device of claim 19 , wherein each indicator, of the two or more indicators, includes a specificity score that can be used to evaluate and determine which error condition is to be returned.

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 Dec 4, 2017
From: GRAY, ADAM M.; DHUSE, GREG R.; BAPTIST, ANDREW D.; KHADIWALA, RAVI V.; LEGGETTE, WESLEY B.; HORAN, SCOTT M.; BORICH, FRANCO V.; CILFONE, BART R.; SCHOLL, DANIEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044291/0008 →
Continuity (4)
Continuation In Part 15661332 · Jul 27, 2017
Continuation In Part 14927446 · Oct 29, 2015
Provisional Application 62098449 · Dec 31, 2014
Related Publication 20180101451A1 · Apr 12, 2018