IP Library Granted Patent US 9,170,882
Granted Patent B2
US 9,170,882 · App. 13/308,777 · Granted Oct 27, 2015

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,170,882
App. No.
13/308,777
Granted
Oct 27, 2015
Kind
B2
Abstract

A method begins by a processing module receiving a file retrieval request for a file, wherein the file includes one or more data regions, and wherein a data region of the one or more data regions is divided into a plurality of data segments and stored as a plurality of sets of encoded data slices in a dispersed storage network (DSN) memory. The method continues with the processing module retrieving a segment allocation table (SAT), wherein a SAT entry of a plurality of SAT entries includes information regarding storing the data region in the DSN memory and a segmentation scheme regarding the dividing of the data region into the plurality of data segments. The method continues with the processing module identifying the plurality of sets of encoded data slices and retrieving at least a sufficient number of the plurality of sets of encoded data slices to regenerate the data region.

Claims (92)

1. A method comprises:

receiving a file retrieval request for a file, wherein the file includes one or more data regions, and wherein a data region of the one or more data regions is divided into a plurality of data segments and stored as a plurality of sets of encoded data slices in a dispersed storage network (DSN) memory;

retrieving a segment allocation table (SAT) based on the file retrieval request, wherein the SAT includes a plurality of entries, and wherein an entry of the plurality of entries includes information regarding storing the data region in the DSN memory and a segmentation scheme regarding the dividing of the data region into the plurality of data segments;

identifying the plurality of sets of encoded data slices based on the segmentation scheme and the information regarding storing the data region by:

extracting a start segment vault source name and a total length of the data region from the information regarding storing the data region;

extracting a segment size and a segmentation approach from the segmentation scheme;

generating a plurality of segment vault source names for the plurality of data segments based on the start segment vault source name, the total length of the data region, the segment size, and the segmentation approach; and

generating a plurality of sets of slices names for the plurality of sets of encoded data slices based on the plurality of segment vault source names; and

retrieving at least a sufficient number of the plurality of sets of encoded data slices to regenerate the data region.

2. The method of claim 1 , wherein the identifying the plurality of sets of encoded data slices comprises:

identifying the plurality of data segments based on the segmentation scheme; and

identifying the plurality of sets of encoded data slices based on the plurality of data segments and the information regarding storing the data region.

3. The method of claim 1 further comprises:

identifying a second entry of the segment allocation table corresponding to a second data region of the one or more data regions, wherein the second entry includes second information regarding storing the second data region in the DSN memory and a second segmentation scheme regarding the dividing of the second data region into a second plurality of data segments;

identifying a second plurality of sets of encoded data slices based on the second segmentation scheme and the second information regarding storing the second data; and

retrieving at least a sufficient number of the second plurality of sets of encoded data slices to regenerate the second data region.

4. The method of claim 1 further comprises:

receiving the file retrieval request, wherein the file includes a plurality of data regions as the one or more data regions;

identifying corresponding entries of the plurality of entries in the segment allocation table for the plurality of data regions;

identifying corresponding pluralities of sets of encoded data slices based on corresponding segmentation schemes and corresponding information regarding storing the corresponding data region from the corresponding entries; and

retrieving at least a sufficient number of the corresponding pluralities of sets of encoded data slices to regenerate the file.

5. A method comprises:

receiving a file retrieval request for a file, wherein the file includes one or more data regions, and wherein a data region of the one or more data regions is divided into a plurality of data segments and stored as a plurality of sets of encoded data slices in a dispersed storage network (DSN) memory; and

for the data region:

estimating information regarding storing the data region in the DSN memory and a segmentation scheme regarding the dividing of the data region into the plurality of data segments to produce estimated information and an estimated segmentation scheme;

retrieving at least some of the plurality of sets of encoded data slices based on the estimated segmentation scheme and the estimated information;

retrieving a segment allocation table (SAT) based on the file retrieval request, wherein the SAT includes a plurality of entries, and wherein an entry of the plurality of entries includes actual information regarding storing the data region in the DSN memory and an actual segmentation scheme regarding the dividing of the data region into the plurality of data segments;

comparing the estimated information and the estimated segmentation scheme with the actual information regarding storing the data region and the actual segmentation scheme; and

when the comparison is favorable, regenerating the data region from the at least some of the plurality of sets of encoded data slices.

6. The method of claim 5 further comprises:

when the comparison is unfavorable due to a lack of sets of encoded data slices, retrieving additional sets of encoded data slices based on a difference between the estimated information, the estimated segmentation scheme, the actual information regarding storing the data region, and the actual segmentation scheme.

7. The method of claim 5 further comprises:

when the comparison is unfavorable due to an excess of sets of encoded data slices, sending a cancellation message for the excess sets of encoded data slices based on a difference between the estimated information, the estimated segmentation scheme, the actual information regarding storing the data region, and the actual segmentation scheme.

8. The method of claim 5 , wherein the retrieving at least some of the plurality of sets of encoded data slices comprises:

extracting a start segment vault source name and a total length of the data region from the estimated information;

extracting a segment size and a segmentation approach from the estimated segmentation scheme;

generating a plurality of segment vault source names for the plurality of data segments based on the start segment vault source name, the total length of the data region, the segment size, and the segmentation approach; and

generating a plurality of sets of slices names for the at least some of the plurality of sets of encoded data slices based on the plurality of segment vault source names.

9. The method of claim 5 further comprises:

for second data region of the one or more data regions:

estimating second information regarding storing the second data region in the DSN memory and a second segmentation scheme regarding dividing of the second data region into a second plurality of data segments to produce second estimated information and a second estimated segmentation scheme;

retrieving at least some of a second plurality of sets of encoded data slices based on the second estimated segmentation scheme and the second estimated information;

accessing a second entry of the segment allocation table, wherein the second entry includes second actual information regarding storing the second data region in the DSN memory and a second actual segmentation scheme regarding the dividing of the second data region into the second plurality of data segments;

comparing the second estimated information and the second estimated segmentation scheme with the second actual information regarding storing the data region and the second actual segmentation scheme; and

when the comparison is favorable, regenerating the second data region from the at least some of the second plurality of sets of encoded data slices.

10. A dispersed storage (DS) module comprises:

a first module for facilitating receiving a file retrieval request for a file, wherein the file includes one or more data regions, and wherein a data region of the one or more data regions is divided into a plurality of data segments and stored as a plurality of sets of encoded data slices in a dispersed storage network (DSN) memory;

a second module for facilitating retrieving a segment allocation table (SAT) based on the file retrieval request, wherein the SAT includes a plurality of entries, and wherein an entry of the plurality of entries includes information regarding storing the data region in the DSN memory and a segmentation scheme regarding the dividing of the data region into the plurality of data segments;

a third module for identifying the plurality of sets of encoded data slices based on the segmentation scheme and the information regarding storing the data region by:

extracting a start segment vault source name and a total length of the data region from the information regarding storing the data region;

extracting a segment size and a segmentation approach from the segmentation scheme;

generating a plurality of segment vault source names for the plurality of data segments based on the start segment vault source name, the total length of the data region, the segment size, and the segmentation approach; and

generating a plurality of sets of slices names for the plurality of sets of encoded data slices based on the plurality of segment vault source names; and

a fourth module for facilitating retrieving at least a sufficient number of the plurality of sets of encoded data slices to regenerate the data region.

11. The DS module of claim 10 , wherein the third module identifies the plurality of sets of encoded data slices by:

identifying the plurality of data segments based on the segmentation scheme; and

identifying the plurality of sets of encoded data slices based on the plurality of data segments and the information regarding storing the data region.

12. The DS module of claim 10 further comprises:

a fifth module for identifying a second entry of the segment allocation table corresponding to a second data region of the one or more data regions, wherein the second entry includes second information regarding storing the second data region in the DSN memory and a second segmentation scheme regarding the dividing of the second data region into a second plurality of data segments;

the third module for identifying a second plurality of sets of encoded data slices based on the second segmentation scheme and the second information regarding storing the second data; and

the fourth module for facilitating retrieving at least a sufficient number of the second plurality of sets of encoded data slices to regenerate the second data region.

13. The DS module of claim 10 further comprises:

the first module for facilitating receiving the file retrieval request, wherein the file includes a plurality of data regions as the one or more data regions;

a fifth module for identifying corresponding entries of the plurality of entries in the segment allocation table for the plurality of data regions;

the third module for identifying corresponding pluralities of sets of encoded data slices based on corresponding segmentation schemes and corresponding information regarding storing the corresponding data region from the corresponding entries; and

the fourth module for facilitating retrieving at least a sufficient number of the corresponding pluralities of sets of encoded data slices to regenerate the file.

14. A dispersed storage (DS) module comprises:

a first module for facilitating receiving a file retrieval request for a file, wherein the file includes one or more data regions, and wherein a data region of the one or more data regions is divided into a plurality of data segments and stored as a plurality of sets of encoded data slices in a dispersed storage network (DSN) memory; and

for the data region:

a second module for estimating information regarding storing the data region in the DSN memory and a segmentation scheme regarding the dividing of the data region into the plurality of data segments to produce estimated information and an estimated segmentation scheme;

a third module for:

facilitating retrieving at least some of the plurality of sets of encoded data slices based on the estimated segmentation scheme and the estimated information; and

facilitating retrieving a segment allocation table (SAT) based on the file retrieval request, wherein the SAT includes a plurality of entries, and wherein an entry of the plurality of entries includes actual information regarding storing the data region in the DSN memory and an actual segmentation scheme regarding the dividing of the data region into the plurality of data segments;

a fourth module for comparing the estimated information and the estimated segmentation scheme with the actual information regarding storing the data region and the actual segmentation scheme; and

a fifth module for regenerating the data region from the at least some of the plurality of sets of encoded data slices when the comparison is favorable.

15. The DS module of claim 14 further comprises:

the third module for facilitating retrieving additional sets of encoded data slices based on a difference between the estimated information, the estimated segmentation scheme, the actual information regarding storing the data region, and the actual segmentation scheme when the comparison is unfavorable due to a lack of sets of encoded data slices.

16. The DS module of claim 14 further comprises:

a sixth module for sending a cancellation message for the excess sets of encoded data slices based on a difference between the estimated information, the estimated segmentation scheme, the actual information regarding storing the data region, and the actual segmentation scheme when the comparison is unfavorable due to an excess of sets of encoded data slices.

17. The DS module of claim 14 , wherein the third module retrieves at least some of the plurality of sets of encoded data slices by:

extracting a start segment vault source name and a total length of the data region from the estimated information;

extracting a segment size and a segmentation approach from the estimated segmentation scheme;

generating a plurality of segment vault source names for the plurality of data segments based on the start segment vault source name, the total length of the data region, the segment size, and the segmentation approach; and

generating a plurality of sets of slices names for the at least some of the plurality of sets of encoded data slices based on the plurality of segment vault source names.

18. The DS module of claim 14 further comprises:

for second data region of the one or more data regions:

the second module for estimating second information regarding storing the second data region in the DSN memory and a second segmentation scheme regarding dividing of the second data region into a second plurality of data segments to produce second estimated information and a second estimated segmentation scheme;

the third module for:

facilitating retrieving at least some of a second plurality of sets of encoded data slices based on the second estimated segmentation scheme and the second estimated information; and

accessing a second entry of the segment allocation table, wherein the second entry includes second actual information regarding storing the second data region in the DSN memory and a second actual segmentation scheme regarding the dividing of the second data region into the second plurality of data segments;

the fourth module for comparing the second estimated information and the second estimated segmentation scheme with the second actual information regarding storing the data region and the second actual segmentation scheme; and

the fifth module for regenerating the second data region from the at least some of the second plurality of sets of encoded data slices when the comparison is favorable.

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 Dec 13, 2011
From: VOLVOVSKI, ILYA; BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 027376/0017 →