IP Library Patent Application 14289738
Patent Application
App. No. 14/289,738

HYBRID CENTRALIZED AND AUTONOMOUS DISPERSED STORAGE SYSTEM STORAGE METHOD

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.
14/289,738
Abstract

A dispersed data storage method for execution by a dispersed storage (DS) unit. In various embodiments, the method begins when the DS unit receives a plurality of encoded data slices and associated metadata. The metadata is interpreted to determine storage instructions regarding the encoded data slices. When the storage instructions indicate, for example, a daisy chain storage dispersal approach, the DS unit locally stores first encoded data slices (e.g., the first encoded data slices of a set of encoded data slices) and forwards other encoded data slices to at least one other DS unit. In other exemplary embodiments, sequential and/or one-to-many dispersal approaches may be utilized. Further, the DS may employ a variety of criteria to solicit other DS units for storage of encoded data slices.

Claims (97)

1 . A method for execution by a dispersed storage (DS) unit, the method comprises:

receiving a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;

receiving metadata associated with the plurality of sets of encoded data slices;

interpreting the metadata to determine storage instructions regarding the plurality of sets of encoded data slices; and

when the storage instructions indicate daisy chain storage:

locally storing first encoded data slices of each set of encoded data slices; and

forwarding other encoded data slices of the sets of encoded data slices to at least one other DS unit.

2 . The method of claim 1 further comprises:

when the storage instructions indicate the daisy chain storage:

updating the metadata to produce updated metadata;

locally storing the updated metadata; and

forwarding the updated metadata to the at least one other DS unit.

3 . The method of claim 2 , wherein updating the metadata to produce updated metadata includes adding identification information relating to the DS unit.

4 . The method of claim 1 further comprises:

when the storage instructions indicate the daisy chain storage:

updating the metadata to produce updated metadata;

determining whether the DS unit is an end DS unit; and

when the DS unit is the end DS unit, forwarding the updated metadata to a DS processing module.

5 . The method of claim 1 further comprises:

when the storage instructions indicate one-to-many storage:

transmitting pillar numbered encoded data slices of the plurality of sets of encoded data slices to corresponding ones of a plurality of DS units, wherein the plurality of DS units includes the at least one other DS unit.

6 . The method of claim 1 further comprises:

receiving a retrieval message from an initiator;

retrieving locally stored metadata in response to the retrieval message;

retrieving stored encoded data slices in accordance with the locally stored metadata;

sending the stored encoded data slices to the initiator; and

forwarding the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.

7 . A method for execution by a dispersed storage (DS) unit, the method comprises:

receiving a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;

receiving metadata associated with the plurality of sets of encoded data slices;

interpreting the metadata to determine storage instructions regarding the plurality of sets of encoded data slices;

determining whether to store locally at least a portion of the plurality of sets of encoded data slices;

upon a favorable determination to store locally at least a portion of the plurality of sets of encoded data slices, locally storing first encoded data slices of each set of encoded data slices; and

soliciting at least one other DS unit for storage of at least a portion of the plurality of sets of encoded data slices.

8 . The method of claim 7 , wherein determining whether to store locally at least a portion of the plurality of sets of encoded data slices is based on one or more of:

the metadata;

status of the DS unit;

memory availability of the DS unit;

historic performance information relating to the DS unit; and

a DS unit solicitation response history indicator.

9 . The method of claim 7 , wherein soliciting at least one other DS unit for storage of at least a portion of the plurality of sets of encoded data slices includes:

determining at least one target DS unit;

sending a solicitation message to the at least one target DS unit; and

receiving a favorable response from the at least one target DS unit.

10 . The method of claim 9 , wherein the solicitation message includes at least one storage requirement regarding storage of the at least a portion of the plurality of sets of encoded data slices.

11 . The method of claim 9 , wherein determining at least one target DS unit is based on one or more of:

the metadata;

a DS unit list;

a routing table entry;

a random selection;

geographical location relative to the DS unit; and

geographical location relative to a user device.

12 . The method of claim 9 further comprises:

upon receiving a favorable response from the at least one target DS unit:

forwarding at least a first portion of the plurality of sets of encoded data slices to the at least one target DS unit;

updating the metadata to produce updated metadata;

locally storing the updated metadata; and

forwarding the updated metadata to the at least one target DS unit.

13 . The method of claim 12 , wherein updating the metadata to produce updated metadata includes adding identification information relating to the DS unit.

14 . The method of claim 12 further comprises:

receiving a favorable response from a second target DS unit; and

forwarding at least a second portion of the plurality of sets of encoded data slices to the second target DS unit.

15 . The method of claim 7 further comprises:

receiving a retrieval message from an initiator;

retrieving locally stored metadata in response to the retrieval message;

retrieving stored encoded data slices in accordance with the locally stored metadata;

sending the stored encoded data slices to the initiator; and

forwarding the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.

16 . A dispersed storage (DS) unit comprises:

an interface;

a memory; and

a processing module operable to:

receive, via the interface, a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;

receive, via the interface, metadata associated with the plurality of sets of encoded data slices;

interpret the metadata to determine storage instructions regarding the plurality of encoded data slices; and

when the storage instructions indicate daisy chain storage:

locally store, in the memory, first encoded data slices of each set of encoded data slices; and

forward, via the interface, other encoded data slices of the sets of encoded data slices to at least one other DS unit.

17 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:

when the storage instructions indicate the daisy chain storage:

update the metadata to produce updated metadata;

locally store, in the memory, the updated metadata; and

forward, via the interface, the updated metadata to the at least one other DS unit.

18 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:

when the storage instructions indicate the daisy chain storage:

update the metadata to produce updated metadata;

determine whether the DS unit is an end DS unit; and

forward, via the interface, the updated metadata to a DS processing module, when the DS unit is the end DS unit.

19 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:

when the storage instructions indicate one-to-many storage:

transmit, via the interface, pillar numbered encoded data slices of the plurality of sets of encoded data slices to corresponding ones of a plurality of DS units, wherein the plurality of DS units includes the at least one other DS unit.

20 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:

receive, via the interface, a retrieval message from an initiator;

retrieve, from the memory, locally stored metadata in response to the retrieval message;

retrieve, from the memory, stored encoded data slices in accordance with the locally stored metadata;

send, via the interface, the stored encoded data slices to the initiator; and

forward, via the interface, the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
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 May 29, 2014
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 032984/0670 →