IP Library Granted Patent US 10,120,574
Granted Patent B2
US 10,120,574 · App. 15/357,622 · Granted Nov 6, 2018

Reversible data modifications within DS units

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,120,574
App. No.
15/357,622
Granted
Nov 6, 2018
Kind
B2
Abstract

A method includes sending a set of destructive modification requests to a set of storage units regarding a set of encoded data slices. The method further includes determining, by each storage unit of a decode threshold number of storage units of the set of storage units, whether to preserve a respective corresponding one of the decode threshold number of encoded data slices prior to executing a corresponding one of the set of destructive modification requests. When determined to preserve the respective corresponding one of the decode threshold number of encoded data slices, determining, by a first storage unit of the decode threshold number of storage units, to flag a first encoded data slice of the decode threshold number of encoded data slices or temporarily store a copy of the first encoded data slice. When determined to flag the first encoded data slice, flagging the first encoded data slice as preserved.

Claims (58)

1. A method comprises:

sending, by a computing device of a dispersed storage network (DSN), a set of destructive modification requests to a set of storage units of the DSN regarding a set of encoded data slices, wherein a data segment of a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is needed to recover the data segment;

determining, by each storage unit of a decode threshold number of storage units of the set of storage units, whether to preserve a respective corresponding one of the decode threshold number of encoded data slices prior to executing a corresponding one of the set of destructive modification requests;

when determined to preserve the respective corresponding one of the decode threshold number of encoded data slices prior to executing the corresponding one of the set of destructive modification requests, determining, by a first storage unit of the decode threshold number of storage units, to flag a first encoded data slice of the decode threshold number of encoded data slices or temporarily store the first encoded data slice, wherein the first encoded data slice is the respective corresponding one of the decode threshold number of encoded data slices of the first storage unit; and

when determined to flag the first encoded data slice, flagging, by the first storage unit, the first encoded data slice as preserved.

2. The method of claim 1 , wherein a destructive modification request of the set of destructive modification requests comprises one of:

a delete type;

an overwrite type;

a modification type; and

a new revision type.

3. The method of claim 1 , wherein the determining to preserve the corresponding one of the decode threshold number of encoded data slices is based on one or more of:

a request type;

a requesting entity ID;

a priority indicator;

a certainty level indicator; and

a memory availability level indicator.

4. The method of claim 1 further comprises:

when determined not to preserve the respective corresponding one of the decode threshold number of encoded data slices, executing, by each storage unit of a decode threshold number of storage units of the set of storage units, the corresponding one of the set of destructive modification requests.

5. The method of claim 1 further comprises:

when determined to temporarily store the first encoded data slice, storing a copy of the first encoded data slice in temporary memory and executing the corresponding one of the set of destructive modification requests on the first encoded data slice.

6. The method of claim 5 further comprises:

deleting the copy of the first encoded data slice from the temporary memory after expiration of a time period.

7. The method of claim 1 further comprises:

when determined to temporarily store the first encoded data slice, moving the first encoded data slice to temporary memory.

8. The method of claim 7 further comprises:

executing the corresponding one of the set of destructive modification requests on the first encoded data slice stored in temporary memory after expiration of a time period.

9. The method of claim 1 further comprises:

executing the corresponding one of the set of destructive modification requests on the first encoded data slice flagged as preserved after expiration of a time period.

10. A computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), cause the computing device to:

send a set of destructive modification requests to a set of storage units of the DSN regarding a set of encoded data slices, wherein a data segment of a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is needed to recover the data segment; and

a second memory element that stores operational instructions that, when executed by the set of storage units, cause the set of storage units to:

determine, by each storage unit of a decode threshold number of storage units of the set of storage units, whether to preserve a respective corresponding one of the decode threshold number of encoded data slices prior to executing a corresponding one of the set of destructive modification requests;

when determined to preserve the respective corresponding one of the decode threshold number of encoded data slices prior to executing the corresponding one of the set of destructive modification requests, determine, by a first storage unit of the decode threshold number of storage units, to flag a first encoded data slice of the decode threshold number of encoded data slices or temporarily store a copy of the first encoded data slice, wherein the first encoded data slice is the respective corresponding one of the decode threshold number of encoded data slices of the first storage unit; and

when determined to flag the first encoded data slice, flag, by the first storage unit, the first encoded data slice as preserved.

11. The computer readable memory of claim 10 , wherein a destructive modification request of the set of destructive modification requests comprises one of:

a delete type;

an overwrite type;

a modification type; and

a new revision type.

12. The computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to determine to preserve the corresponding one of the decode threshold number of encoded data slices based on one or more of:

a request type;

a requesting entity ID;

a priority indicator;

a certainty level indicator; and

a memory availability level indicator.

13. The computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

when determined not to preserve the respective corresponding one of the decode threshold number of encoded data slices, execute, by each storage unit of a decode threshold number of storage units of the set of storage units, the corresponding one of the set of destructive modification requests.

14. The computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

when determined to temporarily store the first encoded data slice, store a copy of the first encoded data slice in temporary memory and execute the corresponding one of the set of destructive modification requests on the first encoded data slice.

15. The computer readable memory of claim 14 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

delete the copy of the first encoded data slice from the temporary memory after expiration of a time period.

16. The computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

when determined to temporarily store the first encoded data slice, move the first encoded data slice to temporary memory.

17. The computer readable memory of claim 16 , wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

executing the corresponding one of the set of destructive modification requests on the first encoded data slice stored in temporary memory after expiration of a time period.

18. The computer readable memory of claim 10 wherein the second memory element further stores operational instructions that, when executed by set of storage units, cause the set of storage units to:

execute the corresponding one of the set of destructive modification requests on the first encoded data slice flagged as preserved after expiration of a time period.

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 Dec 5, 2016
From: BAPTIST, ANDREW D.; KAZI, ASIMUDDIN; LEGGETTE, WESLEY B.; MCSHANE, NIALL J.; MOTWANI, MANISH; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040522/0952 →