IP Library Granted Patent US 9,501,355
Granted Patent B2
US 9,501,355 · App. 14/302,974 · Granted Nov 22, 2016

Storing data and directory information in a distributed 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,355
App. No.
14/302,974
Granted
Nov 22, 2016
Kind
B2
Abstract

A method begins with a processing module issuing a set of write requests regarding storing a set of encoded data slices in dispersed storage network (DSN) memory and confirming that at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory. When confirmed, the method continues with the processing module issuing a second set of write requests regarding storing a set of encoded directory slices in the DSN memory and confirming that at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory. When confirmed, the method continues with the processing module issuing write commit requests regarding the at least a write threshold number of encoded data slices and the at least a second write threshold number of encoded directory slices.

Claims (93)

1. A method for execution by a processing module, the method comprises:

issuing a set of write requests regarding storing a set of encoded data slices in dispersed storage network (DSN) memory, wherein a data segment of a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein a write request of the set of write requests includes a command to store an encoded data slice of the set of encoded data slices and to set a status of the encoded data slice as unreadable;

confirming that at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory:

issuing a second set of write requests regarding storing a set of encoded directory slices in the DSN memory, wherein directory information of the data segment is dispersed storage error encoded to produce the set of encoded directory slices, wherein a write request of the second set of write requests includes a command to store an encoded directory slice of the set of encoded directory slices and to set a status of the encoded directory slice as unreadable;

confirming that at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory, issuing write commit requests regarding the at least a write threshold number of encoded data slices and the at least a second write threshold number of encoded directory slices, wherein a write commit request of the write commit requests includes a command to change the status from unreadable to readable.

2. The method of claim 1 further comprises:

issuing the set of write requests to a first set of storage units of the DSN memory; and

issuing the second set of write requests to a second set of storage units of the DSN memory.

3. The method of claim 1 further comprises:

issuing the set of write requests to a set of storage units of the DSN memory; and

issuing the second set of write requests to the set of storage units of the DSN memory.

4. The method of claim 1 further comprises:

the write threshold number equaling the second write threshold number.

5. The method of claim 1 further comprises:

when it is not confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been stored in the DSN memory, issuing a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes a command to delete storage of the encoded data slice.

6. The method of claim 1 further comprises:

when it is not confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory:

issuing a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes at least one of: a command to delete storage of the encoded data slice and a command to delete storage of the encoded directory slice.

7. The method of claim 1 further comprises:

issuing the set of write requests, wherein each write request of the set of write requests includes a first transaction number;

issuing the second set of write requests, wherein each write request of the second set of write requests includes a second transaction number; and

issuing the write commit requests, wherein each write commit request of the write commit requests includes at least one of: the first transaction number and the second transaction number.

8. The method of claim 1 , wherein the confirming that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory comprises:

receiving a write response from a storage unit that successfully stored one of the set of encoded data slices; and

when a number of received write responses is equal to or greater than the write threshold number, indicating that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory.

9. The method of claim 1 , wherein the confirming that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory comprises:

receiving a write response from a storage unit that successfully stored one of the set of encoded directory slices; and

when a number of received write responses is equal to or greater than the second write threshold number, indicating that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory.

10. A non-transitory computer readable storage medium having accessible therefrom a set of instructions interpretable by a processing module, the set of instructions being configured to cause the processing module to carry out operations for:

issuing a set of write requests regarding storing a set of encoded data slices in dispersed storage network (DSN) memory, wherein a data segment of a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein a write request of the set of write requests includes a command to store an encoded data slice of the set of encoded data slices and to set a status of the encoded data slice as unreadable;

confirming that at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory:

issuing a second set of write requests regarding storing a set of encoded directory slices in the DSN memory, wherein directory information of the data segment is dispersed storage error encoded to produce the set of encoded directory slices, wherein a write request of the second set of write requests includes a command to store an encoded directory slice of the set of encoded directory slices and to set a status of the encoded directory slice as unreadable;

confirming that at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory, issuing write commit requests regarding the at least a write threshold number of encoded data slices and the at least a second write threshold number of encoded directory slices, wherein a write commit request of the write commit requests includes a command to change the status from unreadable to readable.

11. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

issuing the set of write requests to a first set of storage units of the DSN memory; and

issuing the second set of write requests to a second set of storage units of the DSN memory.

12. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

issuing the set of write requests to a set of storage units of the DSN memory; and

issuing the second set of write requests to the set of storage units of the DSN memory.

13. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

the write threshold number equaling the second write threshold number.

14. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

when it is not confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been stored in the DSN memory, issuing a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes a command to delete storage of the encoded data slice.

15. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

when it is not confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory:

issuing a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes at least one of: a command to delete storage of the encoded data slice and a command to delete storage of the encoded directory slice.

16. The storage medium of claim 10 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

issuing the set of write requests, wherein each write request of the set of write requests includes a first transaction number;

issuing the second set of write requests, wherein each write request of the second set of write requests includes a second transaction number; and

issuing the write commit requests, wherein each write commit request of the write commit requests includes at least one of: the first transaction number and the second transaction number.

17. The storage medium of claim 10 , wherein the set of instructions further causes the processing module to carry out operations for the confirming that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory by:

receiving a write response from a storage unit that successfully stored one of the set of encoded data slices; and

when a number of received write responses is equal to or greater than the write threshold number, indicating that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory.

18. The storage medium of claim 10 , wherein the set of instructions further causes the processing module to carry out operations for the confirming that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory by:

receiving a write response from a storage unit that successfully stored one of the set of encoded directory slices; and

when a number of received write responses is equal to or greater than the second write threshold number, indicating that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory.

19. A computing device comprises:

an interface;

memory; and

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

issue, via the interface, a set of write requests regarding storing a set of encoded data slices in dispersed storage network (DSN) memory, wherein a data segment of a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein a write request of the set of write requests includes a command to store an encoded data slice of the set of encoded data slices and to set a status of the encoded data slice as unreadable;

confirm that at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been temporarily stored in the DSN memory:

issue, via the interface, a second set of write requests regarding storing a set of encoded directory slices in the DSN memory, wherein directory information of the data segment is dispersed storage error encoded to produce the set of encoded directory slices, wherein a write request of the second set of write requests includes a command to store an encoded directory slice of the set of encoded directory slices and to set a status of the encoded directory slice as unreadable;

confirm that at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory; and

when confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory, issue, via the interface, write commit requests regarding the at least a write threshold number of encoded data slices and the at least a second write threshold number of encoded directory slices, wherein a write commit request of the write commit requests includes a command to change the status from unreadable to readable.

20. The computing device of claim 19 , wherein the processing module further functions to:

issue the set of write requests to a first set of storage units of the DSN memory; and

issue the second set of write requests to a second set of storage units of the DSN memory.

21. The computing device of claim 19 , wherein the processing module further functions to:

issue the set of write requests to a set of storage units of the DSN memory; and

issue the second set of write requests to the set of storage units of the DSN memory.

22. The computing device of claim 19 further comprises:

the write threshold number equaling the second write threshold number.

23. The computing device of claim 19 , wherein the processing module further functions to:

when it is not confirmed that the at least a write threshold number of encoded data slices of the set of encoded data slices have been stored in the DSN memory, issue, via the interface, a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes a command to delete storage of the encoded data slice.

24. The computing device of claim 19 , wherein the processing module further functions to:

when it is not confirmed that the at least a second write threshold number of encoded directory slices of the set of encoded directory slices have been temporarily stored in the DSN memory:

issue, via the interface, a set of rollback commands to the DSN memory, wherein a rollback command of the set of rollback commands includes at least one of: a command to delete storage of the encoded data slice and a command to delete storage of the encoded directory slice.

25. The computing device of claim 19 , wherein the processing module further functions to:

issue the set of write requests, wherein each write request of the set of write requests includes a first transaction number;

issue the second set of write requests, wherein each write request of the second set of write requests includes a second transaction number; and

issue the write commit requests, wherein each write commit request of the write commit requests includes at least one of: the first transaction number and the second transaction number.

26. The computing device of claim 19 , wherein the processing module further functions to confirm that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory by:

receiving, via the interface, a write response from a storage unit that successfully stored one of the set of encoded data slices; and

when a number of received write responses is equal to or greater than the write threshold number, indicating that the at least a write threshold number of encoded data slices have been temporarily stored in the DSN memory.

27. The computing device of claim 19 , wherein the processing module further functions to confirm that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory by:

receiving, via the interface, a write response from a storage unit that successfully stored one of the set of encoded directory slices; and

when a number of received write responses is equal to or greater than the second write threshold number, indicating that the at least a second write threshold number of encoded directory slices have been temporarily stored in the DSN memory.

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 Jul 20, 2014
From: RESCH, JASON K.; DHUSE, GREG; VOLVOVSKI, ILYA; BAPTIST, ANDREW; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 033347/0897 →