IP Library Granted Patent US 10,437,678
Granted Patent B2
US 10,437,678 · App. 16/163,788 · Granted Oct 8, 2019

Updating an encoded data slice

Inventor: Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F11/1076H03M13/13H03M13/1515H03M13/373H03M13/616H04L67/1097G06F2211/104G06F2211/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,437,678
App. No.
16/163,788
Granted
Oct 8, 2019
Kind
B2
Abstract

A distributed storage (DS) processing unit distributes an initial set of encoded data slices and an initial parity slice, for storage in multiple DS units. The initial parity slice is associated with an initial encoded data slice stored in a first DS unit. The DS processing unit transmits an updated encoded data slice reflecting changes to the initial encoded data slice, and obtains, from the first DS unit, delta parity information associated with a delta parity slice. The delta parity slice reflects differences between parity values calculated using the updated data slice and the initial data slice. An updated parity slice is generated by performing an exclusive OR (XOR) operation on the initial parity slice and the delta parity slice. A message transmitted to a second DS unit, which currently stores the initial parity slice, directs the second DS unit to store the updated parity slice.

Claims (69)

1. A method comprising:

distributing, by a distributed storage (DS) processing unit, an initial set of encoded data slices for storage in a plurality of DS units, the initial set of encoded data slices including initial encoded data slices and initial parity slices, wherein initial data used to generate the initial set of encoded data slices can be reconstructed using fewer than all encoded data slices included in the initial set of encoded data slices;

receiving updated data reflecting changes to the initial data;

generating an updated encoded data slice from the updated data, the updated encoded data slice generated using an encoding function;

storing the updated encoded data slice in a first DS unit;

generating delta parity information based on the updated data, the initial data, and the encoding function;

generating updated parity slices by performing an additive operation, within a finite field, using the delta parity information and the initial parity slices; and

storing the updated parity slices in at least a second DS unit.

2. The method of claim 1 , further comprising:

transmitting an update-slice request from the DS processing unit to the first DS unit, the update-slice request including the delta parity information.

3. The method of claim 1 , wherein:

generating the delta parity information includes generating rebuilt partial parity slices.

4. The method of claim 1 , further comprising:

transmitting a message, from the DS processing unit, directing the second DS unit to store an updated parity slice, the message including information directing the second DS unit to generate the updated parity slice.

5. The method of claim 1 , wherein:

the first DS unit transmits the delta parity information to at least one of the DS processing unit and the second DS unit.

6. The method of claim 1 , wherein performing an additive operation within a finite field includes:

performing an exclusive OR (XOR) operation.

7. The method of claim 1 , wherein:

generating the delta parity information is performed using an encoding matrix associated with a systematic erasure code.

8. A distributed storage network (DSN) comprising:

a distributed storage (DS) processing unit coupled via a network to a plurality of DS units configured to store encoded data slices;

the DS processing unit including a processor and associated memory, and configured to:

distribute an initial set of encoded data slices for storage in a plurality of DS units, the initial set of encoded data slices including initial encoded data slices and initial parity slices, wherein initial data used to generate the initial set of encoded data slices can be reconstructed using fewer than all encoded data slices included in the initial set of encoded data slices;

receive updated data reflecting changes to the initial data;

generate an updated encoded data slice from the updated data, the updated encoded data slice generated using an encoding function, and reflecting changes to an initial encoded data slice stored in a first DS unit;

transmit the updated encoded data slice to the first DS unit;

the first DS unit configured to:

store the updated encoded data slice;

transmit delta parity information to at least one of the DS processing unit or a second DS unit; and

the DS processing unit further configured to:

transmit, to the second DS unit, a message directing the second DS unit to store an updated parity slice, the updated parity slice generated by performing an additive operation, within a finite field, using the delta parity information and an initial parity slice stored in the second DS unit.

9. The distributed storage network (DSN) of claim 8 , wherein the first DS unit is further configure to:

generate the delta parity information.

10. The distributed storage network (DSN) of claim 8 , wherein the DS processing unit is further configure to:

generate the delta parity information; and

transmit the delta parity information to at least one of the first DS unit and the second DS unit.

11. The distributed storage network (DSN) of claim 8 , wherein:

the delta parity information is generated based on rebuilt-partial parity slices.

12. The distributed storage network (DSN) of claim 8 , wherein the message directing the second DS unit to store the updated parity slice includes:

information directing the second DS unit to generate the updated parity slice by performing an additive operation, within a finite field, using the delta parity information and the initial parity slice.

13. The distributed storage network (DSN) of claim 8 , wherein:

the delta parity information is generated using an encoding matrix associated with a systematic erasure code.

14. The distributed storage network (DSN) of claim 8 , wherein performing an additive operation within a finite field includes:

performing an exclusive OR (XOR) operation.

15. A distributed storage (DS) processing unit comprising:

a computing core;

memory coupled to the computing core;

a network interface configured to couple the computing core to a plurality of DS units;

the DS processing unit configured to:

generate an initial set of encoded data slices for storage in a plurality of DS units, the initial set of encoded data slices including initial encoded data slices and initial parity slices, wherein initial data used to generate the initial set of encoded data slices can be reconstructed using fewer than all encoded data slices included in the initial set of encoded data slices;

transmit an initial encoded data slice to a first DS unit for storage;

transmit an initial parity slice to a second DS unit for storage, wherein the initial parity slice is associated with the initial encoded data slice;

receive updated data reflecting changes to the initial data;

generate an updated encoded data slice from the updated data, the updated encoded data slice generated using an encoding function;

transmit the updated encoded data slice in a first DS unit for storage;

obtain delta parity information generated from the updated data, the initial data, and the encoding function; and

transmit, to the second DS unit, a message directing the second DS unit to store an updated parity slice, the updated parity slice generated by performing an additive operation, within a finite field, using the delta parity information and the initial parity slice.

16. The distributed storage (DS) processing unit of claim 15 , further configured to:

obtain the delta parity information by generating the delta parity information.

17. The distributed storage (DS) processing unit of claim 15 , further configured to:

obtain the delta parity information from the first DS unit.

18. The distributed storage (DS) processing unit of claim 15 , wherein:

the delta parity information is generated based on rebuilt-partial parity slices.

19. The distributed storage (DS) processing unit of claim 15 , wherein the message directing the second DS unit to store the updated parity slice includes:

information directing the second DS unit to generate the updated parity slice by performing an additive operation, within a finite field, using the delta parity information and the initial parity slice.

20. The distributed storage (DS) processing unit of claim 15 , wherein:

the delta parity information is generated using an encoding matrix associated with a systematic erasure code; and

performing an additive operation within a finite field includes performing an exclusive OR (XOR) operation.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047212/0382 →
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176