IP Library Granted Patent US 8,880,940
Granted Patent B2
US 8,880,940 · App. 14/042,844 · Granted Nov 4, 2014

Pessimistic data reading 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,880,940
App. No.
14/042,844
Granted
Nov 4, 2014
Kind
B2
Abstract

A method begins by a processing module receiving a data retrieval request and determining a read threshold number of dispersed storage (DS). The method continues with the processing module sending read request messages to DS units and receiving encoded data slices to produce received encoded data slices. The method continues with the processing module determining an incremental number of encoded data slices based on the number of received encoded data slices, determining an incremental number of DS units, and sending a read request message to each of the incremental number of DS units when the number of received encoded data slices compares unfavorably to a decode threshold number. The method continues with the processing module dispersed storage error decoding the received encoded data slices to produce data when the number of received encoded data slices compares favorably to the decode threshold number of encoded data slices.

Claims (96)

1. A method comprises:

receiving a data retrieval request;

determining a read threshold number of encoded data slices in response to the data retrieval request;

sending read request messages regarding the read threshold number of encoded data slices to storage units of a dispersed storage network;

entering a loop, wherein the loop includes:

receiving encoded data slices of the read threshold number of encoded data slices within a time period to produce received encoded data slices;

when a number of received encoded data slices compares unfavorably to a decode threshold number:

determining an incremental number of encoded data slices based on the number of received encoded data slices and the decode threshold number;

sending a read request message regarding the incremental number of encoded data slices to other storage units of the dispersed storage network; and

repeating the loop; and

when the number of received encoded data slices compares favorably to the decode threshold number of encoded data slices, exiting the loop; and

dispersed storage error decoding the received encoded data slices to recapture a data segment of data.

2. The method of claim 1 , wherein the read threshold number comprises at least one of:

the read threshold number is equal to the decode threshold; and

the read threshold number is greater than the decode threshold and less than a pillar width.

3. The method of claim 1 , wherein the determining of the read threshold number of encoded data slices is based on at least one of:

a read threshold number;

a data identifier (ID);

a user ID;

error coding dispersal storage function parameters;

storage unit performance history;

one or more storage unit queries;

a virtual DSN address to physical location table lookup;

a list;

a vault lookup;

a command;

a predetermination;

a message;

a source name; and

a slice name.

4. The method of claim 1 , wherein the time period comprises:

a dynamic time duration that is based on at least one of a list, a performance indicator, and a reliability indicator.

5. The method of claim 1 , wherein the determining an incremental number of encoded data slices as at least one of:

the difference between the decode threshold number and the number of received encoded data slices;

the difference between the read threshold number and the number of received encoded data slices; and

the difference between a pillar width number and the number of received encoded data slices.

6. The method of claim 1 , wherein the determining of the incremental number of encoded data slice is based on at least one of:

identifying a previously responding storage unit;

identifying a previously non-responding storage unit;

identifying a storage unit associated with a timeout indication;

a list;

a vault lookup;

a command;

a predetermination;

a message;

a source name; and

a slice name.

7. A computer comprises:

an interface; and

a processing module operable to:

receive, via the interface, a data retrieval request;

determine a read threshold number of encoded data slices in response to the data retrieval request;

send read request messages regarding the read threshold number of encoded data slices to storage units of a dispersed storage network;

enter a loop, wherein the loop includes:

receive encoded data slices of the read threshold number of encoded data slices within a time period to produce received encoded data slices;

when a number of received encoded data slices compares unfavorably to a decode threshold number:

determine an incremental number of encoded data slices based on the number of received encoded data slices and the decode threshold number;

send a read request message regarding the incremental number of encoded data slices to other storage units of the dispersed storage network; and

repeat the loop; and

when the number of received encoded data slices compares favorably to the decode threshold number of encoded data slices, exit the loop; and

dispersed storage error decode the received encoded data slices to recapture a data segment of data.

8. The computer of claim 7 , wherein the read threshold number comprises at least one of:

the read threshold number is equal to the decode threshold; and

the read threshold number is greater than the decode threshold and less than a pillar width.

9. The computer of claim 7 , wherein the processing module further functions to determine the read threshold number of encoded data slices based on at least one of:

a read threshold number;

a data identifier (ID);

a user ID;

error coding dispersal storage function parameters;

storage unit performance history;

one or more storage unit queries;

a virtual DSN address to physical location table lookup;

a list;

a vault lookup;

a command;

a predetermination;

a message;

a source name; and

a slice name.

10. The computer of claim 7 , wherein the time period comprises:

a dynamic time duration that is based on at least one of a list, a performance indicator, and a reliability indicator.

11. The computer of claim 7 , wherein the processing module further functions to determine the incremental number of encoded data slices as at least one of:

the difference between the decode threshold number and the number of received encoded data slices;

the difference between the read threshold number and the number of received encoded data slices; and

the difference between a pillar width number and the number of received encoded data slices.

12. The computer of claim 7 , wherein the processing module determines the incremental number of encoded data slices based on at least one of:

identifying a previously responding storage unit;

identifying a previously non-responding storage unit;

identifying a storage unit associated with a timeout indication;

a list;

a vault lookup;

a command;

a predetermination;

a message;

a source name; and

a slice name.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →