IP Library Granted Patent US 8,706,980
Granted Patent B2
US 8,706,980 · App. 12/767,390 · Granted Apr 22, 2014

Method and apparatus for slice partial rebuilding 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,706,980
App. No.
12/767,390
Granted
Apr 22, 2014
Kind
B2
Abstract

A dispersed storage system includes a plurality of storage units that each include a partial rebuild grid module. The partial rebuild grid module includes partial rebuilding functionality to reconstruct one of a plurality of encoded data slices wherein the plurality of encoded data slices are generated from a data segment based on an error encoding dispersal function. In the partial rebuilding process, a data slice is rebuilt by combining in any order slice partials generated from at least a threshold number T of the plurality of data slices.

Claims (38)

1. A first storage unit in a dispersed storage network, comprises:

a network interface for interfacing with one or more of a plurality of additional storage units in the dispersed storage network; and

a grid module operably coupled to:

receive a partial rebuild request that identifies an identified data slice of a plurality of encoded data slices, wherein the plurality of encoded data slices are generated from a data segment based on an error encoding dispersal function;

de-slice the identified data slice to generate a portion of an encoded data segment;

decode the portion of the encoded data segment to generate a portion of a decoded data segment, wherein decoding the portion of the encoded data segment includes multiplying a vector S′ generated from the portion of the encoded data segment with a T×T matrix A′ to generate the portion of the decoded data segment, wherein the matrix A′ includes a number T of columns and T number of rows, wherein T equals the number of the plurality of encoded data slices needed to reconstruct the data segment based on the error encoding dispersal function;

encode the portion of the decoded data segment to generate an encoded slice partial; and

transmit the encoded slice partial to one of the plurality of additional storage units.

2. A first storage unit in a dispersed storage network, comprises:

a network interface for interfacing with one or more of a plurality of additional storage units in the dispersed storage network; and

a grid module operably coupled to:

receive a partial rebuild request that identifies an identified data slice of a plurality of encoded data slices, wherein the plurality of encoded data slices are generated from a data segment based on an error encoding dispersal function;

de-slice the identified data slice to generate a portion of an encoded data segment;

decode the portion of the encoded data segment to generate a portion of a decoded data segment; and

encode the portion of the decoded data segment to generate the encoded slice partial by multiplying a vector D generated from the portion of the decoded data segment with a X×T matrix A, wherein the matrix A includes a number X of rows equal to the number X of plurality of encoded data slices and includes a number T of columns equal to the number T of the plurality of encoded data slices needed to reconstruct the data segment based on the error encoding dispersal function.

3. The first storage unit of claim 2 , wherein one row in the X×T matrix A corresponding to the identified slice includes positive numbers and other rows include zeros.

4. The first storage unit of claim 2 , wherein the grid module is further operably coupled to:

receive additional encoded slice partials from one or more additional storage units located at a same site with the first storage unit;

determine a partial slice sum from the encoded slice partial and the additional encoded slice partials; and

transmit the partial slice sum to one of the plurality of additional storage units.

5. A method for partial rebuilding in a dispersed storage network, comprising:

receiving a partial rebuild request that identifies an identified data slice of a plurality of encoded data slices, wherein the plurality of encoded data slices are generated from a data segment based on an error encoding dispersal function;

generating an encoded slice partial from the identified data slice by:

de-slicing the identified data slice to generate a portion of an encoded data segment;

multiplying the portion of the encoded data segment with a R×T matrix A′ to generate a portion of the decoded data segment, wherein the matrix A′ includes a number R of rows equal to the number R of plurality of encoded data slices and includes a number T of columns equal to the number T of the plurality of encoded data slices needed to reconstruct the data segment based on the error encoding dispersal function; and

encoding the portion of the decoded data segment to generate the encoded slice partial; and

transmitting the encoded slice partial to one of the plurality of additional storage units.

6. The method of claim 5 further comprising:

receiving additional encoded slice partials from one or more additional storage units located at a same site with the first storage unit;

determining a partial slice sum from the encoded slice partial and the additional encoded slice partials; and

transmitting the partial slice sum to one of the plurality of additional storage units.

7. The method of claim 5 , wherein column of the R×T matrix A′ includes positive numbers in at least the number T of the number R of the rows, wherein a row corresponding the identified slice is a zero.

8. A method for partial rebuilding in a dispersed storage network, comprising:

receiving a partial rebuild request that identifies an identified data slice of a plurality of encoded data slices, wherein the plurality of encoded data slices are generated from a data segment based on an error encoding dispersal function;

generating an encoded slice partial from the identified data slice, wherein generating the encoded slice partial includes:

de-slicing the identified data slice to generate a portion of an encoded data segment;

decoding the portion of the encoded data segment to generate a portion of a decoded data segment; and

encoding the portion of the decoded data segment to generate the encoded slice partial, wherein encoding the portion of the decoded data segment includes multiplying the portion of the decoded data segment with a R×T matrix A, wherein the matrix A includes a number R of rows equal to the number R of plurality of encoded data slices and includes a number T of columns equal to the number T of the plurality of encoded data slices needed to reconstruct the data segment based on the error encoding dispersal function.

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 Apr 26, 2010
From: DHUSE, GREG; BAPTIST, ANDREW; MARK, ZACHARY J.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: CLEVERSAFE, INC.
Reel/Frame 024289/0765 →