IP Library Granted Patent US 9,258,177
Granted Patent B2
US 9,258,177 · App. 13/919,673 · Granted Feb 9, 2016

Storing a data stream in a set of storage devices

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,258,177
App. No.
13/919,673
Granted
Feb 9, 2016
Kind
B2
Abstract

A set of storage devices coordinates selection of dispersed storage error encoding parameters for storing a stream of data and coordinates selection of encoded data storage devices and redundancy encoded data storage devices of the set of storage devices. The encoded data storage devices coordinates storage of a decode threshold amount of encoded data of the stream of data in accordance with the dispersed storage error encoding parameters. The encoded data storage devices send information regarding the decode threshold amount of encoded data to the redundancy encoded data storage devices. The redundancy encoded data storage devices generates redundancy encoded data based on the information regarding the decode threshold amount of encoded data and in accordance with the dispersed storage error encoding parameters. The redundancy encoded data storage devices store the redundancy encoded data to provide error encoded reliable storage of the stream of data.

Claims (63)

1. A method comprises:

coordinating, by a set of storage devices, selection of dispersed storage error encoding parameters for storing a stream of data;

coordinating, by the set of storage devices, selection of encoded data storage devices of the set of storage devices and redundancy encoded data storage devices of the set of storage devices based on the selected dispersed storage error encoding parameters;

coordinating, by the encoded data storage devices, storage of a decode threshold amount of encoded data of the stream of data, wherein the encoded data storage devices encode the stream of data in accordance with the dispersed storage error encoding parameters to produce the decode threshold amount of encoded data;

sending, by the encoded data storage devices, information regarding the decode threshold amount of encoded data to the redundancy encoded data storage devices;

generating, by the redundancy encoded data storage devices, redundancy encoded data based on the information regarding the decode threshold amount of encoded data and in accordance with the dispersed storage error encoding parameters, wherein the generating the redundancy encoded data includes:

receiving, by one of the redundancy encoded data storage devices, corresponding portions of the decode threshold amount of encoded data from the encoded data storage devices; and

generating, by the one of the redundancy encoded data storage devices, a corresponding portion of the redundancy encoded data based on corresponding portions of the decode threshold amount of encoded data; and

storing, by the redundancy encoded data storage devices, the redundancy encoded data to provide error encoded reliable storage of the stream of data.

2. The method of claim 1 , wherein the coordinating selection of the dispersed storage error encoding parameters comprises one or more of:

determining a redundancy factor;

determining an encoding pillar width;

determining a decode threshold;

determining a data segmenting process;

determining pre-error encoding data processing; and

determining post-error encoding data processing.

3. The method of claim 1 , wherein the coordinating selection of the encoded data storage devices and the redundancy encoded data storage devices comprises:

determining a data segment threshold number based on the dispersed storage error encoding parameters and selecting the encoded data storage devices based on the data segment threshold number; and

determining a redundancy factor based on the dispersed storage error encoding parameters and selecting the redundancy encoded data storage devices based on the redundancy factor.

4. The method of claim 1 , wherein the coordinating storage of the decode threshold amount of encoded data comprises:

partitioning, by the encoded data storage devices, the stream of data into a stream of data partitions; and

alternatingly encoding, by the encoded data storage devices, a data partition of the stream of data partitions in accordance with the dispersed storage error encoding parameters to produce a decode threshold number of encoded data slices of the decoded threshold amount of encoded data.

5. The method of claim 1 , wherein the sending the information regarding the decode threshold amount of encoded data comprises:

generating, by one of the encoded data storage devices, partially error coded data based on a corresponding portion of the decode threshold amount of encoded data; and

sending, by the one of the encoded data storage devices, the partially error coded data to the redundancy encoded data storage devices.

6. The method of claim 1 , wherein the sending the information regarding the decode threshold amount of encoded data comprises:

sending, by one of the encoded data storage devices, a corresponding portion of the decode threshold amount of encoded data.

7. The method of claim 1 , wherein the generating the redundancy encoded data comprises:

receiving, by one of the redundancy encoded data storage devices, partially error coded data from the encoded data storage devices; and

generating, by the one of the redundancy encoded data storage devices, a corresponding portion of the redundancy encoded data based on the partially error coded data.

8. A dispersed storage system comprises:

one or more first modules that, when operable in one or more storage devices of a set of storage devices, causes the one or more storage devices to:

coordinate selection of dispersed storage error encoding parameters for storing a stream of data; and

coordinate selection of encoded data storage devices of the set of storage devices and redundancy encoded data storage devices of the set of storage devices;

one or more second modules that, when operable in one or more of the encoded data storage devices, causes the one or more encoded data storage devices to:

coordinate storage of a decode threshold amount of encoded data of the stream of data, wherein the one or more second modules encode the stream of data in accordance with the dispersed storage error encoding parameters to produce the decode threshold amount of encoded data; and

send information regarding the decode threshold amount of encoded data to the redundancy encoded data storage devices; and

one or more third modules that, when operable in one or more of the redundancy encoded data storage devices, causes the one or more redundancy encoded data storage devices to:

generate redundancy encoded data based on the information regarding the decode threshold amount of encoded data and in accordance with the dispersed storage error encoding parameters, wherein the redundancy encoded data is generated by:

receiving corresponding portions of the decode threshold amount of encoded data from the encoded data storage devices; and

generating a corresponding portion of the redundancy encoded data based on corresponding portions of the decode threshold amount of encoded data; and

store the redundancy encoded data to provide error encoded reliable storage of the stream of data.

9. The dispersed storage system of claim 8 , wherein the one or more first modules further causes the one or more storage devices to coordinate selection of the dispersed storage error encoding parameters by one or more of:

determining a redundancy factor;

determining an encoding pillar width;

determining a decode threshold;

determining a data segmenting process;

determining pre-error encoding data processing; and

determining post-error encoding data processing.

10. The dispersed storage system of claim 8 , wherein the one or more first modules further causes the one or more storage devices to coordinate selection of the encoded data storage devices and the redundancy encoded data storage devices by:

determining a data segment threshold number based on the dispersed storage error encoding parameters and selecting the encoded data storage devices based on the data segment threshold number; and

determining a redundancy factor based on the dispersed storage error encoding parameters and selecting the redundancy encoded data storage devices based on the redundancy factor.

11. The dispersed storage system of claim 8 , wherein the one or more second modules further causes the one or more encoded data storage devices to coordinate storage of the decode threshold amount of encoded data by:

partitioning the stream of data into a stream of data partitions; and

alternatingly encoding a data partition of the stream of data partitions in accordance with the dispersed storage error encoding parameters to produce a decode threshold number of encoded data slices of the decoded threshold amount of encoded data.

12. The dispersed storage system of claim 8 , wherein the one or more second modules further causes the one or more encoded data storage devices to send the information regarding the decode threshold amount of encoded data by:

generating partially error coded data based on a corresponding portion of the decode threshold amount of encoded data; and

sending the partially error coded data to the redundancy encoded data storage devices.

13. The dispersed storage system of claim 8 , wherein the one or more second modules further causes the one or more encoded data storage devices to send the information regarding the decode threshold amount of encoded data by:

sending a corresponding portion of the decode threshold amount of encoded data.

14. The dispersed storage system of claim 8 , wherein the one or more third modules further causes the one or more redundancy encoded data storage devices to generate the redundancy encoded data by:

receiving, by one third module of the one or more third modules, partially error coded data from the encoded data storage devices; and

generating a corresponding portion of the redundancy encoded data based on the partially error coded data.

Assignments (4)
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 Jun 19, 2013
From: GLADWIN, S. CHRISTOPHER; MARKISON, TIMOTHY W.; DHUSE, GREG; SHIRLEY, THOMAS FRANKLIN, JR.; LEGGETTE, WESLEY; RESCH, JASON K.; GRUBE, GARY W.
To: CLEVERSAFE, INC.
Reel/Frame 030644/0483 →