IP Library Granted Patent US 10,176,054
Granted Patent B2
US 10,176,054 · App. 14/789,968 · Granted Jan 8, 2019

Dispersed storage network with data segment backup and methods for use therewith

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,176,054
App. No.
14/789,968
Granted
Jan 8, 2019
Kind
B2
Abstract

A method begins with a processing module providing a data segment. The method continues with the processing module retrieving a plurality of first slices, corresponding to a previous revision of the data segment, from the distributed storage network. The method continues with the processing module recreating the previous revision of the data segment from the plurality of first slices corresponding to the previous revision of the data segment. The method continues with the processing module determining if the previous revision of the data segment compares unfavorably to the data segment. The method continues with the processing module storing the data segment in the DSN when determined that the previous version of the data segment compares unfavorably to the data segment.

Claims (80)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a backup command regarding a modified version of a data object, wherein a previous version of the data object is stored in the DSN as a plurality of sets of encoded data slices based on operational parameters, wherein, in accordance with the operational parameters, the previous version of the data object is partitioned into a first plurality of data segments that is encoded to produce the plurality of sets of encoded data slices;

partitioning the modified version of the data object into a second plurality of data segments in accordance with the operational parameters;

identifying a modified data segment of the second plurality of data segments based on a comparison between information derived from the modified data segment and information derived from a corresponding data segment of the first plurality of data segments;

for the modified data segment:

determining whether to encode the modified data segment using the operational parameters or different operational parameters to produce determined operational parameters;

encoding the modified data segment in accordance with the determined operational parameters to produce a revised set of encoded data slices;

updating a revision number associated with the modified data segment;

in response to determining to encode the modified data segment using different operational parameters, associating an indication of the different operational parameters with the revised set of encoded data slices; and

storing the revised set of encoded data slices in storage units of the DSN.

2. The method of claim 1 , wherein the operational parameters comprise two or more of:

an error coding algorithm, a pillar width number, a read threshold, a write threshold, an encryption algorithm, a slicing parameter, a compression algorithm, an integrity check method, caching settings, or parallelism settings.

3. The method of claim 1 , wherein the determining whether to encode the modified data segment using the operational parameters or the different operational parameters comprises:

determining a size of the modified data segment is different than a size of a corresponding data segment by a size difference;

determining whether the size difference between the modified data segment and the corresponding data segment is at or above a threshold; and

in response to determining that the size difference between the modified data segment and the corresponding data segment is at or above a threshold, determining to use the different operational parameters.

4. The method of claim 1 , wherein the determining whether to encode the modified data segment using the operational parameters or the different operational parameters comprises:

determining a desired storage reliability for the modified version of the data object; and

determining the different operational parameters based on the desired storage reliability.

5. The method of claim 1 , wherein the identifying a modified data segment comprises:

retrieving at least a threshold number of encoded data slices of a set of encoded data slices for the corresponding data segment;

decoding the at least the threshold number of encoded data slices to reconstruct the corresponding data segment;

comparing the corresponding data segment with the modified data segment; and

in response to determining that the modified data segment does not substantially match the corresponding data segment, identifying the modified data segment.

6. The method of claim 1 , further comprises:

updating a user vault with a new revision number and the determined operational parameters for the modified data segment.

7. A dispersed storage (DS) processing unit for use in a dispersed storage network (DSN) comprises:

memory;

an interface; and

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

receive a backup command regarding a modified version of a data object, wherein a previous version of the data object is stored in the DSN as a plurality of sets of encoded data slices based on operational parameters, wherein, in accordance with the operational parameters, the previous version of the data object is partitioned into a first plurality of data segments that is encoded to produce the plurality of sets of encoded data slices;

partition the modified version of the data object into a second plurality of data segments in accordance with the operational parameters;

identify a modified data segment of the second plurality of data segments based on a comparison between information derived from the modified data segment and information derived from a corresponding data segment of the first plurality of data segments;

for the modified data segment:

determine whether to encode the modified data segment using the operational parameters or different operational parameters to produce determined operational parameters;

encode the modified data segment in accordance with the determined operational parameters to produce a revised set of encoded data slices;

update a revision number associated with the modified data segment;

in response to determining to encode the modified data segment using different operational parameters, associate an indication of the different operational parameters with the revised set of encoded data slices; and

output, via the interface, the revised set of encoded data slices to storage units of the DSN for storage therein.

8. The DS processing unit of claim 7 , wherein the operational parameters comprise two or more of: an error coding algorithm, a pillar width number, a read threshold, a write threshold, an encryption algorithm, a slicing parameter, a compression algorithm, an integrity check method, caching settings, or parallelism settings.

9. The DS processing unit of claim 7 , wherein the processing module is further operable to determine whether to encode the modified data segment using the operational parameters or the different operational parameters by:

determining a size of the modified data segment is different than a size of a corresponding data segment by a size difference;

determining whether the size difference between the modified data segment and the corresponding data segment is at or above a threshold; and

in response to determining that the size difference between the modified data segment and the corresponding data segment is at or above a threshold, determining to use the different operational parameters.

10. The DS processing unit of claim 7 , wherein the processing module is further operable to determine whether to encode the modified data segment using the operational parameters or the different operational parameters by:

determining a desired storage reliability for the modified version of the data object; and

determining the different operational parameters based on the desired storage reliability.

11. The DS processing unit of claim 7 , wherein the processing module is further operable to identify the modified data segment by:

retrieving at least a threshold number of encoded data slices of a set of encoded data slices for the corresponding data segment;

decoding the at least the threshold number of encoded data slices to reconstruct the corresponding data segment;

comparing the corresponding data segment with the modified data segment; and

in response to determining that the modified data segment does not substantially match the corresponding data segment, identifying the modified data segment.

12. The DS processing unit of claim 7 , wherein the processing module is further operable to:

updating a user vault with a new revision number and the determined operational parameters for the modified data segment.

13. 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:

receive a backup command regarding a modified version of a data object, wherein a previous version of the data object is stored in the DSN as a plurality of sets of encoded data slices based on operational parameters, wherein, in accordance with the operational parameters, the previous version of the data object is partitioned into a first plurality of data segments that is encoded to produce the plurality of sets of encoded data slices;

partition the modified version of the data object into a second plurality of data segments in accordance with the operational parameters;

identify a modified data segment of the second plurality of data segments based on a comparison between information derived from the modified data segment and information derived from a corresponding data segment of the first plurality of data segments;

for the modified data segment:

determine whether to encode the modified data segment using the operational parameters or different operational parameters to produce determined operational parameters;

encode the modified data segment in accordance with the determined operational parameters to produce a revised set of encoded data slices;

update a revision number associated with the modified data segment;

in response to determining to encode the modified data segment using different operational parameters, associate an indication of the different operational parameters with the revised set of encoded data slices; and

output the revised set of encoded data slices to storage units of the DSN for storage therein.

14. The non-transitory computer readable storage medium of claim 13 , wherein the operational parameters comprise two or more of: an error coding algorithm, a pillar width number, a read threshold, a write threshold, an encryption algorithm, a slicing parameter, a compression algorithm, an integrity check method, caching settings, or parallelism settings.

15. The non-transitory computer readable storage medium of claim 13 , wherein the at least one memory section that stores operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to determine whether to encode the modified data segment using the operational parameters or the different operational parameters by:

determining a size of the modified data segment is different than a size of a corresponding data segment by a size difference;

determining whether the size difference between the modified data segment and the corresponding data segment is at or above a threshold; and

in response to determining that the size difference between the modified data segment and the corresponding data segment is at or above a threshold, determining to use the different operational parameters.

16. The non-transitory computer readable storage medium of claim 13 , wherein the at least one memory section that stores operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to determine whether to encode the modified data segment using the operational parameters or the different operational parameters by:

determining a desired storage reliability for the modified version of the data object; and

determining the different operational parameters based on the desired storage reliability.

17. The non-transitory computer readable storage medium of claim 13 , wherein the at least one memory section that stores operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to identify the modified data segment by:

retrieving at least a threshold number of encoded data slices of a set of encoded data slices for the corresponding data segment;

decoding the at least the threshold number of encoded data slices to reconstruct the corresponding data segment;

comparing the corresponding data segment with the modified data segment; and

in response to determining that the modified data segment does not substantially match the corresponding data segment, identifying the modified data segment.

18. The non-transitory computer readable storage medium of claim 13 , wherein the at least one memory section that stores operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to:

updating a user vault with a new revision number and the determined operational parameters for the modified data segment.

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 Oct 16, 2018
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 047180/0988 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →