IP Library Patent Application 12842842
Patent Application
App. No. 12/842,842

MEDIA DISTRIBUTION TO A PLURALITY OF DEVICES UTILIZING BUFFERED DISPERSED STORAGE

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.
12/842,842
Abstract

A method begins by a processing module receiving a plurality of playback requests for a stored program, wherein the stored program is stored in a dispersed storage network (DSN) memory as a plurality of groups of sets of encoded data slices. For each of the plurality of playback requests, the method continues with the processing module storing a first group of the plurality of groups of sets of encoded data slices in a playback DSN memory to produce a first buffered group, outputting the first buffered group to a requesting device corresponding to the each of the plurality of playback requests, storing a second group of the plurality of groups of sets of encoded data slices in the playback DSN memory to produce a second buffered group, and outputting the second buffered group to the requesting device.

Claims (96)

1 . A method for execution by a dispersed storage processing module, the method comprises:

receiving a plurality of playback requests for a stored program, wherein the stored program is stored in a dispersed storage network (DSN) memory as a plurality of groups of sets of encoded data slices, wherein a group of sets of the plurality of groups of sets of encoded data slices corresponds to a time window of the stored program and a set of encoded data slices of the group of sets of the plurality of groups of sets of encoded data slices corresponds to a data segment of the time window; and

for each of the plurality of playback requests:

storing a first group of the plurality of groups of sets of encoded data slices in a playback DSN memory to produce a first buffered group;

outputting the first buffered group to a requesting device corresponding to the each of the plurality of playback requests;

storing a second group of the plurality of groups of sets of encoded data slices in the playback DSN memory to produce a second buffered group; and

outputting the second buffered group to the requesting device.

2 . The method of claim 1 , wherein the storing the second group of the plurality of groups of sets of encoded data slices further comprises at least one of:

overwriting the first buffered group; and

deleting the first buffered group.

3 . The method of claim 1 , wherein the storing the first group further comprises:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce a recaptured first time window;

encoding the recaptured first time window in accordance with a second error coding dispersal storage function to produce a re-encoded first group; and

storing the re-encoded first group in the playback DSN memory to produce the first buffered group.

4 . The method of claim 1 , wherein the outputting the first group further comprises:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce a first time window of multimedia data; and

outputting the first time window of multimedia data to the requesting device.

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

receiving a pause command from a particular requesting device:

pausing the storing of the first and second groups for the particular requesting device; and

flagging a most recent outputted group to the particular requesting device to produce a most recent group indicator; and

receiving a play command from a particular requesting device:

resuming the storing of the first and second groups for the particular requesting device in accordance with the most recent group indicator; and

receiving a rewind command from a particular requesting device:

traversing ordering of the storing of the first and second groups for the particular requesting device; and

receiving a fast forward command from a particular requesting device:

skipping the storing of the first group or the second group for the particular requesting device;

storing a third group of the plurality of groups of sets of encoded data slices in the playback DSN memory to produce a third buffered group; and

outputting the third buffered group to the requesting device.

6 . The method of claim 1 , wherein the storing further comprises at least one of:

storing the first group in a portion of the playback DSN memory allocated to the requesting device; and

storing the second group in the portion of the playback DSN memory allocated to the requesting device.

7 . A method for execution by a dispersed storage processing module, the method comprises:

requesting transfer of a first group of a plurality of groups of sets of encoded data slices of a stored program from a dispersed storage network (DSN) memory to a playback DSN memory, wherein the stored program is stored in the DSN memory as the plurality of groups of sets of encoded data slices, wherein a group of sets of the plurality of groups of sets of encoded data slices corresponds to a time window of the stored program and a set of encoded data slices of the group of sets of the plurality of groups of sets of encoded data slices corresponds to a data segment of the time window;

retrieving the first group from the playback DSN memory;

requesting transfer of a second group of the plurality of groups of sets of encoded data slices from the DSN memory to the playback DSN memory to produce a second group; and

retrieving the second group from the playback DSN memory.

8 . The method of claim 7 , wherein the requesting transfer of the second group of comprises at least one of:

overwriting the first group; and

deleting the first group.

9 . The method of claim 7 , wherein the requesting transfer of the first group further comprises:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce a recaptured first time window;

encoding the recaptured first time window in accordance with a second error coding dispersal storage function to produce a re-encoded first group; and

storing the re-encoded first group in the playback DSN memory to produce the first buffered group.

10 . The method of claim 7 further comprises:

decoding the first group in accordance with an error coding dispersal storage function to produce multimedia data.

11 . A computer comprises:

an interface; and

a processing module operable to:

receive, via the interface, a plurality of playback requests for a stored program, wherein the stored program is stored in a dispersed storage network (DSN) memory as a plurality of groups of sets of encoded data slices, wherein a group of sets of the plurality of groups of sets of encoded data slices corresponds to a time window of the stored program and a set of encoded data slices of the group of sets of the plurality of groups of sets of encoded data slices corresponds to a data segment of the time window; and

for each of the plurality of playback requests:

store, via the interface, a first group of the plurality of groups of sets of encoded data slices in a playback DSN memory to produce a first buffered group;

output, via the interface, the first buffered group to a requesting device corresponding to the each of the plurality of playback requests;

store, via the interface, a second group of the plurality of groups of sets of encoded data slices in the playback DSN memory to produce a second buffered group; and

output, via the interface, the second buffered group to the requesting device.

12 . The computer of claim 11 , wherein the processing module further functions to store the second group of the plurality of groups of sets of encoded data slices by at least one of:

overwriting, via the interface, the first buffered group; and

deleting, via the interface, the first buffered group.

13 . The computer of claim 11 , wherein the processing module further functions to store the first group by:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce a recaptured first time window;

encoding the recaptured first time window in accordance with an error coding dispersal storage function to produce a re-encoded first group; and

storing, via the interface, the re-encoded first group in the playback DSN memory to produce the first buffered group.

14 . The computer of claim 11 , wherein the processing module further functions to output the first group by:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce multimedia data; and

outputting, via the interface, the multimedia data to the requesting device.

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

receiving, via the interface, a pause command from a particular requesting device:

pausing the storing of the first and second groups for the particular requesting device; and

flagging a most recent outputted group to the particular requesting device to produce a most recent group indicator; and

receiving, via the interface, a play command from a particular requesting device:

resuming the storing, via the interface, of the first and second groups for the particular requesting device in accordance with the most recent group indicator; and

receiving, via the interface, a rewind command from a particular requesting device:

traversing ordering of the storing of the first and second groups for the particular requesting device; and

receiving, via the interface, a fast forward command from a particular requesting device:

skipping the storing of the first and second groups for the particular requesting device;

storing, via the interface, a third group of the plurality of groups of sets of encoded data slices in the playback DSN memory to produce a third buffered group; and

outputting, via the interface, the third buffered group to the requesting device.

16 . The computer of claim 11 , wherein the processing module further functions to store by at least one of:

storing, via the interface, the first group in a portion of the playback DSN memory allocated to the requesting device; and

storing, via the interface, the second group in the portion of the playback DSN memory allocated to the requesting device.

17 . A user device comprises:

an interface; and

a processing module operable to:

request, via the interface, transfer of a first group of a plurality of groups of sets of encoded data slices of a stored program from a dispersed storage network (DSN) memory to a playback DSN memory, wherein the stored program is stored in the DSN memory as the plurality of groups of sets of encoded data slices, wherein a group of sets of the plurality of groups of sets of encoded data slices corresponds to a time window of the stored program and a set of encoded data slices of the group of sets of the plurality of groups of sets of encoded data slices corresponds to a data segment of the time window;

retrieve, via the interface, the first group from the playback DSN memory;

request, via the interface, transfer of a second group of the plurality of groups of sets of encoded data slices from the DSN memory to the playback DSN memory to produce a second group; and

retrieve, via the interface, the second group from the playback DSN memory.

18 . The user device of claim 17 , wherein the processing module further functions to request transfer of the second group by at least one of:

overwriting the first group; and

deleting the first group.

19 . The user device of claim 17 , wherein the processing module further functions to request transfer of the first group by:

decoding the first group of the plurality of groups of sets of encoded data slices in accordance with an error coding dispersal storage function to produce a recaptured first time window;

encoding the recaptured first time window in accordance with an error coding dispersal storage function to produce a re-encoded first group; and

storing, via the interface, the re-encoded first group in the playback DSN memory to produce the first buffered group.

20 . The user device of claim 17 , wherein the processing module further functions to:

decode the first group in accordance with an error coding dispersal storage function to produce multimedia data.

Assignments (5)
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 Jul 28, 2010
From: GLADWIN, S. CHRISTOPHER; HOLMES, ALAN E.; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 024756/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2010
From: GLADWIN, S. CHRISTOPHER
To: CLEVERSAFE, INC.
Reel/Frame 024736/0165 →