IP Library Granted Patent US 9,460,148
Granted Patent B2
US 9,460,148 · App. 13/527,785 · Granted Oct 4, 2016

Completing distribution of multi-media content to an accessing device

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,460,148
App. No.
13/527,785
Granted
Oct 4, 2016
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module determining whether to complete downloading of a data segment of multi-media content to an accessing device that possess a partial set of encoded data slices. When the downloading is to be completed, the method continues with the DS processing module determining a user set of encoded data slices, wherein the user set of encoded data slices includes first and second sub-sets of encoded data slices of the set of encoded data slices, determining whether encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices, and when the encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices, sending the second sub-set of encoded data slices to the accessing device.

Claims (68)

1. A method for execution by a computing device, the method comprises:

determining whether to complete downloading of a data segment of multi-media content to an accessing device, wherein the data segment is dispersed storage error encoded to produce a set of encoded data slices, wherein the accessing device receives a partial set of encoded data slices of the set of encoded data slices during a pre-download process of the multi-media content;

when the downloading is to be completed:

determining, for the accessing device, a user set of encoded data slices for accessing the data segment, wherein the user set of encoded data slices includes first and second sub-sets of encoded data slices of the set of encoded data slices, wherein the first sub-set of encoded data slices includes less than a decode threshold number of encoded data slices;

determining whether encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices; and when the encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices, sending the second sub-set of encoded data slices to the accessing device.

2. The method of claim 1 further comprises:

determining the user set of encoded data slices by accessing an authorized accessing list for the multi-media content.

3. The method of claim 1 further comprises:

the first and second sub-sets of encoded data slices includes less encoded data slices than the set of encoded data slices.

4. The method of claim 1 , wherein the determining whether the encoded data slices of the partial set of encoded data slices substantially matches the encoded data slices of the first sub-set of encoded data slices further comprises:

issuing, to the accessing device, a slice name list request regarding the partial set of encoded data slices; and

receiving a slice name list that includes slice names of the encoded data slices in the partial set of encoded data slices.

5. The method of claim 1 further comprises:

when the encoded data slices of the partial set of encoded data slices does not substantially match encoded data slices of the first sub-set of encoded data slices, determining whether the partial set of encoded data slices includes an encoded data slice that is not part of the first sub-set of encoded data slices;

when the partial set of encoded data slices does not include the encoded data slice that is not part of the first sub-set of encoded data slices, determining a missing encoded data slice based on a comparison of the partial set of encoded data slices and the first sub-set of encoded data slices; and

sending the missing encoded data slice and the second sub-set of encoded data slices.

6. The method of claim 5 further comprises:

when the partial set of encoded data slices includes the encoded data slice that is not part of the first sub-set of encoded data slices, determining a course of action for the downloading.

7. The method of claim 6 , wherein the course of action comprises:

determining whether the encoded data slice that is not part of the first sub-set of encoded data slices is part of the second sub-set of encoded data slices;

when the encoded data slice that is not part of the first sub-set of encoded data slices is part of the second sub-set of encoded data slices, sending remaining encoded data slices of the second sub-set of encoded data slices; and

when the encoded data slice that is not part of the first sub-set of encoded data slices is not part of the second sub-set of encoded data slices:

sending the second sub-set of encoded data slices; and

sending a message to delete the encoded data slice that is not part of the first sub-set of encoded data slices.

8. The method of claim 6 , wherein the course of action comprises:

sending a delete message regarding the partial set of encoded data slices.

9. The method of claim 6 , wherein the course of action comprises:

determining how the encoded data slice that is not part of the first sub-set of encoded data slices was obtained by the accessing device;

when the encoded data slice that is not part of the first sub-set of encoded data slices was obtained in an authorized manner, sending the second sub-set of encoded data slices; and

when the encoded data slice that is not part of the first sub-set of encoded data slices was obtained in an unauthorized manner, sending a delete message regarding the partial set of encoded data slices.

10. A dispersed storage (DS) module comprises:

a first module, when operable within a hardware computing device, causes the hardware computing device to:

determine whether to complete downloading of a data segment of multi-media content to an accessing device, wherein the data segment is dispersed storage error encoded to produce a set of encoded data slices, wherein the accessing device possesses a partial set of encoded data slices of the set of encoded data slices;

a second module, when operable within the hardware computing device, causes the hardware computing device to, when the downloading is to be completed:

determine, for the accessing device, a user set of encoded data slices for accessing the data segment, wherein the user set of encoded data slices includes first and second sub-sets of encoded data slices of the set of encoded data slices, wherein the first sub-set of encoded data slices includes less than a decode threshold number of encoded data slices;

a third module, when operable within the hardware computing device, causes the hardware computing device to, when the downloading is to be completed:

determine whether encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices; and

a fourth module, when operable within the hardware computing device, causes the hardware computing device to, when the downloading is to be completed:

when the encoded data slices of the partial set of encoded data slices substantially matches encoded data slices of the first sub-set of encoded data slices, send the second sub-set of encoded data slices to the accessing device.

11. The DS module of claim 10 , wherein the second module is further operable to:

determine the user set of encoded data slices by accessing an authorized accessing list for the multi-media content.

12. The DS module of claim 10 further comprises:

the first and second sub-sets of encoded data slices includes less encoded data slices than the set of encoded data slices.

13. The DS module of claim 10 , wherein the third module is further operable to determine whether the encoded data slices of the partial set of encoded data slices substantially matches the encoded data slices of the first sub-set of encoded data slices by:

issuing, to the accessing device, a slice name list request regarding the partial set of encoded data slices; and

receiving a slice name list that includes slice names of the encoded data slices in the partial set of encoded data slices.

14. The DS module of claim 10 further comprises:

when the encoded data slices of the partial set of encoded data slices does not substantially match encoded data slices of the first sub-set of encoded data slices, the third module is further operable to determine whether the partial set of encoded data slices includes an encoded data slice that is not part of the first sub-set of encoded data slices;

when the partial set of encoded data slices does not include the encoded data slice that is not part of the first sub-set of encoded data slices, the third module is further operable to determine a missing encoded data slice based on a comparison of the partial set of encoded data slices and the first sub-set of encoded data slices; and

the fourth module is further operable to send the missing encoded data slice and the second sub-set of encoded data slices.

15. The DS module of claim 14 further comprises:

when the partial set of encoded data slices includes the encoded data slice that is not part of the first sub-set of encoded data slices, the third module is further operable to determine a course of action for the downloading.

16. The DS module of claim 15 , wherein the course of action comprises:

the third module is further operable to:

determine whether the encoded data slice that is not part of the first sub-set of encoded data slices is part of the second sub-set of encoded data slices;

the fourth module is further operable to:

when the encoded data slice that is not part of the first sub-set of encoded data slices is part of the second sub-set of encoded data slices, send remaining encoded data slices of the second sub-set of encoded data slices; and

when the encoded data slice that is not part of the first sub-set of encoded data slices is not part of the second sub-set of encoded data slices:

send the second sub-set of encoded data slices; and

send a message to delete the encoded data slice that is not part of the first sub-set of encoded data slices.

17. The DS module of claim 15 , wherein the course of action comprises:

the fourth module is further operable to send a delete message regarding the partial set of encoded data slices.

18. The DS module of claim 15 , wherein the course of action comprises:

the third module is further operable to:

determine how the encoded data slice that is not part of the first sub-set of encoded data slices was obtained by the accessing device;

the fourth module is further operable to:

when the encoded data slice that is not part of the first sub-set of encoded data slices was obtained in an authorized manner, send the second sub-set of encoded data slices; and

when the encoded data slice that is not part of the first sub-set of encoded data slices was obtained in an unauthorized manner, send a delete message regarding the partial set of encoded data slices.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2012
From: GRUBE, GARY W.; GLADWIN, S. CHRISTOPHER; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 028778/0082 →