IP Library Granted Patent US 8,352,831
Granted Patent B2
US 8,352,831 · App. 12/903,781 · Granted Jan 8, 2013

Digital content distribution utilizing dispersed storage

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,352,831
App. No.
12/903,781
Granted
Jan 8, 2013
Kind
B2
Abstract

A method begins by a processing module determining whether to error encode broadcast data. The method continues with the processing module encoding a portion of the broadcast data using an error coding storage dispersal function to produce a set of encoded broadcast data slices, determining whether to compress the set of encoded broadcast data slices for the set of encoded broadcast data slices, and when the set of encoded broadcast data slices is to be compressed, selecting a subset of encoded broadcast data slices of the set of encoded broadcast data slices, when the broadcast data is to be error encoded.

Claims (100)

1. A method comprises:

determining whether to error encode broadcast data; and

when the broadcast data is to be error encoded:

encoding a portion of the broadcast data using an error coding dispersal storage function to produce a set of encoded broadcast data slices;

for the set of encoded broadcast data slices, determining whether to compress the set of encoded broadcast data slices; and

when the set of encoded broadcast data slices is to be compressed, selecting a subset of encoded broadcast data slices of the set of encoded broadcast data slices.

2. The method of claim 1 further comprises:

during a live broadcast of the broadcast data:

sending the subset of encoded broadcast data slices when the set of encoded broadcast data slices was compressed; and

sending the set of encoded broadcast data slices when the set of encoded broadcast data slices was not compressed.

3. The method of claim 1 further comprises:

sending the set of encoded broadcast data slices to a dispersed storage network (DSN) memory for storage therein.

4. The method of claim 3 further comprises:

during a playback of the broadcast data:

receiving a request from a playback device;

determining a retrieval pattern for the playback device;

retrieving a unique subset of the set of encoded broadcast data slices based on the retrieval pattern; and

sending the unique subset of the set of encoded broadcast data slices to the playback device.

5. The method of claim 1 , wherein the determining whether to error encode the broadcast data is based on at least one of:

detecting new broadcast data content;

a predetermined schedule; and

a broadcast data request message.

6. A method comprises:

encoding, when enabled, broadcast data using an error coding dispersal storage function to produce a plurality of sets of encoded broadcast data slices;

storing the plurality of sets of encoded broadcast data slices in a dispersed storage network (DSN) memory;

receiving a playback request regarding the broadcast data from a playback device;

obtaining a unique retrieval matrix for the playback device;

retrieving the plurality of sets of encoded broadcast data slices from the DSN memory in accordance with the unique retrieval matrix to produce a plurality of unique sets of encoded broadcast data; and

sending the plurality of unique sets of encoded broadcast data to the playback device.

7. The method of claim 6 , wherein the obtaining the unique retrieval matrix comprises at least one of:

retrieving the unique retrieval matrix from the DSN memory based on an identity of the playback device; and

generating the unique retrieval matrix based on one or more of:

the identity of the playback device;

the error coding dispersal storage function;

a data identifier;

a unique retrieval matrix associated with another playback device; and

a unique retrieval matrix functionality indicator.

8. The method of claim 6 , wherein the unique retrieval matrix comprises one or more of:

a pillars list;

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

9. The method of claim 8 , wherein the pillars list comprises one of:

a number of pillars, wherein the number is between, and including, a slicing pillar width number and a read threshold number.

10. A computer comprises:

an interface; and

a processing module operable to:

determine whether to error encode broadcast data; and

when the broadcast data is to be error encoded:

encode a portion of the broadcast data using an error coding dispersal storage function to produce a set of encoded broadcast data slices;

for the set of encoded broadcast data slices, determine whether to compress the set of encoded broadcast data slices; and

select a subset of encoded broadcast data slices of the set of encoded broadcast data slices when the set of encoded broadcast data slices is to be compressed.

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

during a live broadcast of the broadcast data:

send, via the interface, the subset of encoded broadcast data slices when the set of encoded broadcast data slices was compressed; and

send, via the interface, the set of encoded broadcast data slices when the set of encoded broadcast data slices was not compressed.

12. The computer of claim 10 , wherein the processing module further functions to:

send, via the interface, the set of encoded broadcast data slices to a dispersed storage network (DSN) memory for storage therein.

13. The computer of claim 12 , wherein the processing module further functions to:

during a playback of the broadcast data:

receive, via the interface, a request from a playback device;

determine a retrieval pattern for the playback device;

retrieve, via the interface, a unique subset of the set of encoded broadcast data slices based on the retrieval pattern; and

send, via the interface, the unique subset of the set of encoded broadcast data slices to the playback device.

14. The computer of claim 10 , wherein the processing module further functions to determine whether to error encode the broadcast data based on at least one of:

detecting new broadcast data content;

a predetermined schedule; and

a broadcast data request message.

15. A computer comprises:

an interface; and

a processing module operable to:

encode, when enabled, broadcast data using an error coding dispersal storage function to produce a plurality of sets of encoded broadcast data slices;

store, via the interface, the plurality of sets of encoded broadcast data slices in a dispersed storage network (DSN) memory;

receive, via the interface, a playback request regarding the broadcast data from a playback device;

obtain a unique retrieval matrix for the playback device;

retrieve, via the interface, the plurality of sets of encoded broadcast data slices from the DSN memory in accordance with the unique retrieval matrix to produce a plurality of unique sets of encoded broadcast data; and

send, via the interface, the plurality of unique sets of encoded broadcast data to the playback device.

16. The computer of claim 15 , wherein the processing module further functions to obtain the unique retrieval matrix by at least one of:

retrieving, via the interface, the unique retrieval matrix from the DSN memory based on an identity of the playback device; and

generating the unique retrieval matrix based on one or more of:

the identity of the playback device;

the error coding dispersal storage function;

a data identifier;

a unique retrieval matrix associated with another playback device; and

a unique retrieval matrix functionality indicator.

17. The computer of claim 15 , wherein the unique retrieval matrix comprises one or more of:

a pillars list;

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

18. The computer of claim 17 , wherein the pillars list comprises one of:

a number of pillars, wherein the number is between, and including, a slicing pillar width number and a read threshold number.

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 Oct 13, 2010
From: GLADWIN, S. CHRISTOPHER; ABHIJEET, KUMAR; DHUSE, GREG; RESCH, JASON K.; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 025133/0499 →