IP Library Granted Patent US 10,114,697
Granted Patent B2
US 10,114,697 · App. 15/357,814 · Granted Oct 30, 2018

Large object parallel writing

Inventors: Adam M. Gray (Chicago, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: International Business Machines Corporation
G06F11/1076G06F3/064G06F3/067G06F3/0619G06F3/0644H03M13/05H03M13/611G06F11/008G06F2211/109
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,114,697
App. No.
15/357,814
Granted
Oct 30, 2018
Kind
B2
Abstract

A method includes partitioning data into first and second partitions and dispersed storage (DS) error encoding the first and second partition into first and second plurality of sets of encoded data slices (EDSs). The method further includes generating first SAT regarding storage of the first plurality of sets of EDSs and second SAT regarding storage of the second plurality of sets of EDSs. The method further includes DS error encoding the first and the second SAT to produce first and second sets of SAT slices, sending the first plurality of sets of EDSs and the first set of SAT slices to the first set of storage units, and sending the second plurality of sets of EDSs and the second set of SAT slices to the second set of storage units. The method further includes generating a third SAT regarding storage of the first and second sets of SAT slices.

Claims (90)

1. A method comprises:

partitioning, by a computing device of a dispersed storage network (DSN), a data object into a first partition and a second partition;

dispersed storage error encoding, by the computing device, the first partition into a first plurality of sets of encoded data slices and the second partition into a second plurality of sets of encoded data slices;

generating, by the computing device, a first segment allocation table (SAT) regarding storage of the first plurality of sets of encoded data slices in a first set of storage units of the DSN and a second SAT regarding storage of the second plurality of sets of encoded data slices in a second set of storage units of the DSN;

dispersed storage error encoding, by the computing device, the first SAT to produce a first set of SAT slices and the second SAT to produce a second set of SAT slices;

sending, by the computing device, the first plurality of sets of encoded data slices and the first set of SAT slices to the first set of storage units;

sending, by the computing device, the second plurality of sets of encoded data slices and the second set of SAT slices to the second set of storage units; and

generating, by the computing device, a third SAT regarding storage of the first and second sets of SAT slices in the first and second set of storage units.

2. The method of claim 1 further comprises:

determining, by the computing device, to partition the data object based on one of:

a data object attribute;

a partitioning scheme lookup; and

receiving the partitioning scheme.

3. The method of claim 1 , wherein the first SAT comprises:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the first plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the first partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the first partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the first partition.

4. The method of claim 1 , wherein the second SAT comprises:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition.

5. The method of claim 1 , wherein the third SAT comprises:

a first data entry region including:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition; and

a second data entry region including:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition.

6. The method of claim 1 further comprises:

dispersed storage error encoding, by the computing device, the third SAT to produce a third set of SAT slices; and

sending, by the computing device, the third set of SAT slices to the first set of storage units or the second set of storage units.

7. The method of claim 1 further comprises:

updating, by the computing device, a directory with a first SAT vault source name, a second SAT vault source name, and a third SAT vault source name.

8. The method of claim 1 further comprises:

further partitioning, by the computing device, the data object into a third partition;

dispersed storage error encoding, by the computing device, the third partition into a third plurality of sets of encoded data slices;

generating, by the computing device, a fourth SAT regarding storage of the third plurality of sets of encoded data slices in a third set of storage units of the DSN;

dispersed storage error encoding, by the computing device, the fourth SAT to produce a fourth set of SAT slices;

sending, by the computing device, the third plurality of sets of encoded data slices and the fourth set of SAT slices to the third set of storage units; and

generating, by the computing device, a fifth SAT regarding storage of the first, second, and third sets of SAT slices in the first, second, and third set of storage units.

9. The method of claim 1 further comprises:

dispersed storage error encoding the first partition into the first plurality of sets of encoded data slices and the dispersed storage error encoding of the second partition into the second plurality of sets of encoded data slices substantially concurrently.

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

partition a data object into a first partition and a second partition;

dispersed storage error encode the first partition into a first plurality of sets of encoded data slices and the second partition into a second plurality of sets of encoded data slices;

generate a first segment allocation table (SAT) regarding storage of the first plurality of sets of encoded data slices in a first set of storage units of the DSN and a second SAT regarding storage of the second plurality of sets of encoded data slices in a second set of storage units of the DSN;

dispersed storage error encode the first SAT to produce a first set of SAT slices and the second SAT to produce a second set of SAT slices;

send the first plurality of sets of encoded data slices and the first set of SAT slices to the first set of storage units;

send the second plurality of sets of encoded data slices and the second set of SAT slices to the second set of storage units; and

generate a third SAT regarding storage of the first and second sets of SAT slices in the first and second set of storage units.

11. The computing device of claim 10 , wherein the processing module is operable to:

determine to partition the data object based on one of:

a data object attribute;

a partitioning scheme lookup; and

receiving the partitioning scheme.

12. The computing device of claim 10 , wherein the first SAT comprises:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the first plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the first partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the first partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the first partition.

13. The computing device of claim 10 , wherein the second SAT comprises:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition.

14. The computing device of claim 10 , wherein the third SAT comprises:

a first data entry region including:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition; and

a second data entry region including:

a start segment vault source name entry indicating a vault source name associated with storage of a first set of encoded data slices of the second plurality of sets of encoded data slices, wherein a first data segment of one or more data segments of the second partition is dispersed error encoded into the first set of encoded data slices;

a segment size entry indicating a number of bytes of each data segment of the one or more data segments of the second partition; and

a total length entry indicating a number of bytes of all of the data segments of the one or more data segments of the second partition.

15. The computing device of claim 10 , wherein the processing module is operable to:

dispersed storage error encode the third SAT to produce a third set of SAT slices; and

send the third set of SAT slices to the first set of storage units or the second set of storage units.

16. The computing device of claim 10 , wherein the processing module is operable to:

update a directory with a first SAT vault source name, a second SAT vault source name, and a third SAT vault source name.

17. The computing device of claim 10 , wherein the processing module is operable to:

further partition the data object into a third partition;

dispersed storage error encode the third partition into a third plurality of sets of encoded data slices; generate a fourth SAT regarding storage of the third plurality of sets of encoded data slices in a third set of storage units of the DSN;

dispersed storage error encode the fourth SAT to produce a fourth set of SAT slices;

send the third plurality of sets of encoded data slices and the fourth set of SAT slices to the third set of storage units; and

generate a fifth SAT regarding storage of the first, second, and third sets of SAT slices in the first, second, and third set of storage units.

18. The computing device of claim 10 , wherein the processing module is operable to:

dispersed storage error encode the first partition into the first plurality of sets of encoded data slices and the second partition into the second plurality of sets of encoded data slices substantially concurrently.

Assignments (5)
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 Nov 21, 2016
From: GRAY, ADAM M.; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040395/0083 →
Continuity (4)
Continuation In Part 15012555 · Feb 1, 2016
Continuation 13890438 · May 9, 2013
Provisional Application 61663796 · Jun 25, 2012
Related Publication 20170068597A1 · Mar 9, 2017