IP Library Granted Patent US 10,949,301
Granted Patent B2
US 10,949,301 · App. 15/874,461 · Granted Mar 16, 2021

Pre-positioning pre-stored content in a content distribution system

Inventors: S. Christopher Gladwin (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/067G06F3/0613G06F3/0619G06F3/0631G06F11/00G06F11/1012G06F11/1092H04L1/0041H04L1/0057H04L1/0076H04L63/08H04L67/1097H04W12/0013H04W12/02G06F11/10G06F2211/1028H04L2001/0092
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 10,949,301
App. No.
15/874,461
Granted
Mar 16, 2021
Kind
B2
Abstract

A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method begins by selecting a plurality of network edge units for staging public pillar encoded data slices. The method continues by identifying target content for partial download to the plurality of network edge units. The method continues by identifying public pillars corresponding to the target content for partial download. The method continues by determining a partial downloading schedule for sending public pillar encoded data slices, corresponding to the public pillars, to each network edge unit of the plurality of network edge units and facilitating partial downloading of the target content by facilitating sending of the public pillar encoded data slices to each network edge unit of the plurality of network edge units.

Claims (41)

1. A method for execution by one or more processing modules of one or more computing devices of a storage network, the method comprises:

selecting a plurality of network edge units for staging public pillar encoded data slices, wherein the networking edge units are operably coupled to a user device that requires target content downloading;

identifying the target content for partial download to the plurality of network edge units;

disperse error encoding the target content to generate a pillar width set of encoded data slices, wherein the pillar width set includes the public pillar encoded data slices and private pillar encoded data slices;

identifying the public pillars encoded data slices corresponding to the target content for partial download;

determining a partial downloading schedule for sending public pillar encoded data slices to each network edge unit of the plurality of network edge units; and

facilitating partial downloading of the target content by facilitating sending of the public pillar encoded data slices to each network edge unit of the plurality of network edge units,

wherein the facilitating partial downloading of the target content includes at least one of: retrieving of the public pillar encoded data slices when a processing module is associated with the network edge units or request sending of the public pillar encoded data slices when the processing module is associated with a distributed storage (DS) processing unit.

2. The method of claim 1 , wherein the selecting a plurality of network edge units for staging public pillar encoded data slices is based on one or more of: a list of units, a unit request, a user device operably coupled to a unit, a geographic area associated with a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

3. The method of claim 1 , wherein the identifying target content for partial download is based on one or more of: a unit request, a user device operably coupled to a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

4. The method of claim 1 , wherein the determining a partial downloading schedule is based on one or more of: a location of a network edge unit, an availability indicator of the network edge unit, a network loading indicator associated with the network edge unit, available network bandwidth associated with the network edge unit, a location of a user device, an availability indicator of a user device associated with the network edge unit, a network loading indicator, historical network loading information, the target content, a size of the target content, a size of encoded data slices associated with the public pillars, a user device type indicator, or a security requirement.

5. The method of claim 1 , wherein the partial downloading schedule includes one or more of: a start time, an end time, how much of the target content to partially download, a minimum download rate, an average download rate, or a maximum download rate.

6. The method of claim 1 , wherein the identifying public pillars corresponding to the target content for partial download is based on: target content, error coding parameters, an amount of data per pillar, a security requirement, a performance requirement, a predetermination, a lookup, or a query.

7. A computing device of a group of computing devices of a storage network, the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module is configured to:

select a plurality of network edge units for staging public pillar encoded data slices;

identify target content for partial download to the plurality of network edge units;

identify public pillars corresponding to the target content for partial download, wherein the target content is encoded as a pillar width set of encoded data slices including the public pillar encoded data slices and private pillar encoded data slices;

determine a partial downloading schedule for sending the public pillar encoded data slices to each network edge unit of the plurality of network edge units; and

facilitate partial downloading of the target content by facilitating sending of the public pillar encoded data slices to each network edge unit of the plurality of network edge units.

8. The computing device of claim 7 , wherein the select a plurality of network edge units for staging public pillar encoded data slices is based on one or more of: a list of units, a unit request, a user device operably coupled to a unit, a geographic area associated with a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

9. The computing device of claim 7 , wherein the select a plurality of network edge units for staging public pillar encoded data slices includes selecting a network edge unit that is operably coupled to a user device that requires target content downloading.

10. The computing device of claim 7 , wherein the identify target content for partial download is based on one or more of: a unit request, a user device operably coupled to a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

11. The computing device of claim 7 , wherein the determine a partial downloading schedule is based on one or more of: a location of a network edge unit, an availability indicator of the network edge unit, a network loading indicator associated with the network edge unit, available network bandwidth associated with the network edge unit, a location of a user device, an availability indicator of a user device associated with the network edge unit, a network loading indicator, historical network loading information, the target content, a size of the target content, a size of encoded data slices associated with the public pillars, a user device type indicator, or a security requirement.

12. The computing device of claim 7 , wherein the partial downloading schedule includes one or more of: a start time, an end time, how much of the target content to partially download, a minimum download rate, an average download rate, or a maximum download rate.

13. The computing device of claim 7 , wherein the facilitate partial downloading of the target content includes at least one of: retrieving of the public pillar encoded data slices when the processing module is associated with the network edge units or requesting sending of the public pillar encoded data slices when the processing module is associated with a DS processing unit.

14. A system including a storage network, the system comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module is configured to:

select a plurality of network edge units for staging public pillar encoded data slices;

identify target content for partial download to the plurality of network edge units;

identify public pillars corresponding to the target content for partial download, wherein the target content is encoded as a pillar width set of encoded data slices including the public pillar encoded data slices and private pillar encoded data slices;

determine a partial downloading schedule for sending the public pillar encoded data slices to each network edge unit of the plurality of network edge units; and

facilitate partial downloading of the target content by facilitating sending of the public pillar encoded data slices to each network edge unit of the plurality of network edge units.

15. The system of claim 14 , wherein the select a plurality of network edge units for staging public pillar encoded data slices is based on one or more of: a list of units, a unit request, a user device operably coupled to a unit, a geographic area associated with a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

16. The system of claim 14 , wherein the select a plurality of network edge units for staging public pillar encoded data slices includes selecting a network edge unit that is operably coupled to a user device that may require target content downloading.

17. The system of claim 14 , wherein the identify target content for partial download is based on one or more of: a unit request, a user device operably coupled to a unit, a content preference of a user device, a previous partial download list, a new content listing message, a desired content indicator of a user device, or a content selection history of a user device.

18. The system of claim 14 , wherein the facilitate partial downloading of the target content includes at least one of: retrieving of the public pillar encoded data slices when the processing module is associated with the network edge units or requesting sending of the public pillar encoded data slices when the processing module is associated with a distributed storage (DS) processing unit.

Assignments (5)
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 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 Jan 18, 2018
From: GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044658/0705 →
Continuity (6)
Continuation In Part 15190925 · Jun 23, 2016
Continuation 13647528 · Oct 9, 2012
Continuation In Part 13464166 · May 4, 2012
Provisional Application 61554152 · Nov 1, 2011
Provisional Application 61493825 · Jun 6, 2011
Related Publication 20180150353A1 · May 31, 2018