IP Library Granted Patent US 10,509,709
Granted Patent B2
US 10,509,709 · App. 12/850,607 · Granted Dec 17, 2019

Indirect storage of data in a dispersed storage system

Inventors: Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: PURE STORAGE, INC.
G06F11/2089G06F12/0802G06F12/1009G06F12/1045G06F13/1668H04L45/00H04L67/06H04L67/1002H04L67/1097G06F2212/401H03M13/09H03M13/15H03M13/1515H03M13/23H04L41/06
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,509,709
App. No.
12/850,607
Granted
Dec 17, 2019
Kind
B2
Abstract

A method begins by a dispersed storage processing module obtaining data for storage. The method continues with the dispersed storage processing module encoding the data in accordance with an error coding dispersal storage function to produce a plurality of sets of encoded data slices. The method continues with the dispersed storage processing module determining a proxy unit. The method continues with the dispersed storage processing module transmitting the plurality of sets of encoded data slices to the proxy unit, wherein the proxy unit disperses the plurality of sets of encoded data slices to a plurality of dispersed storage units.

Claims (42)

1. A method for execution by one or more processing modules, the method comprises:

obtaining data for storage;

encoding the data in accordance with an error coding dispersal storage function to produce a plurality of sets of encoded data slices, wherein a decode 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 the data wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;

determining a proxy unit, wherein the proxy unit is one of a plurality of dispersed storage (DS) units and wherein a DS unit of the plurality of DS units includes a processing module and memory;

transmitting the plurality of sets of encoded data slices to the proxy unit to perform storage of the plurality of sets of encoded data slices in accordance with a serial fashion starting with the proxy unit; and

retransmitting, by a processing module of the proxy unit, at least some encoded data slices of the set of encoded data slices to different DS units of the plurality of DS units for storage therein in accordance with the serial fashion, wherein the proxy unit deletes and does not store the at least some of the encoded data slices after receiving confirmation of storage from at least some of the different DS units of the plurality of DS units that store the at least some encoded data slices of the set of encoded data slices in accordance with the serial fashion.

2. The method of claim 1 further comprises:

transmitting metadata to the proxy unit, wherein the metadata includes a dispersal approach regarding how the proxy unit is to disperse the plurality of sets of encoded data slices.

3. The method of claim 2 , wherein the dispersal approach further comprises at least one of:

disperse in a sequential fashion;

disperse in a daisy chain fashion;

disperse in a one-to-many fashion; and

forward to a second proxy unit, wherein the second proxy unit disperses the plurality of sets of encoded data slices to the plurality of dispersed storage units.

4. The method of claim 1 further comprises:

receiving dispersed storage information regarding dispersed storage of the plurality of sets of encoded data slices, wherein the dispersed storage information includes one or more of:

an encoded data slice storage confirmation identifier;

a DS unit identifier and at least one associated slice name;

a seed DS unit identifier;

an end DS unit identifier; and

storage path information.

5. A dispersed storage processing module comprises:

an interface;

a processing device operable to:

obtain data for storage;

encode the data in accordance with an error coding dispersal storage function to produce a plurality of sets of encoded data slices, wherein a decode 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 the data wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;

determine a proxy unit, wherein the proxy unit is one of a plurality of dispersed storage (DS) units and wherein a DS unit of the plurality of DS units includes a processing module and memory;

transmit the plurality of sets of encoded data slices to the proxy unit to perform storage of the plurality of sets of encoded data slices in accordance with a serial fashion starting with the proxy unit; and

a second processing device associated with the proxy unit operable to retransmit, via an interface of the proxy unit, at least some encoded data slices of the set of encoded data slices to different DS units of the plurality of DS units for storage therein in accordance with the serial fashion, wherein the proxy unit deletes and does not store the at least some of the encoded data slices after receiving confirmation of storage from at least some of the different DS units of the plurality of DS units that store the at least some encoded data slices of the set of encoded data slices in accordance with the serial fashion.

6. The dispersed storage processing module of claim 5 , wherein the processing module further functions to:

transmit, via the interface, metadata to the proxy unit, wherein the metadata includes a dispersal approach regarding how the proxy unit is to disperse the plurality of sets of encoded data slices.

7. The dispersed storage processing module of claim 6 , wherein the dispersal approach further comprises at least one of:

disperse in a sequential fashion;

disperse in a daisy chain fashion;

disperse in a one-to-many fashion; and

forward to a second proxy unit, wherein the second proxy unit disperses the plurality of sets of encoded data slices to the plurality of dispersed storage units.

8. The dispersed storage processing module of claim 5 , wherein the processing module further functions to:

receive, via the interface, dispersed storage information regarding dispersed storage of the plurality of sets of encoded data slices, wherein the dispersed storage information includes one or more of:

an encoded data slice storage confirmation identifier;

a DS unit identifier and at least one associated slice name;

a seed DS unit identifier;

an end DS unit identifier; and

storage path information.

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 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 Feb 10, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 025790/0754 →