IP Library Patent Application 16121290
Patent Application
App. No. 16/121,290

DISTRIBUTED STORAGE NETWORK DATA REVISION CONTROL

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 None
App. No.
16/121,290
Abstract

Multiple revisions of an encoded data slice are generated, with each revision having the same slice name. Each of the data slices represents the same original data portion, but each is encoded so that no single data slice can be used to reconstruct the original data portion. Appropriate revision numbers are associated with each encoded data slice, and the encoded data slices and associated revision numbers are transmitted for storage in selected storage units of a distributed storage network. If write confirmations are received from at least a write threshold number of storage units, a commit command is transmitted so that the most recently written data slices will be available for access. After a commit command is issued, a current directory used to access the encoded data slices can be sliced, encoded, and stored in the same way as the data slices.

Claims (53)

1 . A method for execution by a computing device that includes a computing core, the method comprising:

determining a first revision number regarding a version of a first data segment, wherein the first data segment is encoded using an error coding dispersal storage function to produce a first set of encoded data slices;

associating the first revision number to each encoded data slice of the first set of encoded data slices to produce a first set of appended encoded data slices;

transmitting, by the computing device via an output interface, write commands regarding the first set of appended encoded data slices to storage units of a distributed storage network (DSN), wherein the write commands include the first set of appended encoded data slices for storage in the storage units;

receiving write confirmation messages from at least some of the storage units;

verifying the first revision number within the write confirmation messages;

when a write threshold number of write confirmation messages have been received and the first revision number has been verified within each of the write threshold number of write confirmation messages, sending write commit messages to the storage units; and

storing a current directory used to access the encoded data slices.

2 . The method of claim 1 , wherein storing the current directory used to access the encoded data slices includes slicing the current directory.

3 . The method of claim 1 , wherein storing the current directory used to access the encoded data slices includes encoding the current directory using an error coding dispersal storage function.

4 . The method of claim 1 , wherein the first revision number is appended to each encoded data slice of the first set of encoded data slices.

5 . The method of claim 1 further comprising:

determining whether write commit responses have been received from at least some of the storage units, wherein a write commit response indicates that a storage unit has made a corresponding encoded data slice visible.

6 . The method of claim 1 further comprising:

when the write confirmations for the at least the write threshold number of each of the first set of appended encoded data slices have not been received, retransmitting at least some of the write commands to different storage units.

7 . The method of claim 1 , further comprising:

determining the first revision numbers based on at least one of a timestamp, a random number, a user vault identifier, a user identifier, a data object identifier, a hash of the first data segment, and a hash of a data segment identifier.

8 . A distributed storage computing device comprising:

an interface;

memory; and

a processing system, including a processor and operably coupled to the interface and to the memory, wherein the processing system is operable to perform operations including:

determining a first revision number regarding a version of a first data segment, wherein the first data segment is encoded using an error coding dispersal storage function to produce a first set of encoded data slices;

associating the first revision number to each encoded data slice of the first set of encoded data slices to produce a first set of appended encoded data slices;

transmitting, via an output interface, write commands regarding the first set of appended encoded data slices to storage units of a distributed storage network (DSN), wherein the write commands include the first set of appended encoded data slices for storage in the storage units;

receiving write confirmation messages from at least some of the storage units;

verifying the first revision number within the write confirmation messages;

when a write threshold number of write confirmation messages have been received and the first revision number has been verified within each of the write threshold number of write confirmation messages, sending write commit messages to the storage units; and

storing a current directory used to access the encoded data slices.

9 . The distributed storage computing device of claim 8 , wherein storing the current directory used to access the encoded data slices includes slicing the current directory.

10 . The distributed storage computing device of claim 8 , wherein storing the current directory used to access the encoded data slices includes encoding the current directory using an error coding dispersal storage function.

11 . The distributed storage computing device of claim 8 , wherein the first revision number is appended to each encoded data slice of the first set of encoded data slices.

12 . The distributed storage computing device of claim 8 , wherein the operations further include:

determining whether write commit responses have been received from at least some of the storage units, wherein a write commit response indicates that a storage unit has made a corresponding encoded data slice visible.

13 . The distributed storage computing device of claim 8 , wherein the operations further include:

when the write confirmations for the at least the write threshold number of each of the first set of appended encoded data slices have not been received, retransmitting at least some of the write commands to different storage units.

14 . The distributed storage computing device of claim 8 , wherein the operations further include:

determining the first revision numbers based on at least one of a timestamp, a random number, a user vault identifier, a user identifier, a data object identifier, a hash of the first data segment, and a hash of a data segment identifier.

15 . A computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage and task (DST) execution unit that includes a hardware processor and a memory, causes the processing system to perform operations including:

determining a first revision number regarding a version of a first data segment, wherein the first data segment is encoded using an error coding dispersal storage function to produce a first set of encoded data slices;

associating the first revision number to each encoded data slice of the first set of encoded data slices to produce a first set of appended encoded data slices;

transmitting, via an output interface, write commands regarding the first set of appended encoded data slices to storage units of a distributed storage network (DSN), wherein the write commands include the first set of appended encoded data slices for storage in the storage units;

receiving write confirmation messages from at least some of the storage units;

verifying the first revision number within the write confirmation messages;

when a write threshold number of write confirmation messages have been received and the first revision number has been verified within each of the write threshold number of write confirmation messages, sending write commit messages to the storage units; and

storing a current directory used to access the encoded data slices.

16 . The computer readable storage medium of claim 15 , wherein storing the current directory used to access the encoded data slices includes slicing the current directory.

17 . The computer readable storage medium of claim 15 , wherein storing the current directory used to access the encoded data slices includes encoding the current directory using an error coding dispersal storage function.

18 . The computer readable storage medium of claim 15 , wherein the first revision number is appended to each encoded data slice of the first set of encoded data slices.

19 . The computer readable storage medium of claim 15 , wherein the operations further include:

determining whether write commit responses have been received from at least some of the storage units, wherein a write commit response indicates that a storage unit has made a corresponding encoded data slice visible.

20 . The computer readable storage medium of claim 15 , wherein the operations further include:

when the write confirmations for the at least the write threshold number of each of the first set of appended encoded data slices have not been received, retransmitting at least some of the write commands to different storage units.

Assignments (4)
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 Sep 12, 2018
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047061/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2018
From: RESCH, JASON K.; DHUSE, GREG; VOLVOVSKI, ILYA; BAPTIST, ANDREW
To: CLEVERSAFE, INC.
Reel/Frame 046851/0450 →