IP Library Granted Patent US 10,069,915
Granted Patent B2
US 10,069,915 · App. 14/986,279 · Granted Sep 4, 2018

Storing data in a dispersed storage network

Inventors: Greg Dhuse (Chicago, IL); Andrew Baptist (Mt. Pleasant, WI); Ilya Volvovski (Chicago, IL); Ethan S. Wozniak (Park Ridge, IL); Jason K. Resch (Chicago, IL)
Assignee: International Business Machines Corporation
H04L67/1097G06F3/067G06F17/30362
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,069,915
App. No.
14/986,279
Granted
Sep 4, 2018
Kind
B2
Abstract

A method begins with a set of storage units receiving a plurality of sets of non-locking write requests from a plurality of computing devices. The method continues with each storage unit storing an encoded data slice of a respective one of the non-locking write requests of each set and sending a write response regarding the respective one of the non-locking write requests. The method continues with a computing device determining whether a threshold number of write responses regarding a corresponding one of the plurality of sets of non-locking write requests has an expected ordering indication. When the threshold number of write responses has the expected ordering indication, the method continues with the computing device sending a set of write finalize requests to the set of storage units to facilitate finalizing storing the set of encoded data slices of the corresponding one of the plurality of sets of non-locking write requests.

Claims (66)

1. A method comprises:

receiving, by a set of storage units, a plurality of sets of non-locking write requests from a plurality of computing devices, wherein each set of non-locking write requests includes a set of encoded data slices and a set of slice names, wherein, from set to set of non-locking write requests, the set of slices names are substantially identical;

storing, by each storage unit of the set of storage units, an encoded data slice of a respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests;

sending, by each storage unit of the set of storage units, a write response regarding the respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests to produce, per storage unit, a group of write responses and wherein, each write response in the group of write responses includes an ordering indication;

receiving, by a computing device of the plurality of computing devices, a set of write responses from the set of storage units regarding a corresponding one of the plurality of sets of non-locking write requests;

determining, by the computing device, whether a threshold number of write responses of the set of write responses has an expected ordering indication; and

when the threshold number of write responses has the expected ordering indication:

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

finalizing storing, by the set of storage units, the set of encoded data slices corresponding to the corresponding one of the plurality of sets of non-locking write requests regardless of the ordering indication of the set of write responses.

2. The method of claim 1 , wherein the non-locking write request comprises at least one of:

an instruction to store an encoded data slice associated with the non-locking write request; and

an instruction to keep the stored encoded data slice hidden until a write finalize command is received for the stored encoded data slice.

3. The method of claim 1 further comprises:

determining, in accordance with a storage protocol of a dispersed storage network (DSN), an expected revision level for the set of slices names of the corresponding one of the plurality of sets of non-locking write requests, wherein the ordering indication corresponds to a revision level;

comparing the expected revision level with the revision level included in each write response of the set of write responses; and

when the threshold number of write responses has the expected revision level, indicating that the threshold number of write responses has the expected ordering indication.

4. The method of claim 1 further comprises:

receiving, by the set of storage units, a plurality of sets of locking write requests from the plurality of computing devices, wherein each set of locking write requests includes a second set of encoded data slices and a second set of slice names, wherein, from set to set of locking write requests, the second set of slices names are substantially identical;

storing, by each storage unit of the set of storage units, an encoded data slice from one of the plurality of sets of locking write requests based on an ordering of receiving corresponding write requests from each of the plurality of sets of locking write requests;

sending, by each storage unit of the set of storage units, a locking write response regarding the respective stored encoded data slice of the second set of encoded data slices to a corresponding one of the plurality of computing devices;

receiving, by the computing device, a set of locking write responses from the set of storage units regarding a corresponding one of the plurality of sets of locking write requests; and

when the set of locking write responses includes at least the threshold number, sending, by the computing device, write commit requests to storage units of the set of storage units that provided one of the set of locking write responses.

5. The method of claim 1 further comprises:

deleting, by the set of storage units, another set of encoded data slices corresponding to another one of the plurality of sets of non-locking write requests.

6. The method of claim 1 further comprises:

when the threshold number of write responses does not have the expected ordering indication, issuing, by the computing device, an undo command.

7. The method of claim 1 further comprises:

determining, by a storage unit of the set of storage units, a revision level for each respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests;

associating, by the storage unit, the revision levels with slices names of the encoded data slices of associated with each respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests to includes a representation of the revision levels; and

storing, by the storage units, the encoded data slices based on the slices names and the revision levels.

8. 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 a dispersed storage network (DSN), causes the one or more processing modules to:

receive, by a set of storage units, a plurality of sets of non-locking write requests from a plurality of computing devices, wherein each set of non-locking write requests includes a set of encoded data slices and a set of slice names, wherein, from set to set of non-locking write requests, the set of slices names are substantially identical;

store, by each storage unit of the set of storage units, an encoded data slice of a respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests;

send, by each storage unit of the set of storage units, a write response regarding the respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests to produce, per storage unit, a group of write responses and wherein, each write response in the group of write responses includes an ordering indication;

receive, by a computing device of the plurality of computing devices, a set of write responses from the set of storage units regarding a corresponding one of the plurality of sets of non-locking write requests;

determine, by the computing device, whether a threshold number of write responses of the set of write responses has an expected ordering indication; and

when the threshold number of write responses has the expected ordering indication:

send, by the computing device, a set of write finalize requests to the set of storage units; and

finalize storing, by the set of storage units, the set of encoded data slices corresponding to the corresponding one of the plurality of sets of non-locking write requests regardless of the ordering indication of the set of write responses.

9. The non-transitory computer readable storage medium of claim 8 , wherein the non-locking write request comprises at least one of:

an instruction to store an encoded data slice associated with the non-locking write request; and

an instruction to keep the stored encoded data slice hidden until a write finalize command is received for the stored encoded data slice.

10. The non-transitory computer readable storage medium of claim 8 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 processing modules of the DSN to:

determine, in accordance with a storage protocol of the DSN an expected revision level for the set of slices names of the corresponding one of the plurality of sets of non-locking write requests, wherein the ordering indication corresponds to a revision level;

compare the expected revision level with the revision level included in each write response of the set of write responses; and

when the threshold number of write responses has the expected revision level, indicate that the threshold number of write responses has the expected ordering indication.

11. The non-transitory computer readable storage medium of claim 8 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 processing modules of the DSN to:

receive, by the set of storage units, a plurality of sets of locking write requests from the plurality of computing devices, wherein each set of locking write requests includes a second set of encoded data slices and a second set of slice names, wherein, from set to set of locking write requests, the second set of slices names are substantially identical;

store, by each storage unit of the set of storage units, an encoded data slice from one of the plurality of sets of locking write requests based on an ordering of receiving corresponding write requests from each of the plurality of sets of locking write requests;

send, by each storage unit of the set of storage units, a locking write response regarding the respective stored encoded data slice of the second set of encoded data slices to a corresponding one of the plurality of computing devices;

receive, by the computing device, a set of locking write responses from the set of storage units regarding a corresponding one of the plurality of sets of locking write requests; and

when the set of locking write responses includes at least the threshold number, send, by the computing device, write commit requests to storage units of the set of storage units that provided one of the set of locking write responses.

12. The non-transitory computer readable storage medium of claim 8 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 processing modules of the DSN to:

delete, by the set of storage units, another set of encoded data slices corresponding to another one of the plurality of sets of non-locking write requests.

13. The non-transitory computer readable storage medium of claim 8 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 processing modules of the DSN to:

when the threshold number of write responses does not have the expected ordering indication, issue, by the computing device, an undo command.

14. The non-transitory computer readable storage medium of claim 8 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 processing modules of the DSN to:

determine, by a storage unit of the set of storage units, a revision level for each respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests;

associate, by the storage unit, the revision levels with slices names of the encoded data slices of associated with each respective one of the non-locking write requests of each of the plurality of sets of non-locking write requests to includes a representation of the revision levels; and

store, by the storage units, the encoded data slices based on the slices names and the revision levels.

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 Jan 30, 2017
From: DHUSE, GREG; BAPTIST, ANDREW; VOLVOVSKI, ILYA; WOZNIAK, ETHAN S.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 041116/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
Continuity (2)
Provisional Application 62121667 · Feb 27, 2015
Related Publication 20160255150A1 · Sep 1, 2016
Cited By (1)
US 12,469,033