IP Library Granted Patent US 9,471,426
Granted Patent B2
US 9,471,426 · App. 14/819,113 · Granted Oct 18, 2016

Sending a zero information gain formatted encoded data slice

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 9,471,426
App. No.
14/819,113
Granted
Oct 18, 2016
Kind
B2
Abstract

A method includes encoding, in accordance with a dispersed storage error encoding function, a data segment of a data object to produce a set of encoded data slices. The method further includes creating a subset of encoded data slices, wherein the subset of encoded data slices includes less than the decode threshold number of encoded data slices. The method further includes creating one or more partial encoded data slices representing one or more encoded data slices of the set of encoded data slices that are not within the subset of encoded data slices based on the dispersed storage error encoding function and at least some of the encoded data slices of the subset of encoded data slices. The method further includes outputting the subset of encoded data slices to storage units of the DSN and outputting the one or more partial encoded data slices to another device of the DSN.

Claims (39)

1. A method for execution by a computing device affiliated with a dispersed storage network (DSN), the method comprises:

encoding, in accordance with a dispersed storage error encoding function, a data segment of a data object to produce a set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to recreate the data segment;

creating a subset of encoded data slices from the set of encoded data slices, wherein the subset of encoded data slices includes less than the decode threshold number of encoded data slices;

creating one or more partial encoded data slices representing one or more encoded data slices of the set of encoded data slices that are not within the subset of encoded data slices based on the dispersed storage error encoding function and at least some of the encoded data slices of the subset of encoded data slices;

outputting the subset of encoded data slices to storage units of the DSN; and

outputting the one or more partial encoded data slices to another device of the DSN, wherein the one or more encoded data slices are recoverable from the one or more partial encoded data slices and one or more properties of the dispersed storage error encoding function and wherein the subset of encoded data slices and the one or more encoded data slices produces at least the decode threshold number of encoded data slices.

2. The method of claim 1 , wherein the outputting the one or more partial encoded data slices comprises:

outputting the one or more partial encoded data slices to one or more other storage units of the DSN.

3. The method of claim 1 , wherein creating a partial encoded data slice of the one or more partial encoded data slices comprises:

generating a decoding matrix for a corresponding encoded data slice of the one or more encoded data slices based on an encoding matrix of the dispersed storage error coding function; and

generating the partial encoded data slice based on the decoding matrix and on a corresponding encoded data slice of the subset of encoded data slices.

4. The method of claim 3 , wherein the generating the decoding matrix comprises:

obtaining the encoding matrix;

reducing the encoding matrix to produce a square matrix that exclusively includes rows associated with the corresponding encoded data slice and the subset of encoded data slices; and

inverting the square matrix to produce the decoding matrix.

5. The method of claim 3 , wherein the generating the partial encoded data slice comprises:

encoding the corresponding encoded data slice of the subset of encoded data slices using the decoding matrix to produce a vector; and

matrix multiplying the vector by a row of the encoding matrix associated with the corresponding encoded data slice.

6. A computing device comprises:

an interface;

memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

encode, in accordance with a dispersed storage error encoding function, a data segment of a data object to produce a set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to recreate the data segment;

create a subset of encoded data slices from the set of encoded data slices, wherein the subset of encoded data slices includes less than the decode threshold number of encoded data slices;

create one or more partial encoded data slices representing one or more encoded data slices of the set of encoded data slices that are not within the subset of encoded data slices based on the dispersed storage error encoding function and at least some of the encoded data slices of the subset of encoded data slices;

output, via the interface, the subset of encoded data slices to storage units of a dispersed storage network (DSN); and

output, via the interface, the one or more partial encoded data slices to another device of the DSN, wherein the one or more encoded data slices are recoverable from the one or more partial encoded data slices and one or more properties of the dispersed storage error encoding function and wherein the subset of encoded data slices and the one or more encoded data slices produces at least the decode threshold number of encoded data slices.

7. The computing device of claim 6 , wherein the outputting the one or more partial encoded data slices comprises:

outputting the one or more partial encoded data slices to one or more other storage units of the DSN.

8. The computing device of claim 6 , wherein the processing module is further operable to create a partial encoded data slice of the one or more partial encoded data slices by:

generating a decoding matrix for a corresponding encoded data slice of the one or more encoded data slices based on an encoding matrix of the dispersed storage error coding function; and

generating the partial encoded data slice based on the decoding matrix and on a corresponding encoded data slice of the subset of encoded data slices.

9. The computing device of claim 8 , wherein the processing module is further operable to generate the decoding matrix by:

obtaining the encoding matrix;

reducing the encoding matrix to produce a square matrix that exclusively includes rows associated with the corresponding encoded data slice and the subset of encoded data slices; and

inverting the square matrix to produce the decoding matrix.

10. The computing device of claim 8 , wherein the processing module is further operable to generate the partial encoded data slice by:

encoding the corresponding encoded data slice of the subset of encoded data slices using the decoding matrix to produce a vector; and

matrix multiplying the vector by a row of the encoding matrix associated with the corresponding encoded data slice.

Assignments (4)
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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2016
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 038296/0668 →