IP Library Patent Application 13868064
Patent Application
App. No. 13/868,064

RETRIEVING DATA IN A DISPERSED STORAGE NETWORK

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 None
App. No.
13/868,064
Abstract

A method begins by a dispersed storage (DS) processing module interpreting a data retrieval request to identify a dispersed storage network (DSN) address to retrieve a DS error encoded data object. The method continues with the DS processing module DS error decoding the DS error encoded data object to recover the data object and determining whether the data object corresponds to a segment allocation table or to one of a plurality of data segments. When the data object corresponds to the segment allocation table, the method continues with the DS processing module utilizing the segment allocation table to retrieve a plurality of DS error encoded data segments. When the data object corresponds to the one of the plurality of data segments, the method continues with the DS processing module utilizing information in the one of the plurality of data segments to identify other DS error encoded data segments.

Claims (79)

1 . A method for execution by a processing module of a computing device to retrieve data in a dispersed storage network (DSN), the method comprises:

interpreting a data retrieval request to identify a DSN address regarding a dispersed storage error encoded data object;

retrieving the dispersed storage error encoded data object from the DSN based on the DSN address;

dispersed storage error decoding the dispersed storage error encoded data object to recover the data object;

determining whether the data object corresponds to a segment allocation table or to one of a plurality of data segments;

when the data object corresponds to the segment allocation table, utilizing the segment allocation table to retrieve a plurality of dispersed storage error encoded data segments; and

when the data object corresponds to the one of the plurality of data segments, utilizing information in the one of the plurality of data segments to identify other dispersed storage error encoded data segments of the plurality of dispersed storage error encoded data segments.

2 . The method of claim 1 further comprises:

when the data object corresponds to the segment allocation table:

determining DSN data segment addresses for the plurality of dispersed storage error encoded data segments based on the segment allocation table;

retrieving the plurality of dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decoding the plurality of dispersed storage error encoded data segments to recover the plurality of data segments.

3 . The method of claim 1 further comprises:

when the data object corresponds to the one of the plurality of data segments:

interpreting the one of the plurality of data segments to identify the other dispersed storage error encoded data segments;

determining DSN data segment addresses for the identified other dispersed storage error encoded data segments;

retrieving the identified other dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decoding the identified other dispersed storage error encoded data segments to recover other data segments of the plurality of data segments.

4 . The method of claim 1 , wherein the interpreting the data retrieval request to identify the DSN address comprises at least one of:

determining a file name from the data retrieval request and determining the DSN address from the file name; and

extracting the DSN address from the data retrieval request.

5 . The method of claim 1 further comprises:

further interpreting the data retrieval request to determine that the data retrieval request is for a portion of a data file; and

when the data object corresponds to the segment allocation table:

determining DSN data segment addresses for the plurality of dispersed storage error encoded data segments based on the segment allocation table and corresponding to the portion of the data file;

retrieving the plurality of dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decoding the plurality of dispersed storage error encoded data segments to recover the plurality of data segments corresponding to the portion of the data file.

6 . The method of claim 1 further comprises:

further interpreting the data retrieval request to determine that the data retrieval request is for a portion of a data file; and

when the data object corresponds to the one of the plurality of data segments:

interpreting the one of the plurality of data segments to determine properties of a data segment of the plurality of data segments;

utilizing the properties of the data segment and the requested portion of the data file to identify the other dispersed storage error encoded data segments;

determining DSN data segment addresses for the identified other dispersed storage error encoded data segments;

retrieving the identified other dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decoding the identified other dispersed storage error encoded data segments to recover other data segments of the plurality of data segments.

7 . The method of claim 1 , wherein the determining whether the data object corresponds to the segment allocation table or to the one of the plurality of data segments comprises at least one of:

interpreting a format of the data object, wherein the segment allocation table has a first format and the one of the plurality of data segments has a second format; and

interpreting a data object identifier of the data object.

8 . A dispersed storage (DS) module comprising:

a first module, when operable within a computing device, causes the computing device to:

interpret a data retrieval request to identify a dispersed storage network (DSN) address regarding a dispersed storage error encoded data object;

a second module, when operable within the computing device, causes the computing device to:

retrieve the dispersed storage error encoded data object from the DSN based on the DSN address;

dispersed storage error decode the dispersed storage error encoded data object to recover the data object; and

determine whether the data object corresponds to a segment allocation table or to one of a plurality of data segments; and

a third module, when operable within the computing device, causes the computing device to:

when the data object corresponds to the segment allocation table, utilize the segment allocation table to retrieve a plurality of dispersed storage error encoded data segments; and

when the data object corresponds to the one of the plurality of data segments, utilize information in the one of the plurality of data segments to identify other dispersed storage error encoded data segments of the plurality of dispersed storage error encoded data segments.

9 . The DS module of claim 8 further comprises:

the third module further functions to, when the data object corresponds to the segment allocation table:

determine DSN data segment addresses for the plurality of dispersed storage error encoded data segments based on the segment allocation table;

retrieve the plurality of dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decode the plurality of dispersed storage error encoded data segments to recover the plurality of data segments.

10 . The DS module of claim 8 further comprises:

the third module further functions to, when the data object corresponds to the one of the plurality of data segments:

interpret the one of the plurality of data segments to identify the other dispersed storage error encoded data segments;

determine DSN data segment addresses for the identified other dispersed storage error encoded data segments;

retrieve the identified other dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decode the identified other dispersed storage error encoded data segments to recover other data segments of the plurality of data segments.

11 . The DS module of claim 8 , wherein the first module functions to interpret the data retrieval request to identify the DSN address by at least one of:

determining a file name from the data retrieval request and determining the DSN address from the file name; and

extracting the DSN address from the data retrieval request.

12 . The DS module of claim 8 further comprises:

the first module further functions to further interpret the data retrieval request to determine that the data retrieval request is for a portion of a data file; and

the third module further functions to, when the data object corresponds to the segment allocation table:

determine DSN data segment addresses for the plurality of dispersed storage error encoded data segments based on the segment allocation table and corresponding to the portion of the data file;

retrieve the plurality of dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decode the plurality of dispersed storage error encoded data segments to recover the plurality of data segments corresponding to the portion of the data file.

13 . The DS module of claim 8 further comprises:

the first module further functions to further interpret the data retrieval request to determine that the data retrieval request is for a portion of a data file; and

the third module further functions to, when the data object corresponds to the one of the plurality of data segments:

interpret the one of the plurality of data segments to determine properties of a data segment of the plurality of data segments;

utilize the properties of the data segment and the requested portion of the data file to identify the other dispersed storage error encoded data segments;

determine DSN data segment addresses for the identified other dispersed storage error encoded data segments;

retrieve the identified other dispersed storage error encoded data segments from the DSN based on the DSN data segment addresses; and

dispersed storage error decode the identified other dispersed storage error encoded data segments to recover other data segments of the plurality of data segments.

14 . The DS module of claim 8 , wherein the second module functions to determine whether the data object corresponds to the segment allocation table or to the one of the plurality of data segments by at least one of:

interpreting a format of the data object, wherein the segment allocation table has a first format and the one of the plurality of data segments has a second format; and

interpreting a data object identifier of the data object.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 030273/0459 →