IP Library Granted Patent US 9,262,247
Granted Patent B2
US 9,262,247 · App. 14/331,596 · Granted Feb 16, 2016

Updating data stored in a dispersed storage network

Inventors: Jason K. Resch (Chicago, IL); Wesley Leggette (Chicago, IL)
Assignee: International Business Machines Corporation
G06F11/00G06F3/06G06F11/1076H04L9/085H04L9/0863H04L9/0869H04L9/321H04L9/3263H04L63/0823G06F3/0604G06F3/067G06F11/1446G06F15/17331G06F21/33G06F2211/1028H04L2209/04H04L2209/34
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 9,262,247
App. No.
14/331,596
Granted
Feb 16, 2016
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module receiving a modified data object, wherein the modified data object is a modified version of a data object and the data object is divided into a plurality of data segments and stored in the DSN. The method continues with the DS processing module mapping portions of the modified data object to the plurality of data segments that includes creating a middle data segment of a second plurality of data segments based on a corresponding middle data segment of the plurality of data segments when the a portion of the portions corresponds to middle data of the modified data object. The method continues with the DS processing module encoding the middle data segment using a dispersed storage error coding function to produce an encoded data segment and overwriting the corresponding middle data segment with the encoded data segment in the DSN.

Claims (72)

1. A method for execution by a computing device, the method comprises:

identifying a data segment of a plurality of data segments of a data object that is at least partially modified by new data to produce an identified data segment, wherein the new data corresponds to a data difference between a modified data object and the data object, wherein the data object is divided into the plurality of data segments that is encoded using a dispersed storage error coding function to produce a plurality of sets of encoded data slices, wherein the identifying the data segment includes:

segmenting the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

performing a deterministic function on the data segment to produce a first deterministic value;

identifying a likely corresponding data segment of the modified plurality of data segments to produce an identified corresponding data segment;

performing the deterministic function on the identified corresponding data segment to produce a second deterministic value; and

when the first deterministic value is not substantially equal to the second deterministic value, identifying the data segment;

dispersed storage error encoding the identified data segment to produce a new set of encoded data slices; and

replacing a set of encoded data slices of the plurality of sets of encoded data slices with the new set of encoded data slices to produce a modified plurality of encoded data slices for the modified data object.

2. The method of claim 1 further comprises:

identifying a new data segment of the modified data object;

dispersed storage error encoding the new data segment to produce a second new set of encoded data slices; and

adding the second set of encoded data slices to the modified plurality of encoded data slices for the modified data object.

3. The method of claim 1 further comprises:

segmenting the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

performing a deterministic function on the plurality of data segments to produce a first plurality of deterministic values;

performing the deterministic function on the modified plurality of data segment to produce a second plurality of deterministic values;

comparing the first plurality of deterministic values to the second plurality of deterministic values; and

when one of the first plurality of first deterministic values substantially matches one of the second plurality of deterministic values, identifying a corresponding data segment as being unmodified.

4. The method of claim 1 further comprises:

updating a segment allocation table of the data object with the data segments corresponding to the modified plurality of encoded data slices.

5. A computer readable storage device comprises:

a first memory section that stores operational instructions that, when executed by a computing device, causes the computing device to:

identify a data segment of a plurality of data segments of a data object that is at least partially modified by new data to produce an identified data segment, wherein the new data corresponds to a data difference between a modified data object and the data object, wherein the data object is divided into the plurality of data segments that is encoded using a dispersed storage error coding function to produce a plurality of sets of encoded data slices, wherein the identifying the data segment includes:

segmenting the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

performing a deterministic function on the data segment to produce a first deterministic value;

identifying a likely corresponding data segment of the modified plurality of data segments to produce an identified corresponding data segment;

performing the deterministic function on the identified corresponding data segment to produce a second deterministic value; and

when the first deterministic value is not substantially equal to the second deterministic value, identifying the data segment;

a second memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

dispersed storage error encode the identified data segment to produce a new set of encoded data slices; and

a third memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

replace a set of encoded data slices of the plurality of sets of encoded data slices with the new set of encoded data slices to produce a modified plurality of encoded data slices for the modified data object.

6. The computer readable storage device of claim 5 further comprises:

the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

identify a new data segment of the modified data object;

the second memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

dispersed storage error encode the new data segment to produce a second new set of encoded data slices; and

the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

add the second set of encoded data slices to the modified plurality of encoded data slices for the modified data object.

7. The computer readable storage device of claim 5 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

segment the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

perform a deterministic function on the plurality of data segments to produce a first plurality of deterministic values;

perform the deterministic function on the modified plurality of data segment to produce a second plurality of deterministic values;

compare the first plurality of deterministic values to the second plurality of deterministic values; and

when one of the first plurality of first deterministic values substantially matches one of the second plurality of deterministic values, identify a corresponding data segment as being unmodified.

8. The computer readable storage device of claim 5 , wherein the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

update a segment allocation table of the data object with the data segments corresponding to the modified plurality of encoded data slices.

9. A computer comprises:

an interface;

memory; and

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

identify a data segment of a plurality of data segments of a data object that is at least partially modified by new data to produce an identified data segment, wherein the new data corresponds to a data difference between a modified data object and the data object, wherein the data object is divided into the plurality of data segments that is encoded using a dispersed storage error coding function to produce a plurality of sets of encoded data slices, wherein the identifying the data segment includes:

segmenting the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

performing a deterministic function on the data segment to produce a first deterministic value;

identifying a likely corresponding data segment of the modified plurality of data segments to produce an identified corresponding data segment;

performing the deterministic function on the identified corresponding data segment to produce a second deterministic value; and

when the first deterministic value is not substantially equal to the second deterministic value, identifying the data segment;

dispersed storage error encode the identified data segment to produce a new set of encoded data slices; and

replace, via the interface, a set of encoded data slices of the plurality of sets of encoded data slices with the new set of encoded data slices to produce a modified plurality of encoded data slices for the modified data object.

10. The computer of claim 9 , wherein the processing module is further operable to:

identify a new data segment of the modified data object;

dispersed storage error encode the new data segment to produce a second new set of encoded data slices; and

add the second set of encoded data slices to the modified plurality of encoded data slices for the modified data object.

11. The computer of claim 9 , wherein the processing module is further operable to:

segment the modified data object based on a segmenting protocol used to segment the data object into the plurality of data segment to produce a modified plurality of data segments;

perform a deterministic function on the plurality of data segments to produce a first plurality of deterministic values;

perform the deterministic function on the modified plurality of data segment to produce a second plurality of deterministic values;

compare the first plurality of deterministic values to the second plurality of deterministic values; and

when one of the first plurality of first deterministic values substantially matches one of the second plurality of deterministic values, identify a corresponding data segment as being unmodified.

12. The computer of claim 9 , wherein the processing module is further operable to:

update a segment allocation table of the data object with the data segments corresponding to the modified plurality of encoded data slices.

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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2016
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 038295/0342 →
Continuity (3)
Continuation 13588350 · Aug 17, 2012
Provisional Application 61542923 · Oct 4, 2011
Related Publication 20140325309A1 · Oct 30, 2014