IP Library Granted Patent US 9,927,977
Granted Patent B2
US 9,927,977 · App. 15/426,698 · Granted Mar 27, 2018

Retrieving data segments from a dispersed storage network

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,927,977
App. No.
15/426,698
Granted
Mar 27, 2018
Kind
B2
Abstract

A method includes generating a plurality of segment allocation tables (SATs) for pluralities of sets of encoded data slices. For a first SAT, the method further includes dispersed storage error encoding the first SAT to produce a first set of encoded SAT slices. The method further includes generating a first source name for the first plurality of sets of encoded data slices and the first SAT based on an object identifier associated with the data object. The method further includes generating, based on the first source name, a first plurality of sets of slices names for the first plurality of sets of encoded data slices and the first set of encoded SAT slices. The method further includes outputting, based on the first plurality of sets of slices names, the first plurality of sets of encoded data slices and the first set of encoded SAT slices to storage units.

Claims (77)

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

dispersed storage error encoding a data object into pluralities of sets of encoded data slices, wherein a region of the data object includes a set of contiguous data segments of the data object, and wherein encoding of the set of contiguous data segments corresponds to one of the pluralities of sets of encoded data slices;

generating a plurality of segment allocation tables (SATs) for the pluralities of sets of encoded data slices, wherein a first SAT of the plurality of SATs corresponds to a first plurality of sets of encoded data slices of the pluralities of sets of encoded data slices;

dispersed storage error encoding the first SAT to produce a first set of encoded SAT slices;

generating a first source name for the first plurality of sets of encoded data slices and the first SAT based on an object identifier associated with the data object;

generating, based on the first source name, a first plurality of sets of slices names for the first plurality of sets of encoded data slices and the first set of encoded SAT slices; and

outputting, based on the first plurality of sets of slices names, the first plurality of sets of encoded data slices and the first set of encoded SAT slices to storage units of the DSN for storage therein.

2. The method of claim 1 , wherein the first SAT comprises one or more of:

a start segment vault source name field;

a segment size field;

a segmentation approach field; and

a total length of region field.

3. The method of claim 1 , wherein generating the first plurality of sets of slices names comprises:

for a first set of encoded data slices of the first plurality of sets of encoded data slices:

generating a set of slice index values corresponding a pillar width number of the dispersed storage error encoding the data object;

generating a first segment number corresponding the first set of encoded data slices;

for a first encoded data slice of the first set of encoded data slices:

generating a first slice name of a first set of slice names of the first plurality of sets of slices based on a first slice index value of the set of slice index values, the first source name, and the first segment number.

4. The method of claim 3 further comprises:

for the first set of encoded SAT slices:

generating a reference segment number for affiliation with the first plurality of sets of encoded data slices;

for a first encoded SAT slice of the first set of encoded SAT slices:

generating a first slice name of another set of slice names of the first plurality of sets of slices based on the first slice index value of the set of slice index values, the first source name, and the reference segment number.

5. The method of claim 1 further comprises:

dispersed storage error encoding a second SAT of the plurality of SATs to produce a second set of encoded SAT slices, wherein the second SAT corresponds to a second plurality of sets of encoded data slices of the pluralities of sets of encoded data slices;

generating a second source name for the second plurality of sets of encoded data slices and the second SAT based on the object identifier;

generating, based on the second source name, a second plurality of sets of slices names for the second plurality of sets of encoded data slices and the second set of encoded SAT slices; and

outputting, based on the second plurality of sets of slices names, the second plurality of sets of encoded data slices and the second set of encoded SAT slices to the storage units.

6. The method of claim 5 , wherein the second SAT comprises:

a first start segment vault source name field for the first region;

a first segment size field for the first region;

a first segmentation approach field for the first region;

a first total length of region field for the first region;

a second start segment vault source name field for the second region;

a second segment size field for the second region;

a second segmentation approach field for the second region;

a second total length of region field for the second region.

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

an interface;

memory; and

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

dispersed storage error encode a data object into pluralities of sets of encoded data slices, wherein a region of the data object includes a set of contiguous data segments of the data object, and wherein encoding of the set of contiguous data segments corresponds to one of the pluralities of sets of encoded data slices;

generate a plurality of segment allocation tables (SATs) for the pluralities of sets of encoded data slices, wherein a first SAT of the plurality of SATs corresponds to a first plurality of sets of encoded data slices of the pluralities of sets of encoded data slices;

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

generate a first source name for the first plurality of sets of encoded data slices and the first SAT based on an object identifier associated with the data object;

generate, based on the first source name, a first plurality of sets of slices names for the first plurality of sets of encoded data slices and the first set of encoded SAT slices; and

output, via the interface and based on the first plurality of sets of slices names, the first plurality of sets of encoded data slices and the first set of encoded SAT slices to storage units of the DSN for storage therein.

8. The computing device of claim 7 , wherein the first SAT comprises one or more of:

a start segment vault source name field;

a segment size field;

a segmentation approach field; and

a total length of region field.

9. The computing device of claim 7 , wherein the processing module is further operable to generate the first plurality of sets of slices names by:

for a first set of encoded data slices of the first plurality of sets of encoded data slices:

generating a set of slice index values corresponding a pillar width number of the dispersed storage error encoding the data object;

generating a first segment number corresponding the first set of encoded data slices;

for a first encoded data slice of the first set of encoded data slices:

generating a first slice name of a first set of slice names of the first plurality of sets of slices based on a first slice index value of the set of slice index values, the first source name, and the first segment number.

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

for the first set of encoded SAT slices:

generate a reference segment number for affiliation with the first plurality of sets of encoded data slices;

for a first encoded SAT slice of the first set of encoded SAT slices:

generate a first slice name of another set of slice names of the first plurality of sets of slices based on the first slice index value of the set of slice index values, the first source name, and the reference segment number.

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

dispersed storage error encode a second SAT of the plurality of SATs to produce a second set of encoded SAT slices, wherein the second SAT corresponds to a second plurality of sets of encoded data slices of the pluralities of sets of encoded data slices;

generate a second source name for the second plurality of sets of encoded data slices and the second SAT based on the object identifier;

generating, based on the second source name, a second plurality of sets of slices names for the second plurality of sets of encoded data slices and the second set of encoded SAT slices; and

output, via the interface and based on the second plurality of sets of slices names, the second plurality of sets of encoded data slices and the second set of encoded SAT slices to the storage units.

12. The computing device of claim 11 , wherein the second SAT comprises:

a first start segment vault source name field for the first region;

a first segment size field for the first region;

a first segmentation approach field for the first region;

a first total length of region field for the first region;

a second start segment vault source name field for the second region;

a second segment size field for the second region;

a second segmentation approach field for the second region;

a second total length of region field for the second region.

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 Feb 8, 2017
From: VOLVOVSKI, ILYA; BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 041200/0180 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041656/0654 →