IP Library Granted Patent US 10,275,313
Granted Patent B2
US 10,275,313 · App. 15/705,782 · Granted Apr 30, 2019

Writing encoded data slices in a dispersed storage network

Inventors: Thomas Franklin Shirley, Jr. (Wauwatosa, WI); Gary W. Grube (Barrington Hills, IL); Bart Cilfone (Chicago, IL); Ravi Khadiwala (Bartlett, IL); Greg Dhuse (Chicago, IL); Thomas Darrel Cocagne (Elk Grove Village, IL); Michael Colin Storm (Palo Alto, CA); Yogesh Ramesh Vedpathak (Chicago, IL); Wesley Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Andrew Baptist (Mt. Pleasant, WI); Ilya Volvovski (Chicago, IL)
Assignee: International Business Machines Corporation
G06F11/1092G06F3/06G06F21/6218H04L67/1097G06F2211/1028H04L63/20
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,275,313
App. No.
15/705,782
Granted
Apr 30, 2019
Kind
B2
Abstract

A computing device of a dispersed storage network (DSN) includes a memory, interface and a processing module operable to identify an encoded data slice of the set of encoded data slices to produce an identified encoded data slice. The processing module generates a set of first write requests regarding the set of encoded data slices less the identified encoded data slice, and generates a set of second write requests regarding the identified encoded data slice. The set of second write requests include the identified encoded data slice and replications of the identified encoded data slice. The processing module sends the set of first write requests to storage units of the DSN, and sends the set of second write requests to a set of storage units of the DSN, where each storage unit of the set of storage units is sent a corresponding one of the set of second write requests.

Claims (39)

1. A computing device of a dispersed storage network (DSN), the computing device comprises:

an interface;

memory; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to write a set of encoded data slices of a data segment, wherein the data segment is dispersed storage error encoded to create the set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to reconstruct the data segment, to DSN memory by:

identifying an encoded data slice of the set of encoded data slices for a redundant write operation to produce an identified encoded data slice;

generating a set of first write requests regarding the set of encoded data slices less the identified encoded data slice;

generating a set of second write requests regarding the identified encoded data slice, the set of second write requests including the identified encoded data slice and replications of the identified encoded data slice;

sending the set of first write requests to storage units of the DSN memory; and

sending the set of second write requests to a set of storage units of the DSN memory, wherein each storage unit of the set of storage units is sent a corresponding one of the set of second write requests.

2. The computing device of claim 1 , wherein the processing module is further operable to:

receive a write response from a storage unit of the set of storage units; and

send a delete write request to remaining storage units of the set of storage units.

3. The computing device of claim 1 , wherein the processing module is further operable to:

receive write responses from at least some storage units of a combined set of storage units that includes the storage units and the set of storage units; and

when a threshold number of write responses have been received, send a write commit command to each storage unit of the at least some storage units of the combined set of storage units.

4. The computing device of claim 3 , wherein the processing module is further operable to:

determine whether the at least some storage units of the combined set of storage units include a storage unit of the set of storage units; and

when the at least some storage units of the combined set of storage units includes the storage unit of the set of storage units:

send the write commit command to the storage unit of the set of storage units; and

send a rollback command to each remaining storage unit of the set of storage units.

5. The computing device of claim 3 , wherein the processing module is further operable to:

determine whether the at least some storage units of the combined set of storage units include a storage unit of the set of storage units; and

when the at least some storage units of the combined set of storage units does not include the storage unit of the set of storage units, send a rollback command to each storage unit of the set of storage units.

6. The computing device of claim 3 , wherein the processing module is further operable to:

receive commit responses from the at least some storage units of the combined set of storage units that includes the storage units and the set of storage units; and

when a commit threshold number of the commit responses have been received, send a write finalize command to each storage unit of the at least some storage units of the combined set of storage units.

7. The computing device of claim 6 , wherein the processing module is further operable to:

determine whether the at least some storage units of the combined set of storage units that provided the commit responses include a storage unit of the set of storage units; and

when the at least some storage units of the combined set of storage units that provided the commit responses includes the storage unit of the set of storage units:

send a write finalize command to the storage unit of the set of storage units; and

sending an undo command to each remaining storage unit of the set of storage units.

8. The computing device of claim 6 , wherein the processing module is further operable to:

determine whether the at least some storage units of the combined set of storage units that provided the commit responses include a storage unit of the set of storage units; and

when the at least some storage units of the combined set of storage units that provided the commit responses does not include the storage unit of the set of storage units, send an undo command to the set of storage units.

9. The computing device of claim 1 , wherein the processing module is further operable to:

identify a second encoded data slice of the set of encoded data slices for the redundant write operation to produce a second identified encoded data slice;

generate the set of first write requests regarding the set of encoded data slices less the identified encoded data slice and the second identified encoded data slice;

generate a set of third write requests regarding the second identified encoded data slice, the set of third write requests including the second identified encoded data slice and replications of the second identified encoded data slice; and

send the set of third write requests to a second set of storage units of the DSN memory, wherein each storage unit of the second set of storage units is sent a corresponding one of the set of third write requests.

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 Sep 15, 2017
From: SHIRLEY, THOMAS FRANKLIN, JR; GRUBE, GARY W.; CILFONE, BART; KHADIWALA, RAVI; DHUSE, GREG; COCAGNE, THOMAS DARREL; STORM, MICHAEL COLIN; VEDPATHAK, YOGESH RAMESH; LEGGETTE, WESLEY; RESCH, JASON K.; BAPTIST, ANDREW; VOLVOVSKI, ILYA
To: CLEVERSAFE, INC.
Reel/Frame 043603/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043970/0047 →
Continuity (3)
Continuation 14570366 · Dec 15, 2014
Provisional Application 61934036 · Jan 31, 2014
Related Publication 20180024887A1 · Jan 25, 2018