IP Library Granted Patent US 10,169,125
Granted Patent B2
US 10,169,125 · App. 15/075,946 · Granted Jan 1, 2019

Re-encoding data 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 10,169,125
App. No.
15/075,946
Granted
Jan 1, 2019
Kind
B2
Abstract

A method begins by a storage unit partially decoding a first encoded data slice of a set of encoded data slices in accordance with previous dispersed storage error encoding parameters to produce a partially decoded first encoded data slice that is stored by another storage unit. The method continues with the storage unit partially re-encoding the partially decoded first encoded data slice in accordance with updated dispersed storage error encoding parameters to produce a first partially re-encoded data slice that is used to create a new first encoded data slice of a new set of encoded data slices.

Claims (72)

1. A method comprises:

determining to create a new set of encoded data slices based on an unfavorable storage performance level associated with one or more storage units (SUs) within a dispersed storage network (DSN);

partially decoding, by a storage unit (SU) of the DSN, a first encoded data slice of a set of encoded data slices in accordance with previous dispersed storage error encoding parameters having a previous threshold number to produce a partially decoded first encoded data slice, wherein the first encoded data slice is stored by another SU of the DSN and is transmitted from the another SU via the DSN and received via an interface of the SU that is configured to interface and communicate with the DSN, and wherein a data segment of a data object is encoded into the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters;

partially re-encoding, by the SU, the partially decoded first encoded data slice in accordance with updated dispersed storage error encoding parameters having an updated threshold number to produce a first partially re-encoded data slice, wherein the first partially re-encoded data slice is used to create a new first encoded data slice of the new set of encoded data slices that corresponds to the data segment being dispersed storage error encoded in accordance with the updated dispersed storage error encoding parameters, wherein

the partially re-encoding comprises:

obtaining a new encoding matrix corresponding to the updated dispersed storage error encoding parameters;

reducing the new encoding matrix based on a matrix position corresponding to the new first encoded data slice of the new set of encoded data slices that corresponds to the data segment being dispersed storage error encoded in accordance with the updated dispersed storage error encoding parameters; and

matrix multiplying the reduced new encoding matrix with the partially decoded first encoded data slice to produce the first partially re-encoded data slice;

receiving, by the SU via the DSN and via the interface of the SU, a plurality of second partially re-encoded data slices from a sub-set of other SUs of the DSN, wherein the plurality of second partially re-encoded data slices is created in accordance with the updated dispersed storage error encoding parameters based on partially re-encoding by the sub-set of other SUs of the DSN; and

generating, by the SU, a new second encoded data slice of the new set of encoded data slices from the plurality of second partially re-encoded data slices.

2. The method of claim 1 , wherein the partially decoding comprises:

obtaining a decoding matrix corresponding to the previous dispersed storage error encoding parameters;

generating a reduced data matrix based on a second encoded data slice of the set of encoded data slices that correspond to the data segment being encoded in accordance with the previous dispersed storage error encoding parameters; and

matrix multiplying the decoding matrix and the reduced data matrix to produce the partially decoded first encoded data slice.

3. The method of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

4. The method of claim 1 , wherein the receiving the plurality of second partially re-encoded data slices comprises:

receiving one of the plurality of second partially re-encoded data slices from a first other SU of the sub-set of other SUs, wherein the first other SU generated the one of the plurality of second partially re-encoded data slices by:

partially decoding a second encoded data slice of the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters and an encoded data slice of the set of encoded data slices stored by the first other SU to produce a first partially decoded second encoded data slice; and

partially re-encoding the first partially decoded second encoded data slice in accordance with the updated dispersed storage error encoding parameters to produce the one of the plurality of second partially re-encoded data slices; and

receiving another one of the plurality of second partially re-encoded data slices from a second other SU of the sub-set of other SUs, wherein the second other SU generated the another one of the plurality of second partially re-encoded data slices by:

partially decoding the second encoded data slice of the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters and an encoded data slice of the set of encoded data slices stored by the second other SU to produce a second partially decoded second encoded data slice; and

partially re-encoding the second partially decoded second encoded data slice in accordance with the updated dispersed storage error encoding parameters to produce the another one of the plurality of second partially re-encoded data slices.

5. The method of claim 1 , wherein the generating the new second encoded data slice comprises:

performing an arithmetic function on the plurality of second partially re-encoded data slices to produce the new second encoded data slice.

6. The method of claim 5 , wherein the arithmetic function comprises at least one of:

an exclusive OR function;

an addition function;

a subtraction function;

a multiplication function; or

a division function.

7. The method of claim 1 further comprises:

storing, by a set of SUs of the DSN, the set of encoded data slices, wherein the another SU is in the set of SUs; and

receiving, by the SU, the plurality of second partially re-encoded data slices from the sub-set of other SUs, wherein the sub-set of other SUs is in the set of SUs.

8. The method of claim 1 further comprises:

determining to create the new set of encoded data slices based on a change request from the previous threshold number to the updated threshold number.

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

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:

determine to create a new set of encoded data slices based on an unfavorable storage performance level associated with one or more storage units (SUs) within a dispersed storage network (DSN);

partially decode, by a storage unit (SU) of the DSN, a first encoded data slice of a set of encoded data slices in accordance with previous dispersed storage error encoding parameters having a previous threshold number to produce a partially decoded first encoded data slice, wherein the first encoded data slice is stored by another SU of the DSN and is transmitted from the another SU via the DSN and received via an interface of the SU that is configured to interface and communicate with the DSN, and wherein a data segment of a data object is encoded into the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters;

partially re-encode, by the SU, the partially decoded first encoded data slice in accordance with updated dispersed storage error encoding parameters having an updated threshold number to produce a first partially re-encoded data slice, wherein the first partially re-encoded data slice is used to create a new first encoded data slice of the new set of encoded data slices that corresponds to the data segment being dispersed storage error encoded in accordance with the updated dispersed storage error encoding parameters, wherein the partially re-encode, by the SU, is performed by:

obtaining a new encoding matrix corresponding to the updated dispersed storage error encoding parameters;

reducing the new encoding matrix based on a matrix position corresponding to the new first encoded data slice of the new set of encoded data slices that corresponds to the data segment being dispersed storage error encoded in accordance with the updated dispersed storage error encoding parameters; and

matrix multiplying the reduced new encoding matrix with the partially decoded first encoded data slice to produce the first partially re-encoded data slice;

receive, by the SU via the DSN and via the interface of the SU, a plurality of second partially re-encoded data slices from a sub-set of other SUs of the DSN, wherein the plurality of second partially re-encoded data slices is created in accordance with the updated dispersed storage error encoding parameters based on partially re-encoding by the sub-set of other SUs of the DSN; and

generate, by the SU, a new second encoded data slice of the new set of encoded data slices from the plurality of second partially re-encoded data slices.

10. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to partially decode by:

obtaining a decoding matrix corresponding to the previous dispersed storage error encoding parameters;

generating a reduced data matrix based on a second encoded data slice of the set of encoded data slices that correspond to the data segment being encoded in accordance with the previous dispersed storage error encoding parameters; and

matrix multiplying the decoding matrix and the reduced data matrix to produce the partially decoded first encoded data slice.

11. The non-transitory computer readable storage medium of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

12. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to receive the plurality of second partially re-encoded data slices by:

receiving one of the plurality of second partially re-encoded data slices from a first other SU of the sub-set of other SUs, wherein the first other SU generated the one of the plurality of second partially re-encoded data slices by:

partially decoding a second encoded data slice of the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters and an encoded data slice of the set of encoded data slices stored by the first other SU to produce a first partially decoded second encoded data slice; and

partially re-encoding the first partially decoded second encoded data slice in accordance with the updated dispersed storage error encoding parameters to produce the one of the plurality of second partially re-encoded data slices; and

receiving another one of the plurality of second partially re-encoded data slices from a second other SU of the sub-set of other SUs, wherein the second other SU generated the another one of the plurality of second partially re-encoded data slices by:

partially decoding the second encoded data slice of the set of encoded data slices in accordance with the previous dispersed storage error encoding parameters and an encoded data slice of the set of encoded data slices stored by the second other SU to produce a second partially decoded second encoded data slice; and

partially re-encoding the second partially decoded second encoded data slice in accordance with the updated dispersed storage error encoding parameters to produce the another one of the plurality of second partially re-encoded data slices.

13. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to generate the new second encoded data slice by:

performing an arithmetic function on the plurality of second partially re-encoded data slices to produce the new second encoded data slice.

14. The non-transitory computer readable storage medium of claim 13 , wherein the arithmetic function comprises at least one of:

an exclusive OR function;

an addition function;

a subtraction function;

a multiplication function; or

a division function.

15. The non-transitory computer readable storage medium of claim 9 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

store, by a set of SUs of the DSN, the set of encoded data slices, wherein the another SU is in the set of SUs; and

receive, by the SU, the plurality of second partially re-encoded data slices from the sub-set of other SUs, wherein the sub-set of other SUs is in the set of SUs.

16. The non-transitory computer readable storage medium of claim 9 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

determine to create the new set of encoded data slices based on a change request from the previous threshold number to the updated threshold number.

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 Jun 30, 2016
From: RESCH, JASON K.; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 039055/0298 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
Cited By (1)
US 12,380,101