IP Library Granted Patent US 10,083,097
Granted Patent B2
US 10,083,097 · App. 15/276,077 · Granted Sep 25, 2018

Storing related data in a dispersed storage network

Inventors: Michael Colin Storm (Palo Alto, CA); Wesley Leggette (Chicago, IL); Manish Motwani (Chicago, IL); Greg Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Andrew Baptist (Mt. Pleasant, WI)
Assignee: International Business Machines Corporation
G06F11/1469G06F11/1092G06F11/1448G06F17/30194G06F17/30227H04L67/1097G06F2211/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,083,097
App. No.
15/276,077
Granted
Sep 25, 2018
Kind
B2
Abstract

A method includes determining, by a first client and a second client module, that a first data object and a second data objects are related. The method further includes dispersed storage error encoding the first data object to produce a first plurality of sets of encoded data slices and the second data object to produce a second plurality of sets of encoded data slices. The method further includes sending, by the first client module, first requests regarding the first plurality of sets of encoded data slices to a set of storage units. The method further includes sending, by the second client module, second requests regarding the second plurality of sets of encoded data slices to the set of storage units. The method further includes processing, by a binding module, remaining phases of the first and second write requests as a single write operation for the first and second data objects.

Claims (62)

1. A method for execution within a dispersed storage network (DSN), the method comprises:

determining, by a first distributed storage and task (DST) client module and a second DST client module, that a first data object and a second data objects are related;

dispersed storage error encoding, by the first DST client module, the first data object to produce a first plurality of sets of encoded data slices;

dispersed storage error encoding, by the second DST client module, the second data object to produce a second plurality of sets of encoded data slices;

sending, by the first DST client module, first write requests regarding the first plurality of sets of encoded data slices to a set of storage units of the DSN, wherein the first write requests include a first transaction number and a first indication that the first data object is related to the second data object;

sending, by the second DST client module, second write requests regarding the second plurality of sets of encoded data slices to the set of storage units, wherein the second write requests include a second transaction number and a second indication that the second data object is related to the first data object; and

processing, by a binding module of the DSN, remaining phases of the first and second write requests as a single write operation for the first and second data objects.

2. The method of claim 1 further comprises:

sending, by the first DST client module, a first plurality of sets of write requests regarding the first plurality of sets of encoded data slices, wherein the first plurality of sets of write requests corresponds to a first phase of a write operation to write the first plurality of sets of encoded data slices into the set of storage units, and wherein each write request of the first plurality of sets of write requests includes the first transaction number; and

sending, by the second DST client module, a second plurality of sets of write requests regarding the second plurality of sets of encoded data slices, wherein the second plurality of sets of write requests corresponds to a first phase of a write operation to write the second plurality of sets of encoded data slices into the set of storage units, and wherein each write request of the second plurality of sets of write requests includes the second transaction number.

3. The method of claim 2 , wherein the processing the remaining phases of the first and second write requests comprises:

combining the first and second transaction numbers into a combined transaction number; and

upon receiving successful write responses from the set of storage units regarding the first and second pluralities of sets of encoded data slices, issuing, to the set of storage units, a plurality of sets of commit requests regarding the first and second pluralities of sets of encoded data slices.

4. The method of claim 3 further comprises:

upon receiving successful commit responses from the set of storage units regarding the first and second pluralities of sets of encoded data slices, issuing, to the set of storage units, a plurality of sets of finalize requests regarding the first and second pluralities of sets of encoded data slices.

5. The method of claim 4 further comprises:

when the successful commit responses are not received from the set of storage units, sending undo commands to the set of storage units regarding the first and second pluralities of sets of encoded data slices.

6. The method of claim 3 further comprises:

when the successful write responses are not received from the set of storage units, sending rollback commands to the set of storage units regarding the first and second pluralities of sets of encoded data slices.

7. The method of claim 1 , wherein the determining that the first and second data objects are related comprises one or more of:

receiving, by the first and second DST client modules, a command indicating that the first and second data objects are related;

identifying, by the first and second DST client modules, a common source of the first and second data objects;

receiving, by the first and second DST client modules, the first and second data objects within a given timeframe;

identifying, by the first and second DST client modules, a common data type of the first and second data objects; and

interpreting, by the first and second DST client modules, metadata of the first and second data objects.

8. The method of claim 1 further comprises:

the first indication indicates that the first data object is a first part of related data; and

the second indication indicates that the second data object is a second part of the related data.

9. A non-transitory computer readable memory comprises:

a first memory section that stores operational instructions that, when executed by a first dispersed storage and task (DST) client module and a second DST client module of a dispersed storage network (DSN), causes the first and second DST client modules to:

determine that a first data object and a second data objects are related;

a second memory section that stores operational instructions that, when executed by the first DST client module, causes the first DST client module to:

dispersed storage error encode the first data object to produce a first plurality of sets of encoded data slices; and

send first write requests regarding the first plurality of sets of encoded data slices to a set of storage units of the DSN, wherein the first write requests include a first transaction number and a first indication that the first data object is related to the second data object;

a third memory section that stores operational instructions that, when executed by the second DST client module, causes the second DST client module to:

dispersed storage error encode the second data object to produce a second plurality of sets of encoded data slices; and

send second write requests regarding the second plurality of sets of encoded data slices to the set of storage units, wherein the second write requests include a second transaction number and a second indication that the second data object is related to the first data object; and

a fourth memory section that stores operational instructions that, when executed by a binding module of the DSN, causes the binding module to:

process remaining phases of the first and second write requests as a single write operation for the first and second data objects.

10. The non-transitory computer readable memory of claim 9 further comprises:

the second memory section further stores operational instructions that, when executed by the first DST client module, causes the first DST client module to:

send a first plurality of sets of write requests regarding the first plurality of sets of encoded data slices, wherein the first plurality of sets of write requests corresponds to a first phase of a write operation to write the first plurality of sets of encoded data slices into the set of storage units, and wherein each write request of the first plurality of sets of write requests includes the first transaction number; and

the third memory section further stores operational instructions that, when executed by the second DST client module, causes the second DST client module to:

send a second plurality of sets of write requests regarding the second plurality of sets of encoded data slices, wherein the second plurality of sets of write requests corresponds to a first phase of a write operation to write the second plurality of sets of encoded data slices into the set of storage units, and wherein each write request of the second plurality of sets of write requests includes the second transaction number.

11. The non-transitory computer readable memory of claim 10 , wherein the fourth memory section further stores operational instructions that, when executed by the binding module of the DSN, causes the binding module to process the remaining phases of the first and second write requests by:

combining the first and second transaction numbers into a combined transaction number; and

upon receiving successful write responses from the set of storage units regarding the first and second pluralities of sets of encoded data slices, issuing, to the set of storage units, a plurality of sets of commit requests regarding the first and second pluralities of sets of encoded data slices.

12. The non-transitory computer readable memory of claim 11 , wherein the fourth memory section further stores operational instructions that, when executed by the binding module of the DSN, causes the binding module to:

upon receiving successful commit responses from the set of storage units regarding the first and second pluralities of sets of encoded data slices, issue, to the set of storage units, a plurality of sets of finalize requests regarding the first and second pluralities of sets of encoded data slices.

13. The non-transitory computer readable memory of claim 12 , wherein the fourth memory section further stores operational instructions that, when executed by the binding module of the DSN, causes the binding module to:

when the successful commit responses are not received from the set of storage units, send undo commands to the set of storage units regarding the first and second pluralities of sets of encoded data slices.

14. The non-transitory computer readable memory of claim 11 , wherein the fourth memory section further stores operational instructions that, when executed by the binding module of the DSN, causes the binding module to:

when the successful write responses are not received from the set of storage units, send rollback commands to the set of storage units regarding the first and second pluralities of sets of encoded data slices.

15. The non-transitory computer readable memory of claim 9 , wherein the first memory section further stores operational instructions that, when executed by the first DST client module and the second DST client module, causes the first and second DST client modules to determine that the first and second data objects are related by one or more of:

receiving a command indicating that the first and second data objects are related;

identifying a common source of the first and second data objects;

receiving the first and second data objects within a given timeframe;

identifying a common data type of the first and second data objects; and

interpreting metadata of the first and second data objects.

16. The non-transitory computer readable memory of claim 9 further comprises:

the first indication indicates that the first data object is a first part of related data; and

the second indication indicates that the second data object is a second part of the related data.

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 Jan 20, 2017
From: STORM, MICHAEL COLIN; LEGGETTE, WESLEY; MOTWANI, MANISH; DHUSE, GREG; RESCH, JASON K.; BAPTIST, ANDREW
To: CLEVERSAFE, INC.
Reel/Frame 041023/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041448/0141 →
Continuity (3)
Continuation 14215542 · Mar 17, 2014
Provisional Application 61819039 · May 3, 2013
Related Publication 20170010942A1 · Jan 12, 2017
Cited By (1)
US 12,517,652