IP Library Granted Patent US 10,798,147
Granted Patent B2
US 10,798,147 · App. 15/199,971 · Granted Oct 6, 2020

Constraint based controlled seeding

Inventors: Alexander Burba (Seattle, WA); Brandon T. Hunt (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/06G06F12/0866H04L41/12H04L67/104H04L67/1044H04L67/18
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,798,147
App. No.
15/199,971
Granted
Oct 6, 2020
Kind
B2
Abstract

In one example, a peer-to-peer network may use partial seeding to increase the number of seed devices available to a peer device acting as a leeching device. A catalog service may maintain an active peer list for a peer-to-peer network describing active peer devices. The catalog service may track a data file composed of a set of sub-pieces for the peer-to-peer network. The catalog service may identify a device constraint for a peer device of the peer-to-peer network describing a characteristic of the peer device impacting an ability of the peer device to store a sub-piece of the data file. The catalog service may assign a seed sub-piece of the data file based on the device constraint to the peer device when executing a seed client to provide the seed sub-piece to a leeching client on the peer-to-peer network. The catalog service may direct the peer device to retain a persistent sub-piece on the peer device as the seed sub-piece for the peer device until a release event.

Claims (44)

1. A catalog service, comprising:

memory configured to maintain an active peer list for a peer-to-peer network describing active peer devices and to track a data file composed of a set of sub-pieces for the peer-to-peer network;

a processing core having at least one processor configured to

receive, from a peer device of the peer-to-peer network, a constraint describing a user-defined data storage limit available for seeding a subset of the sub-pieces of the data file,

store the constraint received from the peer device, and

based at least on the constraint received from the peer device, assign a seed sub-piece of the data file to the peer device when executing a seed client to provide the seed sub-piece to a leeching client on the peer-to-peer network; and

a communication interface configured to direct the peer device to retain a persistent sub-piece on the peer device as the seed sub-piece for the peer device until a release event.

2. The catalog service of claim 1 , wherein the set of sub-pieces comprises sub-pieces of equal data size.

3. The catalog service of claim 1 , wherein the processing core is further configured to identify a device constraint for the peer device by determining a hardware constraint of the peer device describing at least one of memory, hard disk specification, and network bandwidth.

4. The catalog service of claim 1 , wherein the processing core is further configured to identify another constraint for the peer device applied by a source external to the peer device.

5. The catalog service of claim 1 , wherein the processing core is further configured to assign a network service constraint based on a geographic region.

6. The catalog service of claim 1 , wherein the processing core is further configured to

identify the seed subset of sub-pieces of the data file for the peer device to retain based on the constraint received from the peer device.

7. The catalog service of claim 1 , wherein the processing core is further configured to select the seed sub-piece based on a network proximity of the leeching client.

8. The catalog service of claim 1 , wherein the processing core is further configured to assign a redundancy level for the seed sub-piece based on a network proximity of the leeching client.

9. The catalog service of claim 1 , wherein the processing core is further configured to select the seed sub-piece based on a network subnet.

10. A computing device, having a memory configured to store a series of instructions that are executed by at least one processor to implement a catalog service application, the computing device configured to

maintain an active peer list for a peer-to-peer network describing active peer devices;

track a data file composed of a set of sub-pieces for the peer-to-peer network;

receive, from a peer device of the peer-to-peer network, a constraint describing a user-defined data storage limit available for seeding a subset of the sub-pieces of the data file;

store the constraint received from the peer device;

based at least on the constraint received from the peer device, assign a seed sub-piece of the data file to the peer device when executing a seed client to provide the seed sub-piece to a leeching client on the peer-to-peer network; and

direct the peer device to retain a persistent sub-piece on the peer device as the seed sub-piece for the peer device until a release event.

11. The computing device of claim 10 , wherein the computing device is further configured to

identify a device constraint by determining a hardware constraint of the peer device describing at least one of memory, hard disk specification, and network bandwidth.

12. The computing device of claim 10 , wherein the computing device is further configured to

identify another constraint for the peer device applied by a source external to the peer device, and

assign the seed sub-piece further based on the other constraint.

13. The computing device of claim 10 , wherein the computing device is further configured to

assign a network service constraint based on a geographic region.

14. The computing device of claim 10 , wherein the computing device is further configured to

apply a network service constraint as an artificial constraint for the peer device.

15. The computing device of claim 11 , wherein the computing device is further configured to

assign the seed sub-piece based on the device constraint for the peer device executing the seed client.

16. The computing device of claim 10 , wherein the computing device is further configured to

identify the seed subset of sub-pieces of the data file for the peer device to retain based on the constraint received from the peer device.

17. A machine-implemented method, comprising:

connecting with a peer device to a peer-to-peer network;

registering with a catalog service that manages a data file composed of a set of sub-pieces for the peer-to-peer network;

providing to the catalog service a constraint describing a user-defined data storage limit available for seeding a subset of sub-pieces of the data file;

receiving a seed directive from the catalog service indicating a seed sub-piece of the data file for the peer device when executing a seed client; and

storing a persistent sub-piece on the peer device as the seed sub-piece for the seed client until a release event.

18. The method of claim 17 , further comprising:

identifying to the catalog service a device constraint for the peer device impacting an ability of the peer device to store the sub-piece of the data file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2016
From: BURBA, ALEXANDER; HUNT, BRANDON T
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039127/0347 →
Continuity (1)
Related Publication 20180006895A1 · Jan 4, 2018