IP Library Granted Patent US 9,501,341
Granted Patent B2
US 9,501,341 · App. 14/481,892 · Granted Nov 22, 2016

Directory synchronization of 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,501,341
App. No.
14/481,892
Granted
Nov 22, 2016
Kind
B2
Abstract

A method begins by independently executing a first write transaction in a dispersed storage network (DSN) to a particular write verification step of a multiple step write process, wherein the first write transaction has a first transaction identifier. The method continues by independently executing a second write transaction in the DSN to the particular write verification step, wherein the second write transaction has a second transaction identifier, and wherein subject matter of the first write transaction is related to subject matter of the second write transaction. The method continues by dependently finalizing the multiple step write process for each of the first and second write transactions utilizing the first and second transaction identifiers when each of the first and second write transactions have reached the particular write verification step.

Claims (69)

1. A method for execution by a computing device, the method comprises:

independently executing a first write transaction in a dispersed storage network (DSN) to a particular write verification step of a multiple step write process, wherein the first write transaction has a first transaction identifier, the first write transaction includes a first set of write commands for a data segment that has been dispersed storage error encoded into a set of encoded data slices;

independently executing a second write transaction in the DSN to the particular write verification step, wherein the second write transaction has a second transaction identifier, the second write transaction includes a second set of write commands for directory information regarding the set of encoded data slices, wherein the directory information is dispersed storage error encoded into a set of encoded directory slices and wherein subject matter of the first write transaction is related to subject matter of the second write transaction; and

when each of the first and second write transactions have reached the particular write verification step, dependently finalizing the multiple step write process for each of the first and second write transactions utilizing the first and second transaction identifiers.

2. The method of claim 1 , wherein the multiple step write process further comprises:

a write initiate step that includes a set of write requests and a write threshold number of corresponding write responses;

a write commit step that includes a set of write commit requests and the write threshold number of corresponding write commit responses; and

a write finalize step that includes a set of write finalize commands, wherein the particular step is the write initiate step.

3. The method of claim 1 , wherein the multiple step write process further comprises:

a write initiate step that includes a set of write requests and a write threshold number of corresponding write responses;

a write commit step that includes a set of write commit requests and the write threshold number of corresponding write commit responses; and

a write finalize step that includes a set of write finalize commands, wherein the particular step is the write commit step.

4. The method of claim 1 , wherein the independently executing the first write transaction further comprises:

generating the first transaction identifier regarding storage of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

outputting a set of write request messages to dispersed storage (DS) units of the DSN, wherein each write request message of the set of write request messages includes the first transaction identifier and a corresponding one of the set of encoded data slices;

receiving write response messages from at least some of the DS units, wherein each of the write response messages includes a reference to the first transaction identifier; and

when at least a write threshold number of the write response messages have been received, commencing a commit step of the multiple step write process for the first write transaction.

5. The method of claim 4 , wherein the commencing the commit step for the first write transaction comprises:

outputting a plurality of data commit request messages regarding the set of encoded data slices to the DS units, wherein each of the plurality of data commit request messages includes the first transaction identifier.

6. The method of claim 1 , wherein the independently executing the second write transaction further comprises:

generating the second transaction identifier regarding storage of a set of encoded directory slices, wherein directory information is dispersed storage error encoded to produce a set of encoded directory slices;

outputting a second plurality of write request messages to DS units, wherein each of the second plurality of write request messages includes the second transaction identifier and a corresponding one of the set of encoded directory slices; and

when at least a second write threshold number of favorable second write response messages have been received from the DS units, commencing a commit step of the multiple step write process for the second write transaction.

7. The method of claim 6 , wherein the commencing the commit step for the second write transaction comprises:

outputting a plurality of directory commit request messages regarding the set of encoded directory slices to the DS units, wherein each of the plurality of directory commit request messages includes the second transaction identifier.

8. A computer comprises:

an interface;

memory; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

independently execute a first write transaction in a dispersed storage network (DSN) to a particular write verification step of a multiple step write process, wherein the first write transaction has a first transaction identifier, the first write transaction including a first set of write commands for a data segment that has been dispersed storage error encoded into a set of encoded data slices;

independently execute a second write transaction in the DSN to the particular write verification step, wherein the second write transaction has a second transaction identifier, the second write transaction including a second set of write commands for directory information regarding the set of encoded data slices, wherein the directory information is dispersed storage error encoded into a set of encoded directory slices, and wherein subject matter of the first write transaction is related to subject matter of the second write transaction; and

when each of the first and second write transactions have reached the particular write verification step, dependently finalize the multiple step write process for each of the first and second write transactions utilizing the first and second transaction identifiers.

9. The computer of claim 8 , wherein the processing module is further operable to:

output, via the interface, a write initiate step that includes a set of write requests and a write threshold number of corresponding write responses;

output, via the interface, a write commit step that includes a set of write commit requests and the write threshold number of corresponding write commit responses; and

output, via the interface, a write finalize step that includes a set of write finalize commands, wherein the particular step is the write initiate step.

10. The computer of claim 8 , wherein the processing module is further operable to:

output, via the interface, a write initiate step that includes a set of write requests and a write threshold number of corresponding write responses;

output, via the interface, a write commit step that includes a set of write commit requests and the write threshold number of corresponding write commit responses; and

output, via the interface, a write finalize step that includes a set of write finalize commands, wherein the particular step is the write commit step.

11. The computer of claim 8 , wherein the processing module is further operable to:

generate the first transaction identifier regarding storage of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

output, via the interface, a set of write request messages to dispersed storage (DS) units of the DSN, wherein each write request message of the set of write request messages includes the first transaction identifier and a corresponding one of the set of encoded data slices;

receive, via the interface, write response messages from at least some of the DS units, wherein each of the write response messages includes a reference to the first transaction identifier; and

when at least a write threshold number of the write response messages have been received, commence a commit step of the multiple step write process for the first write transaction.

12. The computer of claim 11 , wherein the processing module further functions to commence the commit step for the first write transaction by:

outputting, via the interface, a plurality of data commit request messages regarding the set of encoded data slices to the DS units, wherein each of the plurality of data commit request messages includes the first transaction identifier.

13. The computer of claim 8 , wherein the processing module further functions to independently execute the second write transaction by:

generating the second transaction identifier regarding storage of a set of encoded directory slices, wherein directory information is dispersed storage error encoded to produce a set of encoded directory slices;

outputting, via the interface, a second plurality of write request messages to DS units, wherein each of the second plurality of write request messages includes the second transaction identifier and a corresponding one of the set of encoded directory slices; and

when at least a second write threshold number of favorable second write response messages have been received from the DS units, commencing a commit step of the multiple step write process for the second write transaction.

14. The computer of claim 13 , wherein the processing module further functions to commence the commit step for the second write transaction by:

outputting, via the interface, a plurality of directory commit request messages regarding the set of encoded directory slices to the DS units, wherein each of the plurality of directory commit request messages includes the second transaction identifier.

15. A method for execution by a computing device, the method comprises:

independently executing a first write transaction in a dispersed storage network (DSN) to a particular write verification step of a multiple step write process, wherein the first write transaction has a first transaction identifier, the independently executing the first write transaction including:

generating the first transaction identifier regarding storage of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

outputting a set of write request messages to dispersed storage (DS) units of the DSN, wherein each write request message of the set of write request messages includes the first transaction identifier and a corresponding one of the set of encoded data slices;

receiving write response messages from at least some of the DS units, wherein each of the write response messages includes a reference to the first transaction identifier; and

when at least a write threshold number of the write response messages have been received, commencing a commit step of the multiple step write process for the first write transaction; and

independently executing a second write transaction in the DSN to the particular write verification step, wherein the second write transaction has a second transaction identifier, and wherein subject matter of the first write transaction is related to subject matter of the second write transaction; and

when each of the first and second write transactions have reached the particular write verification step, dependently finalizing the multiple step write process for each of the first and second write transactions utilizing the first and second transaction identifiers.

16. The method of claim 15 , wherein the commencing the commit step for the first write transaction comprises:

outputting a plurality of data commit request messages regarding the set of encoded data slices to the DS units, wherein each of the plurality of data commit request messages includes the first transaction identifier.

17. The method of claim 15 , wherein the independently executing the second write transaction further comprises:

generating the second transaction identifier regarding storage of a set of encoded directory slices, wherein directory information is dispersed storage error encoded to produce a set of encoded directory slices;

outputting a second plurality of write request messages to DS units, wherein each of the second plurality of write request messages includes the second transaction identifier and a corresponding one of the set of encoded directory slices; and

when at least a second write threshold number of favorable second write response messages have been received from the DS units, commencing a commit step of the multiple step write process for the second write transaction.

18. The method of claim 17 , wherein the commencing the commit step for the second write transaction comprises:

outputting a plurality of directory commit request messages regarding the set of encoded directory slices to the DS units, wherein each of the plurality of directory commit request messages includes the second transaction identifier.

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 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 →