IP Library Granted Patent US 11,704,195
Granted Patent B1
US 11,704,195 · App. 17/167,882 · Granted Jul 18, 2023

Pre-positioning target content in a storage network

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/02H04W12/033G06F11/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 11,704,195
App. No.
17/167,882
Granted
Jul 18, 2023
Kind
B1
Abstract

A method for execution in a storage network, the method begins by determining a user device group content preference, wherein the user group content includes target content for a user device group and the determining includes predicting future target content for the user group. The method continues by selecting a plurality of network edge units for staging encoded data slices, identifying target content for partial download to the plurality of network edge units and dispersed error encoding the target content to generate a set of encoded data slices. The method then continues by identifying encoded data slices from the set of encoded data slices corresponding to the target content for partial download and determining a partial downloading schedule for sending the encoded data slices for partial download to each network edge unit of the plurality of network edge units. The method continues by facilitating partial downloading of the target content by sending the encoded data slices for partial download to each network edge unit of the plurality of network edge units.

Claims (97)

1. A method for execution in a storage network, the method comprises:

determining a user device group content preference for a user device group, wherein the user device group content includes target content for the user device group and the determining includes predicting future target content for the user group;

selecting a plurality of network edge units for staging encoded data slices, wherein a networking edge unit is a network device operably coupled to a user device of the user device group that is associated with target content downloading and wherein each network edge unit is located in a different physical location from every other networking edge unit of the plurality of network edge units;

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

dispersed error encoding the target content to generate the set of encoded data slices;

identifying the encoded data slices of the set of encoded data slices corresponding to the target content for partial download;

determining a partial download schedule for sending the encoded data slices of the set of encoded data slices corresponding to the target content for partial download to each network edge unit of the plurality of network edge units; and

facilitating partial download of the target content by requesting transmission of an encoded data slice of the set of encoded data slices corresponding to the target content for partial download to a network edge unit of the plurality of network edge units.

2. The method of claim 1 , wherein the selecting a plurality of network edge units for staging encoded data slices is based on at least one 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 selecting a plurality of network edge units for staging encoded data slices includes selecting one or more network edge units of the plurality of network edge units that are operably coupled to a user device that requires target content downloading.

4. The method of claim 1 , wherein the identifying target content for partial download is based on at least one 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.

5. The method of claim 1 , wherein the determining a partial downloading schedule is based on at least one 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 user device type indicator, or a security requirement.

6. The method of claim 1 , wherein the partial downloading schedule includes at least one 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.

7. The method of claim 1 , wherein the identifying encoded data slices of the set of encoded data slices corresponding to the target content for partial download is based on at least one of error coding parameters, an amount of data per pillar, a security requirement, a performance requirement, a predetermination, a lookup, and a query.

8. The method of claim 1 , wherein the facilitating partial downloading of target content further includes at least one of retrieving of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when a processing module is associated with the network edge units and requesting sending of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when the processing module is associated with a DS processing unit.

9. 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:

determine a user device group content preference, wherein user device group content includes target content for a user device group and the determining includes predicting future target content for the user device group;

select a plurality of network edge units for staging encoded data slices, wherein the networking edge units are operably coupled to a user device of the user device group that is associated with target content downloading and wherein each network edge unit is located in a different physical location from every other networking edge unit of the plurality of network edge units;

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

dispersed error encode the target content to generate a set of encoded data slices;

identify encoded data slices of the set of encoded data slices corresponding to the target content for partial download;

determine a partial downloading schedule for sending the encoded data slices of the set of encoded data slices corresponding to the target content for partial download to each network edge unit of the plurality of network edge units; and

facilitate partial downloading of the target content by facilitating sending the encoded data slices of the set of encoded data slices corresponding to the target content for partial download to each network edge unit of the plurality of network edge units.

10. The computing device of claim 9 , wherein the processing module is configured to:

select the plurality of network edge units for staging encoded data slices based on at least one 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; and

a content selection history of a user device.

11. The computing device of claim 9 , wherein the processing module is configured to:

select one or more network edge units of the plurality of network edge units that are operably coupled to a user device that requires target content downloading.

12. The computing device of claim 9 , wherein the processing module is configured to identify the target content for partial download based on at least one 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; and

a content selection history of a user device.

13. The computing device of claim 9 , wherein the processing module is configured to determine the partial downloading schedule is based on at least one 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 user device type indicator; and

a security requirement.

14. The computing device of claim 9 , wherein the partial downloading schedule includes one or more of a start time, an end time, an amount of target content to partially download, a minimum download rate, an average download rate, or a maximum download rate.

15. The computing device of claim 9 , wherein the processing module is configured to facilitate partial downloading of target content by at least one of:

retrieving of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when the processing module is associated with the network edge units; or

requesting sending of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when the processing module is associated with a DS processing unit.

16. 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:

determine a user device group content preference, wherein user device group content includes target content for a user device group and the determining includes predicting future target content for the user device group;

select a plurality of network edge units for staging encoded data slices, wherein the networking edge units are operably coupled to a user device of the user device group that is associated with target content downloading and wherein each network edge unit is located in a different physical location from every other networking edge unit of the plurality of network edge units;

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

dispersed error encode the target content to generate a set of encoded data slices;

identify encoded data slices of the set of encoded data slices corresponding to the target content for partial download;

determine a partial downloading schedule for sending the encoded data slices of the set of encoded data slices corresponding to the target content for partial download 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 encoded data slices of the set of encoded data slices corresponding to the target content for partial download to each network edge unit of the plurality of network edge units.

17. The system of claim 16 , wherein the processing module is configured to select the plurality of network edge units for staging encoded data slices based on at least one 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; and

a content selection history of a user device.

18. The system of claim 16 , wherein the processing module is configured to select one or more network edge units of the plurality of network edge units that are operably coupled to a user device that requires target content downloading.

19. The system of claim 16 , wherein the processing module is configured to identify the target content for partial download based on at least one 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; and

a content selection history of a user device.

20. The system of claim 16 , wherein the processing module is further configured to facilitate partial downloading of target content by at least one of:

retrieving of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when the processing module is associated with the network edge units; and

requesting sending of the encoded data slices of the set of encoded data slices corresponding to the target content for partial download when the processing module is associated with a DS processing unit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055157/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 055224/0417 →