IP Library Granted Patent US 9,229,824
Granted Patent B2
US 9,229,824 · App. 14/453,176 · Granted Jan 5, 2016

Caching rebuilt 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 9,229,824
App. No.
14/453,176
Granted
Jan 5, 2016
Kind
B2
Abstract

A method begins with a processing module of a computing device of a dispersed storage network (DSN) executing a rebuild function to produce a rebuilt encoded data slice for storage in a targeted storage unit of the DSN. When the targeted storage unit is currently unavailable, the method continues with the processing module storing the rebuilt encoded data slice in local memory of the computing device, recording storage of the rebuilt encoded data slice in the local memory, and recording that the targeted storage unit is currently unavailable. When the targeted storage unit is currently available, the method continues with the processing module sending the rebuilt encoded data slice to the targeted storage unit and recording storage of the rebuilt encoded data slice by the targeted storage unit.

Claims (93)

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

executing a rebuild function to produce a rebuilt encoded data slice for storage in a targeted storage unit of the DSN;

when the targeted storage unit is currently unavailable:

storing the rebuilt encoded data slice in local memory of the computing device;

recording storage of the rebuilt encoded data slice in the local memory; and

recording that the targeted storage unit is currently unavailable; and

when the targeted storage unit is currently available:

sending the rebuilt encoded data slice to the targeted storage unit; and

recording storage of the rebuilt encoded data slice by the targeted storage unit.

2. The method of claim 1 further comprises:

when the targeted storage unit is currently available:

storing the rebuilt encoded data slice in the local memory of the computing device; and

recording the storage of the rebuilt encoded data slice in the local memory.

3. The method of claim 1 , wherein the executing the rebuild function comprises:

retrieving a decode threshold number of encoded data slices of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

dispersed storage error decoding the decode threshold number of encoded data slices to reproduce the data segment; and

dispersed storage error encoding the reproduced data segment to produce the rebuilt encoded data slice.

4. The method of claim 1 further comprises:

when the targeted storage unit is currently unavailable and a data retrieval request is received, sending a read response that includes a copy of the rebuilt encoded data slice stored in the local memory.

5. The method of claim 1 , wherein the recording comprises:

creating an entry in a slice location table for the rebuilt encoded data slice, wherein the slice location table includes one or more fields from a list of fields that includes a slice identifying field, a storage location field, and a targeted storage unit status field.

6. The method of claim 1 further comprises:

when the targeted storage unit was unavailable and becomes available:

sending the rebuilt encoded data slice to the targeted storage unit; and

updating the recording the storage of the rebuilt encoded data slice to include storage by the targeted storage unit.

7. The method of claim 6 further comprises:

maintaining storage of the rebuilt encoded data slice in the local memory; and

updating the recording to include storage of the rebuilt encoded data slice in both of the local memory and the targeted storage unit.

8. A 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:

execute a rebuild function to produce a rebuilt encoded data slice for storage in a targeted storage unit of the DSN;

when the targeted storage unit is currently unavailable:

store the rebuilt encoded data slice in local memory of the one or more computing devices;

record storage of the rebuilt encoded data slice in the local memory; and

record that the targeted storage unit is currently unavailable; and

when the targeted storage unit is currently available:

send the rebuilt encoded data slice to the targeted storage unit; and

record storage of the rebuilt encoded data slice by the targeted storage unit.

9. The 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 computing devices of the DSN to:

when the targeted storage unit is currently available:

store the rebuilt encoded data slice in the local memory of the one or more computing devices; and

record the storage of the rebuilt encoded data slice in the local memory.

10. The computer readable storage medium of claim 8 , 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 execute the rebuild function by:

retrieving a decode threshold number of encoded data slices of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

dispersed storage error decoding the decode threshold number of encoded data slices to reproduce the data segment; and

dispersed storage error encoding the reproduced data segment to produce the rebuilt encoded data slice.

11. The 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 computing devices of the DSN to:

when the targeted storage unit is currently unavailable and a data retrieval request is received, send a read response that includes a copy of the rebuilt encoded data slice stored in the local memory.

12. The computer readable storage medium of claim 8 , 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 record by:

creating an entry in a slice location table for the rebuilt encoded data slice, wherein the slice location table includes one or more fields from a list of fields that includes a slice identifying field, a storage location field, and a targeted storage unit status field.

13. The 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 computing devices of the DSN to:

when the targeted storage unit was unavailable and becomes available:

send the rebuilt encoded data slice to the targeted storage unit; and

update the recording the storage of the rebuilt encoded data slice to include storage by the targeted storage unit.

14. The computer readable storage medium of claim 13 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:

maintain storage of the rebuilt encoded data slice in the local memory; and

update the recording to include storage of the rebuilt encoded data slice in both of the local memory and the targeted storage unit.

15. A computing device of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

execute a rebuild function to produce a rebuilt encoded data slice for storage in a targeted storage unit of the DSN;

when the targeted storage unit is currently unavailable:

store the rebuilt encoded data slice in the local memory;

record storage of the rebuilt encoded data slice in the local memory; and

record that the targeted storage unit is currently unavailable; and

when the targeted storage unit is currently available:

send, via the interface, the rebuilt encoded data slice to the targeted storage unit;

and

record storage of the rebuilt encoded data slice by the targeted storage unit.

16. The computing device of claim 15 , wherein the processing module further functions to:

when the targeted storage unit is currently available:

store the rebuilt encoded data slice in the local memory; and

record the storage of the rebuilt encoded data slice in the local memory.

17. The computing device of claim 15 , wherein the processing module functions to execute the rebuild function by:

retrieving, via the interface, a decode threshold number of encoded data slices of a set of encoded data slices, wherein a data segment was dispersed storage error encoded to produce the set of encoded data slices;

dispersed storage error decoding the decode threshold number of encoded data slices to reproduce the data segment; and

dispersed storage error encoding the reproduced data segment to produce the rebuilt encoded data slice.

18. The computing device of claim 15 , wherein the processing module further functions to:

when the targeted storage unit is currently unavailable and a data retrieval request is received, send, via the interface, a read response that includes a copy of the rebuilt encoded data slice stored in the local memory.

19. The computing device of claim 15 , wherein the processing module functions to record by:

creating an entry in a slice location table for the rebuilt encoded data slice, wherein the slice location table includes one or more fields from a list of fields that includes a slice identifying field, a storage location field, and a targeted storage unit status field.

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

when the targeted storage unit was unavailable and becomes available:

send, via the interface, the rebuilt encoded data slice to the targeted storage unit; and

update the recording the storage of the rebuilt encoded data slice to include storage by the targeted storage unit.

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

maintain storage of the rebuilt encoded data slice in the local memory; and

update the recording to include storage of the rebuilt encoded data slice in both of the local memory and the targeted storage unit.

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 Sep 26, 2014
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033828/0049 →