IP Library Granted Patent US 9,170,884
Granted Patent B2
US 9,170,884 · App. 14/453,241 · Granted Oct 27, 2015

Utilizing cached 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,170,884
App. No.
14/453,241
Granted
Oct 27, 2015
Kind
B2
Abstract

A method begins with a processing module of a dispersed storage network (DSN) executing a write operation to write a plurality of sets of encoded data slices to DSN memory, where the write operation includes temporarily storing encoded data slices in cache memory. The processing module receives a read request for a portion of the data object and determines whether a decode threshold number of encoded data slices of a set is stored in the cache memory. When less than the decode threshold number of encoded data slices is stored in the cache memory, the processing module retrieves encoded data slices from the DSN memory to obtain the decode threshold number of encoded data slices, decodes the decode threshold number of encoded data slices to recover a corresponding data segment, and outputs the recovered corresponding data segment.

Claims (74)

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

executing a write operation to write a plurality of sets of encoded data slices to DSN memory, wherein a data object is dispersed storage error encoded to produce the plurality of sets of encoded data slices and wherein the write operation includes temporarily storing encoded data slices of the plurality of sets of encoded data slices in cache memory; and

while executing the write operation:

receiving a read request for at least a portion of the data object;

identifying relevant sets of encoded data slices of the plurality of sets of encoded data slices based on the read request;

determining whether at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory;

when, for a set of encoded data slices of the relevant sets of encoded data slices, the at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory:

determining whether a decode threshold number of encoded data slices is stored in the cache memory;

when less than the decode threshold number of encoded data slices is stored in the cache memory, retrieving encoded data slices from the DSN memory to obtain the decode threshold number of encoded data slices;

decoding the decode threshold number of encoded data slices to recover a corresponding data segment; and

outputting the recovered corresponding data segment.

2. The method of claim 1 further comprises:

temporarily storing the decode threshold number of encode data slices for each set of the plurality of sets of encoded data slices.

3. The method of claim 1 further comprises:

temporarily storing the plurality of sets of encoded data slices.

4. The method of claim 1 further comprises:

issuing write commands to storage units of the DSN for writing the plurality of sets of encoded data slices to the DSN memory;

receiving confirmation from one of the storage units that an identified encoded data slice of the plurality of sets of encoded data slices has been stored in the DSN memory; and

in response to receiving the confirmation, deleting the identified encoded data slice from the cache memory.

5. The method of claim 1 further comprises:

the write operation includes temporarily storing the decode threshold number of encoded data slices for each set of the plurality of sets of encoded data slices for a specified period of time, wherein the specified period of time commences upon initiation of the write operation, and wherein the write operation is completed prior to expiration of the specified period of time; and

prior to expiration of the specified period of time, responding to read requests regarding the data object by retrieving encoded data slices from the cache memory, wherein the read requests include the read request.

6. 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 write operation to write a plurality of sets of encoded data slices to DSN memory, wherein a data object is dispersed storage error encoded to produce the plurality of sets of encoded data slices and wherein the write operation includes temporarily storing encoded data slices of the plurality of sets of encoded data slices in a cache memory; and

while executing the write operation:

receive a read request for at least a portion of the data object;

identify relevant sets of encoded data slices of the plurality of sets of encoded data slices based on the read request;

determine whether at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory;

when, for a set of encoded data slices of the relevant sets of encoded data slices, the at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory:

determine whether a decode threshold number of encoded data slices is stored in the cache memory;

when less than the decode threshold number of encoded data slices is stored in the cache memory, retrieve encoded data slices from the DSN memory to obtain the decode threshold number of encoded data slices;

decode the decode threshold number of encoded data slices to recover a corresponding data segment; and

output the recovered corresponding data segment.

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

temporarily store the decode threshold number of encode data slices for each set of the plurality of sets of encoded data slices.

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

temporarily store the plurality of sets of encoded data slices.

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

issue write commands to storage units of the DSN for writing the plurality of sets of encoded data slices to the DSN memory;

receive confirmation from one of the storage units that an identified encoded data slice of the plurality of sets of encoded data slices has been stored in the DSN memory; and

in response to receiving the confirmation, delete the identified encoded data slice from the cache memory.

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

temporarily store, as part of the write operation, the decode threshold number of encoded data slices for each set of the plurality of sets of encoded data slices for a specified period of time, wherein the specified period of time commences upon initiation of the write operation, and wherein the write operation is completed prior to expiration of the specified period of time; and

prior to expiration of the specified period of time, respond to read requests regarding the data object by retrieving encoded data slices from the cache memory, wherein the read requests include the read request.

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

an interface;

a cache memory; and

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

execute a write operation to write, via the interface, a plurality of sets of encoded data slices to DSN memory, wherein a data object is dispersed storage error encoded to produce the plurality of sets of encoded data slices and wherein the write operation includes temporarily storing encoded data slices of the plurality of sets of encoded data slices in the cache memory; and

while executing the write operation:

receive a read request for at least a portion of the data object;

identify relevant sets of encoded data slices of the plurality of sets of encoded data slices based on the read request;

determine whether at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory;

when, for a set of encoded data slices of the relevant sets of encoded data slices, the at least some encoded data slices of the relevant sets of encoded data slices are stored in the cache memory:

determine whether a decode threshold number of encoded data slices is stored in the cache memory;

when less than the decode threshold number of encoded data slices is stored in the cache memory, retrieve, via the interface, encoded data slices from the DSN memory to obtain the decode threshold number of encoded data slices;

decode the decode threshold number of encoded data slices to recover a corresponding data segment; and

output the recovered corresponding data segment.

12. The computing device of claim 11 , wherein the processing module further functions to:

temporarily store the decode threshold number of encode data slices for each set of the plurality of sets of encoded data slices.

13. The computing device of claim 11 , wherein the processing module further functions to:

temporarily store the plurality of sets of encoded data slices.

14. The computing device of claim 11 , wherein the processing module further functions to:

issue, via the interface, write commands to storage units of the DSN for writing the plurality of sets of encoded data slices to the DSN memory;

receive, via the interface, confirmation from one of the storage units that an identified encoded data slice of the plurality of sets of encoded data slices has been stored in the DSN memory; and

in response to receiving the confirmation, delete the identified encoded data slice from the cache memory.

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

temporarily store, as part of the write operation, the decode threshold number of encoded data slices for each set of the plurality of sets of encoded data slices for a specified period of time, wherein the specified period of time commences upon initiation of the write operation, and wherein the write operation is completed prior to expiration of the specified period of time; and

prior to expiration of the specified period of time, respond to read requests regarding the data object by retrieving encoded data slices from the cache memory, wherein the read requests include the read request.

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: GRUBE, GARY W.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033828/0449 →