IP Library Granted Patent US 9,471,427
Granted Patent B2
US 9,471,427 · App. 14/929,925 · Granted Oct 18, 2016

Utilizing a local area network memory and a dispersed storage network memory to access data

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,471,427
App. No.
14/929,925
Granted
Oct 18, 2016
Kind
B2
Abstract

A method includes storing, by non-local DSN memory, redundancy encoded data slices of a set of encoded data slices. The method includes storing, by each DS processing module, a copy of the decode threshold number of encoded data slices in local memory. The method includes receiving, by the plurality of DS processing modules, read requests for the set of encoded data slices from user devices. The method includes, in response to a read request, determining, by a DS processing module, that at least one encoded data slice is unavailable; retrieving, by the DS processing module, at least one of the redundancy encoded data slices from the non-local DSN memory; and processing, by the DS processing module, the read request based on the retrieved at least one of the redundancy encoded data slice and available encoded data slices of the local copy of the decode threshold number of encoded data slices.

Claims (64)

1. A method for use in a dispersed storage network (DSN) that includes a plurality of user devices and a plurality of dispersed storage (DS) modules, the method comprises:

storing, by non-local DSN memory, redundancy encoded data slices of a set of encoded data slices, wherein a data segment of a data object is dispersed storage error encoded into the set of encoded data slices, wherein a decode threshold number of encoded data slices is needed to recover the data segment, and wherein the redundancy encoded data slices corresponds to a total number of encoded data slices of the set of encoded data slices less the decode threshold number of encoded data slices;

storing, by each DS processing module of a plurality of DS processing modules, a copy of the decode threshold number of encoded data slices in local memory associated with a respective DS processing module;

receiving, by the plurality of DS processing modules, read requests for the set of encoded data slices from user devices of the plurality of user devices; and

in response to one of the read requests:

determining, by a DS processing module of the plurality of DS processing modules, that at least one encoded data slice of the copy of the decode threshold number of encoded data slices stored in a corresponding local memory of the DS processing module is unavailable;

retrieving, by the DS processing module, at least one of the redundancy encoded data slices from the non-local DSN memory; and

processing, by the DS processing module, the one of the read requests based on the retrieved at least one of the redundancy encoded data slices and available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

2. The method of claim 1 further comprises:

updating the copy of the decode threshold number of encoded data slices stored in the corresponding local memory by rebuilding each encoded data slice of the at least one unavailable encoded data slice based on the retrieved at least one of the redundancy encoded data slices and the available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

3. The method of claim 1 further comprises:

updating the copy of the decode threshold number of encoded data slices stored in the corresponding local memory by replacing the at least one unavailable encoded data slice with the retrieved at least one of the redundancy encoded data slices.

4. The method of claim 1 further comprises:

in response to another one of the read requests:

determining, by another DS processing module of the plurality of DS processing modules, that the copy of the decode threshold number of encoded data slices stored in the corresponding local memory of the DS processing module is available; and

processing, by the DS processing module, the another one of the read requests based on the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

5. The method of claim 1 further comprises:

updating the data segment to produce an updated data segment;

dispersed storage error encoding the updated data segment to produce an updated set of encoded data slices;

storing, by the non-local DSN memory, redundancy encoded data slices of the updated set of encoded data slices; and

storing, by each DS processing module of the plurality of DS processing modules, another copy of the decode threshold number of encoded data slices of the updated set of encoded data slices in the local memory associated with the respective DS processing module.

6. The method of claim 1 , wherein the processing the one of the read requests comprises:

decoding the retrieved at least one of the redundancy encoded data slices and the available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory to produce a recaptured data segment; and

sending the recaptured data segment to a user device of the plurality of user devices that issued the one of the read requests.

7. The method of claim 1 further comprises:

detecting a need for rebuilding one of the redundancy encoded data slices;

rebuilding, by one of the plurality of DS processing modules, the one of the redundancy encoded data slices based on the copy of the decode threshold number of encoded data slices stored in the local memory associated with the one of the plurality of DS processing modules; and

sending, by the one of the plurality of DS processing modules, the rebuilt redundancy encoded data slice to the non-local DSN memory for storage therein.

8. A non-transitory computer readable storage device comprises:

a first storage section storing operational instructions that, when executed by storage units of a dispersed storage network (DSN), causes the storage units to:

store redundancy encoded data slices of a set of encoded data slices, wherein a data segment of a data object is dispersed storage error encoded into the set of encoded data slices, wherein a decode threshold number of encoded data slices is needed to recover the data segment, and wherein the redundancy encoded data slices corresponds to a total number of encoded data slices of the set of encoded data slices less the decode threshold number of encoded data slices;

a second storage section storing operational instructions that, when executed by a plurality of dispersed storage (DS) processing modules of the DSN, causes each of the DS processing modules to:

store a copy of the decode threshold number of encoded data slices in local memory associated with a respective DS processing module; and

receive read requests for the set of encoded data slices from user devices of a plurality of user devices; and

a third storage section storing operational instructions that, when executed by a DS processing module of the plurality of DS processing modules of the DSN, causes the DS processing module to:

in response to one of the read requests:

determine that at least one encoded data slice of the copy of the decode threshold number of encoded data slices stored in a corresponding local memory of the DS processing module is unavailable;

retrieve at least one of the redundancy encoded data slices from a non-local DSN memory; and

process the one of the read requests based on the retrieved at least one of the redundancy encoded data slices and available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

9. The non-transitory computer readable storage device of claim 8 , wherein the third storage section further stores operational instructions that, when executed by the DS processing module, causes the DS processing module to:

update the copy of the decode threshold number of encoded data slices stored in the corresponding local memory by rebuilding each encoded data slice of the at least one unavailable encoded data slice based on the retrieved at least one of the redundancy encoded data slices and the available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

10. The non-transitory computer readable storage device of claim 8 , wherein the third storage section further stores operational instructions that, when executed by the DS processing module, causes the DS processing module to:

update the copy of the decode threshold number of encoded data slices stored in the corresponding local memory by replacing the at least one unavailable encoded data slice with the retrieved at least one of the redundancy encoded data slices.

11. The non-transitory computer readable storage device of claim 8 further comprises:

a fourth storage section storing operational instructions that, when executed by another DS processing module of the plurality of DS processing modules of the DSN, causes the other DS processing module to:

in response to another one of the read requests:

determine that the copy of the decode threshold number of encoded data slices stored in the corresponding local memory of the DS processing module is available; and

process the another one of the read requests based on the copy of the decode threshold number of encoded data slices stored in the corresponding local memory.

12. The non-transitory computer readable storage device of claim 8 further comprises:

a fourth storage section storing operational instructions that, when executed by a computing device of the DSN or by one of the plurality of DS processing modules, causes the computing device or the one of the plurality of DS processing modules to:

update the data segment to produce an updated data segment; and

dispersed storage error encode the updated data segment to produce an updated set of encoded data slices;

the first storage section further stores operational instructions that, when executed by the storage units, causes the storage units to:

store redundancy encoded data slices of the updated set of encoded data slices; and

the second storage section further stores operational instructions that, when executed by the plurality of DS processing modules, causes each of the DS processing modules to:

store another copy of the decode threshold number of encoded data slices of the updated set of encoded data slices in the local memory associated with the respective DS processing module.

13. The non-transitory computer readable storage device of claim 8 , wherein the third storage section further stores operational instructions that, when executed by the DS processing module, causes the DS processing module to processing the one of the read requests by:

decoding the retrieved at least one of the redundancy encoded data slices and the available encoded data slices of the copy of the decode threshold number of encoded data slices stored in the corresponding local memory to produce a recaptured data segment; and

sending the recaptured data segment to a user device of the plurality of user devices that issued the one of the read requests.

14. The non-transitory computer readable storage device of claim 8 further comprises:

a fourth storage section storing operational instructions that, when executed by a computing device of the DSN or by one of the plurality of DS processing modules, causes the computing device or the one of the plurality of DS processing modules to:

detect a need for rebuilding one of the redundancy encoded data slices;

rebuild the one of the redundancy encoded data slices based on the copy of the decode threshold number of encoded data slices stored in the local memory associated with the one of the plurality of DS processing modules; and

send the rebuilt redundancy encoded data slice to the non-local DSN memory for storage therein.

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 →