IP Library Granted Patent US 10,013,191
Granted Patent B2
US 10,013,191 · App. 15/221,198 · Granted Jul 3, 2018

Encoding data for storage in a dispersed storage network

Inventor: Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/064G06F3/067G06F3/0611G06F3/0622G06F3/0637G06F3/0644G06F3/0659G06F3/0665G06F3/0689G06F11/1076G06F11/1092G06F11/3034G06F11/3409G06F12/1408H04L67/1097G06F2212/1052H03M13/1515
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,013,191
App. No.
15/221,198
Granted
Jul 3, 2018
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) processing unit that includes a processor includes receiving a data object for storage in the DSN via a network. Available storage unit data is generated, indicating a subset of a plurality of storage units of the DSN that corresponds to a plurality of available storage units. A shortened encoding matrix is generated based on an original encoding matrix and the available storage unit data. A size of the shortened encoding matrix is based on a number of storage units in the plurality of available storage units. A plurality of encoded slices is generated, each for transmission to one of the plurality of available storage units via the network, by performing an encoding function on the shortened encoding matrix and the data object.

Claims (35)

1. A method for execution by a dispersed storage and task (DST) processing unit that includes a processor, the method comprises:

receiving a data object for storage in a distributed storage network (DSN) via a network;

generating available storage unit data indicating a subset of a plurality of storage units of the DSN that corresponds to a plurality of available storage units;

generating a shortened encoding matrix based on an original encoding matrix and the available storage unit data, wherein a size of the shortened encoding matrix is based on a number of storage units in the plurality of available storage units; and

generating a plurality of encoded slices, each for transmission to one of the plurality of available storage units via the network, by performing an encoding function on the shortened encoding matrix and the data object.

2. The method of claim 1 , wherein the plurality of available storage units is a proper subset of the plurality of storage units, wherein the shortened encoding matrix is generated by eliminating at least one row from the original encoding matrix, and wherein the at least one row corresponds to at least one unavailable storage unit not included in the subset.

3. The method of claim 1 , wherein the shortened encoding matrix includes at least a number of rows corresponding to one of: a decode threshold number or a write threshold number.

4. The method of claim 1 , wherein generating the available storage unit data includes comparing the number of storage units in the plurality of available storage units to at least one of: a decode threshold number or a write threshold number, and wherein the shortened encoding matrix and plurality of encoded slices are generated when the available storage unit data indicates that the number of storage units in the plurality of available storage units is greater than or equal to the at least one of: the decode threshold number or the write threshold number.

5. The method of claim 4 , further comprising generating a low storage unit availability notification for transmission via the network when the available storage unit data indicates that the number of storage units in the plurality of available storage units is less than the at least one of: the decode threshold number or the write threshold number, indicating that the DST processing unit will forego storage of the data object.

6. The method of claim 1 , wherein generating the plurality of encoded slices includes dividing the data object into at least one data segment, generating a data matrix corresponding to each data segment, multiplying each data matrix by the shorting encoding matrix to produce at least one coded matrix, and extracting the plurality of encoded slices from the at least one coded matrix.

7. The method of claim 1 , further comprising receiving storage unit status data via the network, wherein generating the available storage unit data is based on the storage unit status data.

8. The method of claim 7 , further comprising generating a plurality of status requests for transmission to a plurality of storage units, and wherein the storage unit status data is received from the plurality of storage units in response to the plurality of status requests.

9. The method of claim 1 , wherein generating the available storage unit data includes at least one of: interpreting results of a test or interpreting results of a previous access.

10. A processing system of a dispersed storage and task (DST) processing unit comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to:

receive a data object for storage in a distributed storage network (DSN) via a network;

generate available storage unit data indicating a subset of a plurality of storage units of the DSN that corresponds to a plurality of available storage units;

generate a shortened encoding matrix based on an original encoding matrix and the available storage unit data, wherein a size of the shortened encoding matrix is based on a number of storage units in the plurality of available storage units; and

generate a plurality of encoded slices, each for transmission to one of the plurality of available storage units via the network, by performing an encoding function on the shortened encoding matrix and the data object.

11. The processing system of claim 10 , wherein the plurality of available storage units is a proper subset of the plurality of storage units, wherein the shortened encoding matrix is generated by eliminating at least one row from the original encoding matrix, and wherein the at least one row corresponds to at least one unavailable storage unit not included in the subset.

12. The processing system of claim 10 , wherein the shortened encoding matrix includes at least a number of rows corresponding to one of: a decode threshold number or a write threshold number.

13. The processing system of claim 10 , wherein generating the available storage unit data includes comparing the number of storage units in the plurality of available storage units to at least one of: a decode threshold number or a write threshold number, and wherein the shortened encoding matrix and plurality of encoded slices are generated when the available storage unit data indicates that the number of storage units in the plurality of available storage units is greater than or equal to the at least one of: the decode threshold number or the write threshold number.

14. The processing system of claim 13 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to generate a low storage unit availability notification for transmission via the network when the available storage unit data indicates that the number of storage units in the plurality of available storage units is less than the at least one of: the decode threshold number or the write threshold number, indicating that the DST processing unit will forego storage of the data object.

15. The processing system of claim 10 , wherein generating the plurality of encoded slices includes dividing the data object into at least one data segment, generating a data matrix corresponding to each data segment, multiplying each data matrix by the shorting encoding matrix to produce at least one coded matrix, and extracting the plurality of encoded slices from the at least one coded matrix.

16. The processing system of claim 10 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to receive storage unit status data via the network, wherein generating the available storage unit data is based on the storage unit status data.

17. The processing system of claim 16 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to generate a plurality of status requests for transmission to a plurality of storage units, and wherein the storage unit status data is received from the plurality of storage units in response to the plurality of status requests.

18. The processing system of claim 10 , wherein generating the available storage unit data includes at least one of: interpreting results of a test or interpreting results of a previous access.

19. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to:

receive a data object for storage in the DSN via a network;

generate available storage unit data indicating a subset of a plurality of storage units of the DSN that corresponds to a plurality of available storage units;

generate a shortened encoding matrix based on an original encoding matrix and the available storage unit data, wherein a size of the shortened encoding matrix is based on a number of storage units in the plurality of available storage units; and

generate a plurality of encoded slices, each for transmission to one of the plurality of available storage units via the network, by performing an encoding function on the shortened encoding matrix and the data object.

20. The non-transitory computer readable storage medium of claim 19 , wherein the plurality of available storage units is a proper subset of the plurality of storage units, wherein the shortened encoding matrix is generated by eliminating at least one row from the original encoding matrix, and wherein the at least one row corresponds to at least one unavailable storage unit not included in the subset.

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 Jul 27, 2016
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039273/0566 →
Continuity (2)
Provisional Application 62211975 · Aug 31, 2015
Related Publication 20170060684A1 · Mar 2, 2017