Peer-to-Peer Upload Scheduling
First Claim
1. A computer-implemented method for determining upload configuration for a client acting as a peer-to-peer source of data, the method comprising:
- receiving client information relating to uploads from the client;
determining upload configuration information based on the client information; and
providing the determined upload configuration information to the client, wherein uploads from the client are provided according to the upload configuration information.
1 Assignment
0 Petitions
Accused Products
Abstract
Client devices act as data sources for other clients, such as in a P2P or P2SP situation. The client devices receive upload configuration information based on information relating to their prior uploads and upload operation. Uploads are provided to other client devices according to the upload configuration information. The client devices adjust an upload configuration based on the received upload configuration information. For example, the client devices adjust an upload bandwidth, an upload speed limit, or blocking/non-blocking status for upload channels.
30 Citations
20 Claims
-
1. A computer-implemented method for determining upload configuration for a client acting as a peer-to-peer source of data, the method comprising:
-
receiving client information relating to uploads from the client; determining upload configuration information based on the client information; and providing the determined upload configuration information to the client, wherein uploads from the client are provided according to the upload configuration information.
-
-
2. The method of claim 1, further comprising:
-
receiving a request to provide uploads from the client, the request including the client information relating to uploads from the client, and wherein the determined upload configuration information is provided in response to the received request.
-
-
3. The method of claim 1, wherein the client information comprises local configuration information describing the client'"'"'s current configuration for providing uploads.
-
4. The method of claim 3, wherein the upload configuration information comprises an update of the local configuration information.
-
5. The method of claim 4, wherein the update of the local configuration information includes an upload speed limit for uploads from the client.
-
6. The method of claim 4, wherein the update of the local configuration information includes blocking/non-blocking information determining a number of upload channels from the client.
-
7. The method of claim 3, wherein the client information further comprises network node information describing connections of the client as a network node and bandwidth information describing upload or download bandwidth of the client.
-
8. The method of claim 1, wherein the client information includes an upload speed limit for the client, and determining the upload configuration information comprises:
-
detecting whether the upload speed limit is more than a preset minimum speed value; and responsive to said detection, generating upload configuration information that does not update the upload speed limit.
-
-
9. The method of claim 1, wherein the client information includes a download status of the client and whether an upload speed limit has been set for the client, and determining upload configuration information comprises:
-
detecting whether the client has no set upload speed limit and whether the download status of the client is busy; and responsive to said detections; extracting a historical peak value of upload speed for the client; extracting a historical maximum value of upload speed for the client, when the download status of the client was busy; and determining a range of upload speed limits for the client based on the historical peak value of upload speed, the historical maximum value of upload speed when the download status of the client was busy and a busy rate, the busy rate indicating how much the download status of the client is busy, the upload configuration information including the range of upload speed limits.
-
-
10. The method of claim 9, wherein determining the range of upload speed limits for the client comprises:
-
determining a crest value as the historical maximum value of upload speed when the download status of the client was busy; determining a trough value by multiplying the historical peak value of upload speed by the busy rate; and determining the range of upload speed limits as a range between the crest value and the trough value, wherein the upload speed limit for the client is alternately set at the crest value and at the trough value.
-
-
11. The method of claim 1, wherein the client information includes a download status of the client and whether an upload speed limit has been set for the client, and determining upload configuration information comprises:
-
detecting whether the client has no set upload speed limit and whether the download status of the client is idle; and responsive to said detections; extracting a historical peak value of upload speed for the client; and determining an upload speed limit for the client by multiplying the historical peak value of upload speed by an idle rate, the idle rate indicating how much the download status of the client is idle, the upload configuration information including the determined upload speed limit.
-
-
12. The method of claim 1, wherein the client information includes information relating to network channels from the client, and the upload configuration information relates to blocking/non-blocking of upload channels from the client.
-
13. The method of claim 1, wherein determining upload configuration information based on the client information comprises:
-
determining an upper limit for a number of unblocked upload channels from the client, based on the client information; determining a number of new upload channels, based on the client information; responsive to a determination that the number of new upload channels is greater than or equal to a product of the upper limit and a preset rate, wherein the preset rate is determined empirically, determining the upload configuration information as setting one or more old upload channels in a different Intranet from that of the client to be unblocked, wherein the one or more old upload channels have download speed greater than or equal to a first preset speed.
-
-
14. The method of claim 13, wherein determining the upper limit for the number of unblocked upload channels, based on the client information, comprises:
-
acquiring a number of tasks based on the client information; and determining the upper limit for the number of unblocked upload channels as min{A1,max[A2, the number of tasks×
A3]}, wherein A1 represents an empirical value of the upper limit, A2 represents an empirical value of a lower limit for the number of upload channels and A3 represents an empirical value of a multiplying power of the number of tasks.
-
-
15. The method of claim 1, wherein determining upload configuration information based on the client information comprises:
-
determining an upper limit for the number of unblocked upload channels, based on the client information; and determining a number of new upload channels, based on the client information; responsive to a determination that the number of new upload channels is less than a product of the upper limit and a preset rate, wherein the preset rate is determined empirically, ranking one or more old upload channels in a different Intranet from that of the client, the ranking based on their download speeds; selecting a number of top-ranked old upload channels, wherein the selected old upload channels have download speeds greater than or equal to a second preset speed, and the number selected is a product of the upper limit and a second preset rate, wherein the second preset rate is determined empirically; and determining the upload configuration information as setting the selected old upload channels to be unblocked.
-
-
16. The method of claim 1, wherein determining upload configuration information based on the client information comprises:
-
detecting a plurality of old upload channels in a different Intranet from that of the client; determining an integral value for each of the plurality of old upload channels; ranking the plurality of old upload channels based on the integral value for each of the plurality of old upload channels; selecting a number of top-ranked old upload channels; and determining the upload configuration information as setting the selected old upload channels to be unblocked.
-
-
17. A client device for acting as a peer-to-peer source of data, the client device comprising:
-
a computer processor for executing computer program modules; and a non-transitory computer readable storage device storing computer program modules executable to perform steps comprising; collecting client information relating to uploads from the client; sending the client information to a server; receiving upload configuration information from the server, wherein the upload configuration information is based on the client information; and adjusting an upload configuration for the client based on the received upload configuration information.
-
-
18. The client device of claim 17, wherein adjusting the upload configuration comprises adjusting an upload bandwidth based on the upload configuration information.
-
19. The client device of claim 17, wherein adjusting the upload configuration comprises adjusting an upload speed limit based on the upload configuration information.
-
20. The client device of claim 17, wherein adjusting the upload configuration comprises adjusting blocking/non-blocking status for upload channels from the client device.
Specification