IP Library Granted Patent US 8,402,344
Granted Patent B2
US 8,402,344 · App. 12/797,208 · Granted Mar 19, 2013

Method and apparatus for controlling dispersed storage of streaming data

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 8,402,344
App. No.
12/797,208
Granted
Mar 19, 2013
Kind
B2
Abstract

A method begins by a processing module determining properties of streaming data. The method continues with the processing module determining required dispersed storage resources based on the properties of the streaming data, identifying a plurality of sets of dispersed storage resources, and establishing first error coding dispersed storage function parameters for a first set of dispersed storage resources of the plurality of sets of dispersed storage resources when the required dispersed storage resources requires the plurality of sets of dispersed storage resources. In addition, the method continues with the processing module enabling partitioning of the streaming data into a plurality of data streams and enabling routing of a first data stream of the plurality of data streams to the first set of dispersed storage resources, wherein the first set of dispersed storage resources converts the first data stream into pluralities of error coded data slices.

Claims (85)

1. A method for controlling dispersed storage of streaming data, the method comprises:

determining properties of the streaming data;

determining required dispersed storage resources based on the properties of the streaming data;

when the required dispersed storage resources requires a plurality of sets of dispersed storage resources:

identifying the plurality of sets of dispersed storage resources;

establishing first error coding dispersed storage function parameters for a first set of dispersed storage resources of the plurality of sets of dispersed storage resources;

enabling partitioning of the streaming data into a plurality of data streams; and

enabling routing of a first data stream of the plurality of data streams to the first set of dispersed storage resources, wherein the first set of dispersed storage resources converts the first data stream into pluralities of error coded data slices in accordance with the first error coding dispersed storage function parameters.

2. The method of claim 1 , wherein the streaming data comprises one or more of high definition video, standard definition video, multi-media, music, broadcast, telephony, internet data, intranet data, communications assistance for law enforcement act (CALEA) information, and communication system link information, wherein the properties of the streaming data include one or more of file type, timestamp, data stream rate, resolution, aspect ratio, protocol indication, source location, user entered data, user ID, and pattern matching information.

3. The method of claim 1 , wherein the determining the required dispersed storage resources further comprises:

interpreting a rate of the streaming data;

comparing the rate of the streaming data to capabilities of the plurality of sets of dispersed storage resources to produce a comparison; and

when the comparison is unfavorable, indicating the required dispersed storage resources requires the plurality of sets of dispersed storage resources.

4. The method of claim 1 , wherein the determining the required dispersed storage resources further comprises:

assigning a predetermined number of sets of dispersed storage resources;

monitoring an ingress rate of the streaming data;

monitoring an encoded data egress rate; and

adjusting the number of sets of dispersed storage resources based on a comparison of the ingress rate of the streaming data to the encoded data egress rate.

5. The method of claim 1 , wherein the first set of dispersed storage resources converts the first data stream into pluralities of error coded data slices further comprises:

segmenting a portion of the first data stream into a plurality of data segments; and

encoding and slicing a data segment of the plurality of data segments in accordance with the first error coding dispersed storage function parameters to produce a plurality of error coded data slices of the pluralities of error coded data slices.

6. The method of claim 5 further comprises at least one of:

performing pre-slice data manipulation on the data segment in accordance with the first error coding dispersed storage function parameters; and

performing post-slice data manipulation on an error coded slice of the plurality of error coded data slices in accordance with the first error coding dispersed storage function parameters.

7. The method of claim 1 , wherein the identifying the plurality of sets of dispersed storage resources further comprises:

determining capacity requirements and capability requirements based on the properties of the streaming data;

determining available capacity of the plurality of sets of dispersed storage resources to produce pluralities of available sets of dispersed storage resources;

determining capabilities of the pluralities of available sets of dispersed storage resources; and

selecting the plurality of sets of dispersed storage resources based on the capacity requirements, the capability requirements, the available capacity, and the capabilities.

8. The method of claim 1 , wherein the establishing of the first error coding dispersed storage function parameters further comprises at least one of:

establishing a segmenting protocol;

establishing a pre-slice data manipulation function;

establishing a forward error correction encoding function;

establishing a slicing pillar width; and

establishing a post-slice data manipulation function.

9. The method of claim 1 further comprises:

establishing second error coding dispersed storage function parameters for a second set of dispersed storage resources of the plurality of sets of dispersed storage resources; and

enabling routing of a second data stream of the plurality of data streams to the second set of dispersed storage resources, wherein the second set of dispersed storage resources converts the second data stream into second pluralities of error coded data slices in accordance with the second error coding dispersed storage function parameters, wherein the first and second error coding dispersed storage function parameters are selected from a set of error coding dispersed storage function parameters.

10. The method of claim 1 further comprises:

establishing second error coding dispersed storage function parameters for a second set of dispersed storage resources of the plurality of sets of dispersed storage resources; and

enabling routing of the first data stream to the second set of dispersed storage resources, wherein the second set of dispersed storage resources converts the first data stream into second pluralities of error coded data slices in accordance with the second error coding dispersed storage function parameters, wherein the first and second error coding dispersed storage function parameters are selected from a set of error coding dispersed storage function parameters.

11. A computer comprises:

an interface; and

a processing module operable to:

monitor, via the interface, streaming data;

determine properties of the streaming data;

determine required dispersed storage resources based on the properties of the streaming data;

when the required dispersed storage resources requires a plurality of sets of dispersed storage resources:

identify the plurality of sets of dispersed storage resources;

establish first error coding dispersed storage function parameters for a first set of dispersed storage resources of the plurality of sets of dispersed storage resources;

enable partitioning of the streaming data into a plurality of data streams; and

enable routing of a first data stream of the plurality of data streams to the first set of dispersed storage resources, wherein the first set of dispersed storage resources converts the first data stream into pluralities of error coded data slices in accordance with the first error coding dispersed storage function parameters.

12. The computer of claim 11 , wherein the streaming data comprises one or more of high definition video, standard definition video, multi-media, music, broadcast, telephony, internet data, intranet data, communications assistance for law enforcement act (CALEA) information, and communication system link information, wherein the properties of the streaming data include one or more of file type, timestamp, data stream rate, resolution, aspect ratio, protocol indication, source location, user entered data, user ID, and pattern matching information.

13. The computer of claim 11 , wherein the processing module further functions to determine the required dispersed storage resources by:

interpreting a rate of the streaming data;

comparing the rate of the streaming data to capabilities of the plurality of sets of dispersed storage resources to produce a comparison; and

when the comparison is unfavorable, indicating the required dispersed storage resources requires the plurality of sets of dispersed storage resources.

14. The computer of claim 11 , wherein the processing module further functions to determine the required dispersed storage resources by:

assigning a predetermined number of sets of dispersed storage resources;

monitoring, via the interface, an ingress rate of the streaming data;

monitoring, via the interface, an encoded data egress rate; and

adjusting the number of sets of dispersed storage resources based on a comparison of the ingress rate of the streaming data to the encoded data egress rate.

15. The computer of claim 11 , wherein the processing module converts the first data stream into pluralities of error coded data slices by:

segmenting a portion of the first data stream into a plurality of first data stream data segments; and

encoding and slicing a data segment of the plurality of data segments in accordance with the first error coding dispersed storage function parameters to produce a plurality of error coded data slices of the pluralities of error coded data slices.

16. The computer of claim 15 , wherein the processing module further functions to perform at least one of:

pre-slice data manipulation on the data segment in accordance with the first error coding dispersed storage function parameters; and

post-slice data manipulation on an error coded slice of the plurality of error coded data slices in accordance with the first error coding dispersed storage function parameters.

17. The computer of claim 11 , wherein the processing module further functions to identify the plurality of sets of dispersed storage resources by:

determining capacity requirements and capability requirements based on the properties of the streaming data;

determining available capacity of the plurality of sets of dispersed storage resources to produce pluralities of available sets of dispersed storage resources;

determining capabilities of the pluralities of available sets of dispersed storage resources; and

selecting the plurality of sets of dispersed storage resources based on the capacity requirements, the capability requirements, the available capacity, and the capabilities.

18. The computer of claim 11 , wherein the processing module further functions to establish the first error coding dispersed storage function parameters by at least one of:

establishing a segmenting protocol;

establishing a pre-slice data manipulation function;

establishing a forward error correction encoding function;

establishing a slicing pillar width; and

establishing a post-slice data manipulation function.

19. The computer of claim 11 , wherein the processing module further functions to:

establish second error coding dispersed storage function parameters for a second set of dispersed storage resources of the plurality of sets of dispersed storage resources; and

enable routing of a second data stream of the plurality of data streams to the second set of dispersed storage resources, wherein the second set of dispersed storage resources converts the second data stream into second pluralities of error coded data slices in accordance with the second error coding dispersed storage function parameters, wherein the first and second error coding dispersed storage function parameters are selected from a set of error coding dispersed storage function parameters.

20. The computer of claim 11 , wherein the processing module further functions to:

establish second error coding dispersed storage function parameters for a second set of dispersed storage resources of the plurality of sets of dispersed storage resources; and

enable routing of the first data stream to the second set of dispersed storage resources, wherein the second set of dispersed storage resources converts the first data stream into second pluralities of error coded data slices in accordance with the second error coding dispersed storage function parameters, wherein the first and second error coding dispersed storage function parameters are selected from a set of error coding dispersed storage function parameters.

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 Jun 9, 2010
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE INC.
Reel/Frame 024511/0600 →