IP Library Granted Patent US 8,909,858
Granted Patent B2
US 8,909,858 · App. 13/343,449 · Granted Dec 9, 2014

Storing encoded data slices 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 8,909,858
App. No.
13/343,449
Granted
Dec 9, 2014
Kind
B2
Abstract

A method begins by a dispersed storage network (DSN) access module encoding a data segment to produce slices and sending temporary write requests to DSN storage modules, wherein the temporary write requests includes slices. In response to one of the temporary write requests, the method continues with a DSN storage module temporarily storing a slice to produce a temporarily stored slice and sending an indication of temporary storage of the slice. When a write threshold number of indications of temporary storage has been received by the DSN access module, the method continues with the DSN access module sending permanent write requests to DSN storage modules. In response to one of the permanent write requests, the method continues with the DSN storage module storing the temporarily stored slice in permanent memory and sending an indication of permanent storage of the slice.

Claims (63)

1. A method for execution by a dispersed storage network (DSN) system, the method comprises:

encoding, by a DSN access module, a data segment of data to produce a set of encoded data slices;

sending, by the DSN access module, at least a write threshold number of temporary write requests to at least a write threshold number of DSN storage modules, wherein the write threshold number of temporary write requests includes at least a write threshold number of the set of encoded data slices;

in response to one of the at least a write threshold number of temporary write requests:

temporarily storing, by a DSN storage module of the at least a write threshold number of DSN storage modules, an encoded data slice of the at least a write threshold number of the set of encoded data slices to produce a temporarily stored encoded data slice; and

sending, by the DSN storage module, an indication of temporary storage of the encoded data slice;

when a write threshold number of indications of temporary storage have been received, sending, by the DSN access module, at least a write threshold number of permanent write requests to the at least a write threshold number of DSN storage modules; and

in response to one of the at least a write threshold number of permanent write requests:

storing, by the DSN storage module, the temporarily stored encoded data slice in permanent memory; and

sending, by the DSN storage module, an indication of permanent storage of the encoded data slice.

2. The method of claim 1 further comprises:

temporarily storing, by the DSN access module, the set of encoded data slices to produce a set of temporarily stored encoded data slices; and

when a write threshold number of indications of permanent storage have been received, deleting, by the DSN access module, the set of temporarily stored encoded data slices.

3. The method of claim 1 further comprises:

when a write threshold number of indications of permanent storage have been received, sending, by the DSN access module, at least a write threshold number of finalize write requests to the at least a write threshold number of DSN storage modules; and

in response to one of the at least a write threshold number of finalize write requests:

determining, by the DSN access module, whether a previous revision of the encoded data slices is stored in the permanent memory; and

when the previous revision of the encoded data slices is stored in the permanent memory, updating, by the DSN access module, an availability status to indicate that the previous revision of the encoded data slice is unavailable.

4. The method of claim 3 further comprises:

deleting, by the DSN storage module, the temporarily stored encoded data slice.

5. The method of claim 1 further comprises:

when a write threshold number of indications of temporary storage have not been received, sending, by the DSN access module, a plurality of rollback messages to the at least a write threshold number of DSN storage modules; and

in response to one of the plurality of rollback messages, deleting, by the DSN storage module, the temporarily stored encoded data slice.

6. The method of claim 1 further comprises:

when a write threshold number of indications of permanent storage have not been received, sending, by the DSN access module, a plurality of undo messages to the at least a write threshold number of DSN storage modules; and

in response to one of the plurality of undo messages, deleting, by the DSN storage module, the temporarily stored encoded data slice from the permanent memory.

7. A dispersed storage network (DSN) access module comprises:

a first module operable to encode a data segment of data to produce a set of encoded data slices;

a second module operable to send at least a write threshold number of temporary write requests to at least a write threshold number of DSN storage modules, wherein the write threshold number of temporary write requests includes at least a write threshold number of the set of encoded data slices;

a third module operable to receive an indication of temporary storage of encoded data slices from at least some of the at least a write threshold number of DSN storage modules;

the second module is further operable to, when a write threshold number of indications of temporary storage have been received, send at least a write threshold number of permanent write requests to the at least a write threshold number of DSN storage modules; and

the third module is further operable to receive an indication of permanent storage of the encoded data slice from at least some of the at least a write threshold number of DSN storage modules.

8. The DSN access module of claim 7 further comprises:

a fifth module operable to temporarily store the set of encoded data slices to produce a set of temporarily stored encoded data slices; and

the third module is further operable to, when a write threshold number of indications of permanent storage have been received, delete the set of temporarily stored encoded data slices.

9. The DSN access module of claim 7 further comprises:

the second module further operable to, when a write threshold number of indications of permanent storage have been received, send at least a write threshold number of finalize write requests to the at least a write threshold number of DSN storage modules.

10. The DSN access module of claim 7 further comprises:

the second module is further operable to, when a write threshold number of indications of temporary storage have not been received, send a plurality of rollback messages to the at least a write threshold number of DSN storage modules.

11. The DSN access module of claim 7 further comprises:

the second module is further operable to, when a write threshold number of indications of permanent storage have not been received, send a plurality of undo messages to the at least a write threshold number of DSN storage modules.

12. A dispersed storage network (DSN) storage module comprises:

a first module operable to receive temporary write request that includes an encoded data slice of a set of encoded data slices, wherein a data segment of data was encoded in accordance with a dispersed storage error coding function to produce a set of encoded data slices;

in response to the temporary write request:

a second module is operable to temporarily store the encoded data slice to produce a temporarily stored encoded data slice; and

a third module is operable to send an indication of temporary storage of the encoded data slice;

the first module is further operable to receive a permanent write request regarding the temporarily stored encoded data slice; and

in response to the permanent write request:

the second module is further operable to store the temporarily stored encoded data slice in permanent memory; and

the third module is further operable to send an indication of permanent storage of the encoded data slice.

13. The DSN storage module of claim 12 further comprises:

the first module is further operable to receive a finalize write request; and

in response to the finalize write request, a fourth module is operable to:

determine whether a previous revision of the encoded data slices is stored in the permanent memory; and

update an availability status to indicate that the previous revision of the encoded data slice is unavailable.

14. The DSN storage module of claim 13 further comprises:

the second module is further operable to delete the temporarily stored encoded data slice.

15. The DSN storage module of claim 12 further comprises:

the first module is further operable to receive a rollback message; and

in response to the rollback message, the second module is operable to delete the temporarily stored encoded data slice.

16. The DSN storage module of claim 12 further comprises:

the first module is further operable to receive an undo message; and

in response to the undo message, the second module is operable to delete the temporarily stored encoded data slice from the permanent 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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2012
From: RESCH, JASON K.; GRUBE, GARY W.
To: CLEVERSAFE, INC.
Reel/Frame 027479/0400 →