IP Library Granted Patent US 10,387,250
Granted Patent B2
US 10,387,250 · App. 15/398,163 · Granted Aug 20, 2019

Recovering data from microslices in a dispersed storage network

Inventors: Jason K. Resch (Chicago, IL); Wesley Leggette (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/067G06F3/0619G06F3/0644G06F11/1088G06F11/1092G06F11/1464G06F2211/1028
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 10,387,250
App. No.
15/398,163
Granted
Aug 20, 2019
Kind
B2
Abstract

A method includes dispersed storage error encoding a data segment into a plurality of encoded micro slices in accordance with micro slice encoding parameters that include a micro slice width number and a micro slice decode threshold number. The micro slice decode threshold number of encoded micro slices is needed to recover the data segment. The method further includes arranging the plurality of encoded micro slices into a set of meta slices in accordance with meta slice encoding parameters that include a meta slice width number and a meta slice decode threshold number. The meta slice decode threshold number of encoded meta slices is needed to recover the micro slice decode threshold number of encoded micro slices. The method further includes sending the set of encoded meta slices to a set of storage units.

Claims (47)

1. A method comprises:

dispersed storage error encoding, by a computing device of a dispersed storage network (DSN), a data segment into a plurality of encoded micro slices in accordance with micro slice encoding parameters that include a micro slice width number and a micro slice decode threshold number, wherein the micro slice decode threshold number of encoded micro slices of the plurality of encoded micro slices is needed to recover the data segment;

arranging, by the computing device, the plurality of encoded micro slices into a set of meta slices in accordance with meta slice encoding parameters that include a meta slice width number and a meta slice decode threshold number and wherein the meta slice decode threshold number of encoded meta slices of the set of meta slices is needed to recover the micro slice decode threshold number of encoded micro slices; and

sending, by the computing device, the set of encoded meta slices to a set of storage units of the DSN.

2. The method of claim 1 further comprises:

determining, by the computing device, a storage unit performance value for each of the storage units in the set of storage units; and

generating, by the computing device, each meta slice of the set of meta slices to include a set of encoded micro slices of the plurality of encoded micro slices, wherein a first set of encoded micro slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number scaled based on the storage unit performance value of a first storage unit of the set of storage units.

3. The method of claim 1 further comprises:

determining, by the computing device, a storage unit performance value for each of the storage units in the set of storage units;

establishing, by the computing device, a read response percentage for each of the storage units based on the storage unit performance values to produce a set of read response percentages; and

sending, by the computing device, the set of read response percentages to the set of storage units.

4. The method of claim 3 further comprises:

receiving, by a first storage unit of the set of storage units, a read request regarding a first encoded meta slice of the set of encoded meta slices;

preparing, by the first storage unit, a first read response regarding the first meta slice to include a percentage of a first set of encoded micro slices based on a first read response percentage of the set of read response percentages; and

sending, by the first storage unit, the first read response to a requesting device of the DSN.

5. The method of claim 1 further comprises:

generating each meta slice of the set of meta slices to include a set of encoded micro slices of the plurality of encoded micro slices, wherein each set of encoded micro slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number.

6. The method of claim 1 further comprises:

receiving, by the set of storage units, a read request regarding the data segment, wherein each storage unit of the set of storage unit stores a corresponding one of the set of encoded meta slices, wherein each meta slice of the set of meta slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number;

determining, by each storage unit of the set of storage units, a read response number of encoded micro slices of the number of encoded micro slices of the corresponding one of the encoded micro slices based on a corresponding storage unit performance value; and

sending, by the set of storage units, respective read responses to a read requesting computing device, wherein the respective read responses includes the micro slice decode threshold number of encoded micro slices.

7. A computer readable nontransitory memory device comprises:

a first memory section that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:

dispersed storage error encode a data segment into a plurality of encoded micro slices in accordance with micro slice encoding parameters that include a micro slice width number and a micro slice decode threshold number, wherein the micro slice decode threshold number of encoded micro slices of the plurality of encoded micro slices is needed to recover the data segment;

a second memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

arrange the plurality of encoded micro slices into a set of meta slices in accordance with meta slice encoding parameters that include a meta slice width number and a meta slice decode threshold number and wherein the meta slice decode threshold number of encoded meta slices of the set of meta slices is needed to recover the micro slice decode threshold number of encoded micro slices; and

a third memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

send the set of encoded meta slices to a set of storage units of the DSN.

8. The computer readable memory device of claim 7 , wherein the second memory section further stores operational instructions that, when executed by the computing device, causes the computing device to

determine a storage unit performance value for each of the storage units in the set of storage units; and

generate each meta slice of the set of meta slices to include a set of encoded micro slices of the plurality of encoded micro slices, wherein a first set of encoded micro slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number scaled based on the storage unit performance value of a first storage unit of the set of storage units.

9. The computer readable memory device of claim 7 , wherein the second memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

determine a storage unit performance value for each of the storage units in the set of storage units;

establish a read response percentage for each of the storage units based on the storage unit performance values to produce a set of read response percentages; and

send the set of read response percentages to the set of storage units.

10. The computer readable memory device of claim 9 further comprises:

a fourth memory section that stores operational instructions that, when executed by a first storage unit of the set of storage units, causes the first storage unit to:

receive a read request regarding a first encoded meta slice of the set of encoded meta slices;

prepare a first read response regarding the first meta slice to include a percentage of a first set of encoded micro slices based on a first read response percentage of the set of read response percentages; and

send the first read response to a requesting device of the DSN.

11. The computer readable memory device of claim 7 , wherein the second memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

generate each meta slice of the set of meta slices to include a set of encoded micro slices of the plurality of encoded micro slices, wherein each set of encoded micro slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number.

12. The computer readable memory device of claim 9 further comprises:

a fourth memory section that stores operational instructions that, when executed by the set of storage units, causes each storage unit of the set of storage units to:

receive a read request regarding the data segment, wherein each storage unit of the set of storage unit stores a corresponding one of the set of encoded meta slices, wherein each meta slice of the set of meta slices includes a number of encoded micro slices based on the micro slice width number divided by the meta slice width number;

determine a read response number of encoded micro slices of the number of encoded micro slices of the corresponding one of the encoded macro slices based on a corresponding storage unit performance value; and

send respective read responses to a read requesting computing device, wherein the respective read responses includes the micro slice decode threshold number of encoded micro slices.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2017
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 040841/0805 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041247/0808 →
Continuity (3)
Continuation 14549253 · Nov 20, 2014
Provisional Application 61933953 · Jan 31, 2014
Related Publication 20170116079A1 · Apr 27, 2017
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176