Patentable/Patents/US-10496500
US-10496500

Preemptively reading extra encoded data slices

PublishedDecember 3, 2019
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A read request specifying particular data stored in a set of distributed storage (DS) units is received. The DS units store error encoded data slices in a dispersed manner, and a read threshold number of the slices are needed to recover the particular data. DS units that hold the error encoded data slices are identified, and a number of slice read requests predicted to fail to return a requested slice is estimated. A subset of DS units equal to a read threshold, plus an additional number of DS units determined based, at least in part, on the estimated number of slice read requests predicted to fail, is selected. Read slice requests are transmitted to the subset of DS units, so that even if some of the slice read requests fail, at least a read threshold number should succeed.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for use in a distributed storage network (DSN) including: receiving a read request specifying particular data stored in a set of distributed storage (DS) units included in a DSN as dispersed, error encoded data slices, wherein a read threshold number of the error encoded data slices are needed to recover the particular data; determining which DS units included in the set of DS units hold the error encoded data slices; determining an estimated number of slice read requests predicted to fail to return a requested slice; selecting a subset of DS units, from the set of DS units, to receive slice read requests associated with the particular data, the subset of DS units including a number of DS units equal to a read threshold plus an additional number of DS units determined based, at least in part, on the estimated number of slice read requests predicted to fail to return a requested slice; and transmitting read slice requests to the subset of DS units.

2

2. The method of claim 1 , further comprising: obtaining storage parameters associated with the set of DS units holding the error encoded data slices.

3

3. The method of claim 1 , further comprising: obtaining DS unit performance information corresponding to each DS unit included in the set of DS units.

4

4. The method of claim 1 , further comprising: determining an estimated number of slice read requests predicted to fail to return a requested slice on a per-DS unit basis.

5

5. The method of claim 1 , further comprising: determining a target performance level associated with the read request.

6

6. The method of claim 5 , further comprising: selecting a number of DS units to be included in the subset of DS units based, at least in part, on the target performance level.

7

7. The method of claim 1 , further comprising: selecting, for inclusion in the subset of DS units, a number of DS units equal to a read threshold plus at least the estimated number of slice read requests predicted to fail.

8

8. A method for use in a distributed storage network (DSN) including: receiving a read request specifying particular data stored in a set of distributed storage (DS) units included in a DSN as dispersed, error encoded data slices, wherein a read threshold number of the error encoded data slices are needed to recover the particular data; determining which of the set of DS units hold the error encoded data slices; obtain DS unit performance information corresponding to DS units included in the set of DS units; selecting, based at least in part on the DS unit performance information, a subset of DS units, from the set of DS units, to receive slice read requests associated with the particular data; and transmitting read slice requests to the subset of DS units.

9

9. The method of claim 8 , further comprising: obtaining storage parameters associated with the set of DS units holding the error encoded data slices.

10

10. The method of claim 8 , further comprising: obtaining DS unit performance information corresponding to each individual DS unit included in the set of DS units.

11

11. The method of claim 8 , further comprising: determining an estimated number of slice read requests predicted to fail to return a requested slice based, at least in part, on a historical percentage of total requests that fail to return a requested slice.

12

12. The method of claim 8 , further comprising: determining a target performance level associated with the read request.

13

13. The method of claim 12 , further comprising: selecting a number of DS units to be included in the subset of DS units based, at least in part, on the target performance level.

14

14. The method of claim 8 , further comprising: selecting, for inclusion in the subset of DS units, a number of DS units equal to a read threshold plus at least the estimated number of slice read requests predicted to fail.

15

15. A distributed storage network (DSN) memory including: a processor and associated memory; a network interface; distributed storage (DS) units coupled to the processor and associated memory via the network interface, the DS units configured to store encoded data slices, wherein a read threshold number of the encoded data slices are needed to recover data associated with the encoded data slices; the processor and associated memory configured to: receive a read request specifying particular data stored in a set of DS units as particular encoded data slices; determine which DS units included the set of DS units hold the particular encoded data slices; determine an estimated number of slice read requests predicted to fail to return a requested slice; select a subset of DS units, from the set of DS units, to receive slice read requests associated with the particular data, the subset of DS units including a number of DS units equal to a read threshold plus an additional number of DS units determined based, at least in part, on the estimated number of slice read requests predicted to fail to return a requested slice; and transmit read slice requests to the subset of DS units.

16

16. The distributed storage network (DSN) memory of claim 15 , wherein the processor and associated memory are further configured to: obtain storage parameters associated with the set of DS units holding the encoded data slices.

17

17. The distributed storage network (DSN) memory of claim 15 , wherein the processor and associated memory are further configured to: obtaining DS unit performance information corresponding to each DS unit included in the set of DS units.

18

18. The distributed storage network (DSN) memory of claim 15 , wherein the processor and associated memory are further configured to: determining an estimated number of slice read requests predicted to fail to return a requested slice on a per-DS unit basis.

19

19. The distributed storage network (DSN) memory of claim 15 , wherein the processor and associated memory are further configured to: determining a target performance level associated with the read request.

20

20. The distributed storage network (DSN) memory of claim 19 , wherein the processor and associated memory are further configured to: selecting a number of DS units to be included in the subset of DS units based, at least in part, on the target performance level.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 26, 2018

Publication Date

December 3, 2019

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Preemptively reading extra encoded data slices” (US-10496500). https://patentable.app/patents/US-10496500

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.