IP Library › Granted Patent US 9,648,098
Granted Patent B2
US 9,648,098 · App. 14/724,586 · Granted May 9, 2017

Predictive peer determination for peer-to-peer digital content download

Inventors: Alexander Burba (Seattle, WA); Brandon T. Hunt (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/104H04L67/06H04L67/1061H04L67/1074H04L67/108H04L67/1072H04L67/322H04L67/34
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,648,098
App. No.
14/724,586
Granted
May 9, 2017
Kind
B2
Abstract

Each computing device in a peer-to-peer network stores particular digital content. A computing device in the peer-to-peer network includes a peer prediction system that obtains an indication of digital content that has not been downloaded to the computing device but is predicted to be downloaded by the computing device in the future (e.g., in response to a user request for the digital content). The peer prediction system obtains a list of peer computing devices in the peer-to-peer network that have at least part of the digital content, and communicates with those peer computing devices to determine connectivity information for each of those peer computing devices. The computing device maintains a record of this connectivity information, and in response to a subsequent user request to download the digital content, uses the maintained record to determine which peer computing devices to access to obtain the digital content.

Claims (36)

1. A computing device comprising:

a peer identification module configured to determine, prior to receiving a download request for digital content that is predicted to be downloaded to the computing device, a set of peer computing devices that have the digital content that is predicted to be downloaded to the computing device;

a peer connectivity determination module configured to communicate with each of one or more peer computing devices in the set of peer computing devices to determine connectivity information for each of the one or more peer computing devices;

a peer prioritization module configured to determine a subset of the set of peer computing devices to use as source devices for the digital content; and

a digital content retrieval system configured to access, in response to receiving the download request, one or more of the subset of peer computing devices to retrieve the digital content from the one or more of the subset of peer computing devices.

2. The computing device as recited in claim 1 , the peer prioritization module being further configured to record in a cache indications of each peer computing device in the subset of peer computing devices.

3. The computing device as recited in claim 2 , the peer prioritization module being further configured to repeatedly, over time, determine the subset of peer computing devices to use as source devices for the digital content, and record in the cache indications of each peer computing device in the subset of peer computing devices as the connectivity information changes over time.

4. The computing device as recited in claim 1 , the download request comprising a user request to download the digital content.

5. The computing device as recited in claim 1 , the digital content comprising an update to a program installed on the computing device, and the download request comprising a request from a component of the computing device to download the digital content.

6. A computing device comprising:

a digital content store;

a peer prediction system configured to determine, by communicating with a set of peer computing devices that store particular digital content prior to receipt of a request to download the particular digital content, a data transfer speed from each of the set of peer computing devices and further to prioritize the set of peer computing devices based on the data transfer speeds of the set of peer computing devices; and

a digital content retrieval system configured to, in response to a request to download the particular digital content, communicate with one or more of the set of peer computing devices to download the particular digital content from the one or more of the set of peer computing devices and store the particular digital content in the digital content store.

7. The computing device as recited in claim 6 , the peer prediction system being further configured to determine, by communicating with the set of peer computing devices, whether each of the set of peer computing devices is accessible to the computing device, and prioritize the set of peer computing devices based on the data transfer speeds of the set of peer computing devices as well as which of the set of peer computing devices is accessible to the computing device.

8. The computing device as recited in claim 6 , the digital content retrieval system being further configured to select, as the one or more of the set of peer computing devices, at least one of the set of peer computing devices having a higher priority than others of the set of peer computing devices.

9. The computing device as recited in claim 6 , the digital content being made up of multiple pieces, and for each of the multiple pieces:

the peer prediction system being further configured to determine one of the set of peer computing devices having at least a threshold data transfer speed to the computing device; and

the digital content retrieval system being further configured to obtain, from the one of the set of peer computing devices having at least the threshold data transfer speed, the piece of the digital content.

10. A method implemented in a computing device, the method comprising:

obtaining an indication of digital content for which a download request is predicted to be received at the computing device;

obtaining, prior to receiving the download request, an indication of a set of peer computing devices from which the computing device can obtain the digital content;

communicating with each of one or more peer computing devices in the set of peer computing devices to determine connectivity information for each of the one or more peer computing devices;

determining a subset of the set of peer computing devices to use as source devices for the digital content; and

accessing, in response to receiving the download request, one or more of the subset of peer computing devices to retrieve the digital content from the one or more of the subset of peer computing devices.

11. The method as recited in claim 10 , the connectivity information for a peer computing device indicating a quality of a connection between the computing device and the peer computing device.

12. The method as recited in claim 10 , the connectivity information including whether each of the one or more peer computing devices is accessible to the computing device.

13. The method as recited in claim 10 , the connectivity information including a data transfer speed from each of the one or more peer computing devices.

14. The method as recited in claim 10 , the download request comprising a user request to download the digital content.

15. The method as recited in claim 10 , the download request comprising a request from a component of the computing device to download the digital content.

16. The method as recited in claim 10 , the obtaining the indication of the set of peer computing devices comprising obtaining the indication of the set of peer computing devices from a remote service.

17. The method as recited in claim 10 , the obtaining the indication of the set of peer computing devices comprising obtaining the indication of the set of peer computing devices from at least one of the set of peer computing devices.

18. The method as recited in claim 10 , the method further comprising recording in a cache indications of each peer computing device in the subset of peer computing devices.

19. The method as recited in claim 18 , the method further comprising repeating, over time, the obtaining the indication of the set of peer computing devices, the communicating to determine connectivity information, the determining the subset of peer computing devices, and the recording in the cache as the connectivity information changes over time.

20. The method as recited in claim 10 , the digital content being made up of multiple pieces, and for each of the multiple pieces:

the determining the subset of the set of peer computing devices comprising determining one of the set of peer computing devices having at least a threshold data transfer speed to the computing device; and

the accessing one or more of the subset of peer computing devices comprising obtaining, from the one of the set of peer computing devices having at least the threshold data transfer speed, the piece of the digital content.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2015
From: BURBA, ALEXANDER; HUNT, BRANDON T.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 035737/0300 →
Continuity (1)
Related Publication 20160352817A1 · Dec 1, 2016