IP Library Granted Patent US 10,489,247
Granted Patent B2
US 10,489,247 · App. 15/830,443 · Granted Nov 26, 2019

Generating time-ordered globally unique revision numbers

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); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/067G06F3/0619G06F3/0655G06F11/1092G06F16/1844G06F16/1873H04L67/1097G06F2211/1028H04L67/06
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,489,247
App. No.
15/830,443
Granted
Nov 26, 2019
Kind
B2
Abstract

A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN). The method begins by receiving a data object for storage in a plurality of storage vaults. The method continues by encoding the data object in accordance with dispersal parameters of the storage vault to produce a corresponding plurality of sets of encoded data slices. The method continues by generating a unique revision number to associate with the data object. The method continues by facilitating storage of the corresponding plurality of sets of encoded data slices with the unique revision number and facilitating data synchronization between the plurality of storage vaults based on the unique revision numbers of stored data.

Claims (38)

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

receiving, by two or more of the processing units, a data object for storage in a plurality of storage vaults, wherein the plurality of storage vaults includes two or more storage vaults for the data object;

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

generating, by each processing unit of the two or more of the processing units, a unique revision number to associate with the data object, wherein the unique revision number is a time-ordered globally unique revision number;

for each storage vault, each processing unit of the two or more of the processing units facilitating storage of the corresponding plurality of sets of encoded data slices with the unique revision number; and

facilitating, by at least one of the two or more of the processing units, data synchronization between the plurality of storage vaults based on the unique revision number of a stored data object.

2. The method of claim 1 , wherein the receiving a data object for storage includes receiving a common data object.

3. The method of claim 1 , wherein the receiving a data object for storage includes a different data object that share a common data identifier.

4. The method of claim 1 , wherein the receiving a data object for storage includes at least one of receiving the data object substantially simultaneously and a first of the processing units generating the data object and a second of the processing units receiving the data object.

5. The method of claim 1 , wherein the encoding the data object includes obtaining the dispersal parameters and dispersed storage error encoding the data object to produce the corresponding plurality of sets of encoded data slices.

6. The method of claim 1 , wherein the generating the unique revision number includes at least one ever-increasing portion and at least one watermark portion.

7. The method of claim 6 , wherein the at least one ever-increasing portion includes one or more of an ever-increasing time portion or an ever-increasing operation portion.

8. The method of claim 6 , wherein the watermark portion includes at least one of a random number, a pseudorandom number, or a result of applying a deterministic function to at least a portion of one or more of the data object or a data object identifier.

9. The method of claim 6 , wherein the maintaining includes maintaining both revisions of a common data object in accordance with a predetermination when the ever-increasing portion is substantially the same.

10. The method of claim 1 , wherein the facilitating storage includes issuing one or more sets of write slice requests to the storage vault, wherein the write slice requests include this corresponding plurality of sets of encoded data slices and a corresponding unique revision number.

11. The method of claim 1 , wherein the facilitating data synchronization includes maintaining both unique revision numbers or eliminating unique revision numbers.

12. The method of claim 11 , wherein the maintaining includes selecting a revision for elimination by at least one of a random selection, selecting a revision with a highest ever-increasing portion, and selecting a revision with a watermark portion corresponding to a priority revision.

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

receive a data object for storage in a plurality of storage vaults, wherein the plurality of storage vaults includes two or more storage vaults for the data object;

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

generate a unique revision number to associate with the data object, wherein the unique revision number includes at least one ever-increasing portion and at least one watermark portion;

facilitate storage of the corresponding plurality of sets of encoded data slices with the unique revision number; and

facilitate data synchronization between the plurality of storage vaults based on the unique revision number of a stored data object.

14. The computing device of claim 13 , wherein the at least one ever-increasing portion includes one or more of an ever-increasing time portion or an ever-increasing operation portion.

15. The computing device of claim 13 , wherein the watermark portion includes at least one of a random number, a pseudorandom number, or a result of applying a deterministic function to at least a portion of one or more of the data object or a data object identifier.

16. The computing device of claim 13 , wherein the facilitate storage includes issuing one or more sets of write slice requests to the storage vault, wherein the write slice requests include this corresponding plurality of sets of encoded data slices and a corresponding unique revision number.

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

receiving a data object for storage in a plurality of storage vaults, wherein the plurality of storage vaults includes two or more storage vaults for the data object;

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

generating a unique revision number to associate with the data object, wherein the unique revision number includes at least one ever-increasing portion and at least one watermark portion;

for each storage vault, facilitating storage of the corresponding plurality of sets of encoded data slices with the unique revision number; and

facilitating data synchronization between the plurality of storage vaults based on the unique revision number of a stored data object.

18. The method of claim 17 , wherein the at least one ever-increasing portion includes one or more of an ever-increasing time portion or an ever-increasing operation portion.

19. The method of claim 17 , wherein the watermark portion includes at least one of a random number, a pseudorandom number, or a result of applying a deterministic function to at least a portion of one or more of the data object or a data object identifier.

20. The method of claim 17 , wherein the facilitating data synchronization includes maintaining both revisions of a common data object in accordance with a predetermination when the ever-increasing portion is substantially the same.

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 5, 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.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044294/0320 →