IP Library Granted Patent US 8,448,044
Granted Patent B2
US 8,448,044 · App. 13/097,357 · Granted May 21, 2013

Retrieving data from a dispersed storage network in accordance with a retrieval threshold

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,448,044
App. No.
13/097,357
Granted
May 21, 2013
Kind
B2
Abstract

A method begins by a processing module determining a retrieval threshold for retrieving a set of encoded data slices from a dispersed storage network (DSN), wherein the set of encoded data slices represents data encoded using a dispersed storage error encoding function having a pillar width of “n”, a decode threshold of “k”, and an encoding ratio of n−k>k and wherein the retrieval threshold is in accordance with the encoding ratio. The method continues with the processing module issuing data retrieval requests to the DSN for the set of encoded data slices and receiving encoded data slices of the set of encoded data slices to produce received encoded data slices. The method continues with the processing module decoding the received encoded data slices to recapture the data when a number of received encoded data slices compares favorably to the retrieval threshold.

Claims (55)

1. A method comprises:

determining a retrieval threshold for retrieving a set of encoded data slices from a dispersed storage network (DSN), wherein the set of encoded data slices represents data encoded using a dispersed storage error encoding function having a pillar width of “n”, a decode threshold of “k”, and an encoding ratio of n−k>k and wherein the retrieval threshold is in accordance with the encoding ratio;

issuing data retrieval requests to the DSN for the set of encoded data slices;

receiving encoded data slices of the set of encoded data slices to produce received encoded data slices; and

when a number of received encoded data slices compares favorably to the retrieval threshold, decoding the received encoded data slices to recapture the data.

2. The method of claim 1 , where the determining the retrieval threshold comprises:

determining whether at least a write threshold number of the set of encoded data slices have a desired revision level;

when the at least the write threshold number of the set of encoded data slices have the desired revision level, establishing the retrieval threshold based on the pillar width, the write threshold, and a first constant; and

when the at least the write threshold number of the set of encoded data slices does not have the desired revision level, establishing the retrieval threshold based on the pillar width, the decode threshold, and a second constant.

3. The method of claim 1 further comprises:

determining that the number of received encoded data slices compares favorably to the retrieval threshold by:

determining whether at least a decode threshold number of the received encoded data slices have a revision number corresponding to a desired revision level; and

when the at least the decode threshold number of the received encoded data slices have the revision number corresponding to the desired revision level, indicating a favorable comparison.

4. The method of claim 3 further comprises:

when the at least the decode threshold number of the received encoded data slices does not have the revision number corresponding to the desired revision level, determining whether the at least the decode threshold number of the received encoded data slices have a revision number corresponding to a second desired revision level; and

when the at least the decode threshold number of the received encoded data slices have the revision number corresponding to the second desired revision level, indicating a favorable comparison.

5. The method of claim 3 further comprises:

when the at least the decode threshold number of the received encoded data slices does not have the revision number corresponding to the desired revision level, determining whether at least one encoded data slice of the set of encoded data slices is unreceived and accessible;

when the at least one encoded data slice of the set of encoded data slices is unreceived and accessible, reissuing the data retrieval requests to the DSN for the at least one encoded data slice;

receiving one or more of the at least one encoded data slice to produce additionally received encoded data slices; and

when a number of the received encoded data slices and the additionally received encoded data slices compares favorably to the retrieval threshold, decoding the received encoded data slices to recapture the data.

6. The method of claim 5 , wherein the determining whether at least one encoded data slice of the set of encoded data slices is unreceived and accessible comprises:

determining a deficiency number of encoded data slices based on a difference between the decode threshold number and a number of the received encoded data slices that have the revision number corresponding to the desired revision level;

determining whether at least the deficiency number of encoded data slices is unreceived and is accessible;

when the at least the deficiency number of encoded data slices is unreceived and is accessible, indicating that the at least one encoded data slice of the set of encoded data slices is unreceived and accessible; and

when the at least the deficiency number of encoded data slices is not unreceived or is not accessible, indicating that the at least one encoded data slice of the set of encoded data slices is not unreceived or is not accessible.

7. A computer comprises:

an interface;

a memory; and

a processing module operable to:

determine a retrieval threshold for retrieving a set of encoded data slices from a dispersed storage network (DSN), wherein the set of encoded data slices represents data encoded using a dispersed storage error encoding function having a pillar width of “n”, a decode threshold of “k”, and an encoding ratio of n−k>k and wherein the retrieval threshold is in accordance with the encoding ratio;

issue, via the interface, data retrieval requests to the DSN for the set of encoded data slices;

receive, via the interface, encoded data slices of the set of encoded data slices to produce received encoded data slices; and

when a number of received encoded data slices compares favorably to the retrieval threshold, decode the received encoded data slices to recapture the data.

8. The computer of claim 7 , where the processing module functions to determine the retrieval threshold by:

determining whether at least a write threshold number of the set of encoded data slices have a desired revision level;

when the at least the write threshold number of the set of encoded data slices have the desired revision level, establishing the retrieval threshold based on the pillar width, the write threshold, and a first constant; and

when the at least the write threshold number of the set of encoded data slices does not have the desired revision level, establishing the retrieval threshold based on the pillar width, the decode threshold, and a second constant.

9. The computer of claim 7 , wherein the processing module further functions to:

determine that the number of received encoded data slices compares favorably to the retrieval threshold by:

determining whether at least a decode threshold number of the received encoded data slices have a revision number corresponding to a desired revision level; and

when the at least the decode threshold number of the received encoded data slices have the revision number corresponding to the desired revision level, indicating a favorable comparison.

10. The computer of claim 9 , wherein the processing module further functions to:

when the at least the decode threshold number of the received encoded data slices does not have the revision number corresponding to the desired revision level, determine whether the at least the decode threshold number of the received encoded data slices have a revision number corresponding to a second desired revision level; and

when the at least the decode threshold number of the received encoded data slices have the revision number corresponding to the second desired revision level, indicate a favorable comparison.

11. The computer of claim 9 , wherein the processing module further functions to:

when the at least the decode threshold number of the received encoded data slices does not have the revision number corresponding to the desired revision level, determine whether at least one encoded data slice of the set of encoded data slices is unreceived and accessible;

when the at least one encoded data slice of the set of encoded data slices is unreceived and accessible, reissue, via the interface, the data retrieval requests to the DSN for the at least one encoded data slice;

receive, via the interface, one or more of the at least one encoded data slice to produce additionally received encoded data slices; and

when a number of the received encoded data slices and the additionally received encoded data slices compares favorably to the retrieval threshold, decode the received encoded data slices to recapture the data.

12. The computer of claim 11 , wherein the processing module functions to determine whether at least one encoded data slice of the set of encoded data slices is unreceived and accessible by:

determining a deficiency number of encoded data slices based on a difference between the decode threshold number and a number of the received encoded data slices that have the revision number corresponding to the desired revision level;

determining whether at least the deficiency number of encoded data slices is unreceived and is accessible;

when the at least the deficiency number of encoded data slices is unreceived and is accessible, indicating that the at least one encoded data slice of the set of encoded data slices is unreceived and accessible; and

when the at least the deficiency number of encoded data slices is not unreceived or is not accessible, indicating that the at least one encoded data slice of the set of encoded data slices is not unreceived or is not accessible.

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 May 2, 2011
From: DHUSE, GREG; VOLVOVSKI, ILYA; BAPTIST, ANDREW; VAS, SEBASTIEN; MARK, ZACHARY J.
To: CLEVERSAFE, INC.
Reel/Frame 026208/0105 →