IP Library Granted Patent US 9,774,684
Granted Patent B2
US 9,774,684 · App. 14/876,154 · Granted Sep 26, 2017

Storing data in a dispersed storage network

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 9,774,684
App. No.
14/876,154
Granted
Sep 26, 2017
Kind
B2
Abstract

A method begins by a computing device generating a set of write requests regarding a set of encoded data slices and sending the set of write requests to a set of storage units, where each write request includes an encoded data slice, a corresponding slice name, and a transaction number. The method continues with each of at least some of the storage units generating a write response that includes the transaction number and a list of revision levels corresponding to the slice name. The method continues with the computing device receiving the write responses from the at least some of the storage units, determining a most current revision level based on the lists of revision levels and generating a set of write commit messages, where a write commit message includes the transaction number and a new revision level for the set of encoded data slices.

Claims (58)

1. A method comprises:

generating, by a computing device, a set of write requests regarding a set of encoded data slices, wherein a write request of the set of write requests includes an encoded data slice of the set of encoded data slices, a corresponding slice name, and a transaction number corresponding to the set of write requests;

sending, by the computing device, the set of write requests to a set of storage units;

generating, by each of at least some of the storage units of the set of storage units, a write response that includes the transaction number and a list of revision levels corresponding to the slice name;

receiving, by the computing device, the write responses from the at least some of the storage units, wherein the write responses includes at least a decode threshold number of write responses;

determining, by the computing device, a most current revision level regarding the set of encoded data slices based on the lists of revision levels from the at least some of the storage units; and

generating, by the computing device, a set of write commit messages, wherein a write commit message of the set of write commit messages includes the transaction number and a new revision level for the set of encoded data slices.

2. The method of claim 1 , wherein the write response further comprises:

a particular slice name corresponding to a particular encoded data slice of the set of encoded data slices.

3. The method of claim 1 , wherein the generating the write response comprises:

identifying stored encoded data slices having the slice name;

determining revision values for each of the stored encoded data slices; and

generating the list of revision levels based on the revision values.

4. The method of claim 1 , wherein the determining the most current revision level comprises:

reviewing the lists of revision levels from the at least some of the storage units to determine a highest revision value, wherein the lists of revision levels includes a list of revision values for the corresponding slice name; and

utilizing the highest revision value as the most current revision level.

5. The method of claim 1 , wherein the determining the most current revision level comprises:

reviewing the lists of revision levels from the at least some of the storage units to determine a highest revision value in a threshold number of lists of revision levels, wherein the lists of revision levels includes a list of revision values for the corresponding slice name; and

utilizing the highest revision value in the threshold number of lists of revision levels as the most current revision level.

6. The method of claim 1 , wherein the generating the set of write commit messages comprises at least one of:

determining the new revision level by incrementing the most current revision level; and

determining the new revision level by performing a mathematical function on the most current revision level.

7. The method of claim 1 , wherein the generating the write response comprises:

storing the encoded data slice corresponding to the slice name;

restricting access to the encoded data slice pending the write commit message; and

maintaining access to a previous revision level of the encoded data slice pending the write commit message.

8. The method of claim 1 further comprises:

sending, by the computing device, the set of write commit messages to the set of storage units.

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

generate a set of write requests regarding a set of encoded data slices, wherein a write request of the set of write requests includes an encoded data slice of the set of encoded data slices, a corresponding slice name, and a transaction number corresponding to the set of write requests;

send the set of write requests to a set of storage units;

generate, by each of at least some of the storage units of the set of storage units, a write response that includes the transaction number and a list of revision levels corresponding to the slice name;

receive the write responses from the at least some of the storage units, wherein the write responses includes at least a decode threshold number of write responses;

determine a most current revision level regarding the set of encoded data slices based on the lists of revision levels from the at least some of the storage units; and

generate a set of write commit messages, wherein a write commit message of the set of write commit messages includes the transaction number and a new revision level for the set of encoded data slices.

10. The non-transitory computer readable storage medium of claim 9 , wherein the write response further comprises:

a particular slice name corresponding to a particular encoded data slice of the set of encoded data slices.

11. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to generate the write response by:

identifying stored encoded data slices having the slice name;

determining revision values for each of the stored encoded data slices; and

generating the list of revision levels based on the revision values.

12. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to determine the most current revision level by:

reviewing the lists of revision levels from the at least some of the storage units to determine a highest revision value, wherein the lists of revision levels includes a list of revision values for the corresponding slice name; and

utilizing the highest revision value as the most current revision level.

13. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to determine the most current revision level by:

reviewing the lists of revision levels from the at least some of the storage units to determine a highest revision value in a threshold number of lists of revision levels, wherein the lists of revision levels includes a list of revision values for the corresponding slice name; and

utilizing the highest revision value in the threshold number of lists of revision levels as the most current revision level.

14. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to generate the set of write commit messages comprises by at least one of:

determining the new revision level by incrementing the most current revision level; and

determining the new revision level by performing a mathematical function on the most current revision level.

15. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to generate the write response by:

storing the encoded data slice corresponding to the slice name;

restricting access to the encoded data slice pending the write commit message; and

maintaining access to a previous revision level of the encoded data slice pending the write commit message.

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

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

send the set of write commit messages to the set of storage units.

Assignments (6)
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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2015
From: DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 036738/0241 →