Dynamic performance based server selection
First Claim
1. A system for downloading a desired file from a network of multiple servers which have a copy of the file, the system comprising:
- means for identifying the locations of the desired file at each server;
means for estimating a throughput rate of transfer of the desired file from each server; and
means for selecting the server having the best estimated throughput rate for completing transfer of the desired file;
wherein said means for estimating further comprises;
means for initiating the transfer of selected portions of the file from each server, and means for determining the time to receive the selected portions of the file from each server.
2 Assignments
0 Petitions
Accused Products
Abstract
Downloading of Internet files is optimized based on which of multiple locations is most efficient in providing the files. Identical or contiguous portions of a file are downloaded from different servers, and performance data such as a bit rate for each site is used to then select the optimal server to complete the download. An applet intercepts the request for the file from a web browser and determines the best server to provide the file. When the request is intercepted, it reads a list of available file transfer protocol (ftp) locations from which to download the file. The applet or other type of program pings each site to prioritize the list based on shortest response time. The throughput of the finally selected server is tracked as the file is downloaded. If the throughput drops below a desired throughput, the next best server is selected from the previous list, or the selection and tracking process is started again to determine if a faster server has become available due to changes in demand on the servers.
167 Citations
24 Claims
-
1. A system for downloading a desired file from a network of multiple servers which have a copy of the file, the system comprising:
-
means for identifying the locations of the desired file at each server;
means for estimating a throughput rate of transfer of the desired file from each server; and
means for selecting the server having the best estimated throughput rate for completing transfer of the desired file;
wherein said means for estimating further comprises;
means for initiating the transfer of selected portions of the file from each server, and means for determining the time to receive the selected portions of the file from each server. - View Dependent Claims (2, 3, 4)
means for estimating latency of each server; and
means for subtracting the latency during the measuring of the throughput of each server.
-
-
5. A system for downloading a desired file from a network of multiple servers which have a copy of the file, the system comprising:
-
means for identifying the locations of the desired file at each server;
means for measuring a latency for each server;
means for measuring a time taken to transfer selected portions of information from each server, means for subtracting the latency from such time taken and to provide a throughput rate; and
means for selecting the server having the best measured throughput rate for completing transfer of the desired file;
wherein the selected portions of information comprise substantially the same portion of the desired file from each server. - View Dependent Claims (6)
-
-
7. A computerized system for downloading desired files from a network of multiple servers, some of which have a copy of the file, the system comprising:
-
a module that obtains a list of servers having a copy of a desired file;
a download module that initiates downloading of selected portions of the desired file from multiple servers; and
a module that measures the throughput from each of said server and selects an optimal server for completion of downloading of the file; and
further comprising a module for monitoring the throughput of the selected optimal server and selecting a new optimal server if the throughput falls below a desired level. - View Dependent Claims (8, 9, 10)
-
-
11. A method of downloading desired files from a network of multiple servers, some of which have a copy of the file, the method comprising:
-
obtaining a list of servers having a copy of a desired file, downloading selected portions of the desired file from multiple different servers;
measuring the throughput from each server; and
selecting an optimal server for completion of the download of the desired file, further comprising monitoring the throughput of the selected optional server; and
further comprising selecting a new optimal server if the throughput of the selected optimal server falls below a desired level. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
measuring a time for response to a message from each server.
-
-
13. The method of claim 12 wherein the message comprises a ping.
-
14. The method of claim 12 wherein the time for response from each server is subtracted from the time measured for downloading each portion from each corresponding server.
-
15. The method of claim 11 wherein the new optimal server is selected based on previously measured throughput from each server.
-
16. The method of claim 11 wherein the new optimal server is selected based current measurement of throughput as in claim 14.
-
17. The method of claim 11 wherein the selected portions comprise the same portion.
-
18. The method of claim 11 wherein the selected portions comprise consecutive portions of the desired file.
-
19. The method of claim 11 wherein the size of the selected portions is based on a predetermined number of bits, or on a predetermined time for downloading.
-
20. A computer readable medium having instructions stored thereon for causing a computer to implement a method of downloading desired files from a network of multiple servers, some of which have a copy of the file, the method comprising:
-
obtaining a list of servers having a copy of a desired file;
downloading selected portions of the desired file from multiple different servers;
measuring the throughput from each such server; and
selecting an optimal server for completion of the download of the desired file; and
further comprising monitoring the throughput of the selected optimal server and selecting a new optimal server if the throughput falls below a desired level;
completing downloading of the file.
-
-
21. A computer readable medium having instructions stored thereon for causing a computer to implement a method of downloading desired files from a network of multiple servers, some of which have a copy of the file, the method comprising:
-
obtaining a list of servers having a copy of a desired file;
downloading selected portions of the desired file from multiple different servers;
measuring the throughput from each such server;
selecting an optimal server for completion of the download of the desired file;
monitoring the throughput as the selected optimal server downloads the rest of the file; and
redetermining an optimal server if the throughput of the selected optimal server falls below a desired level.
-
-
22. A computer implemented method of selecting a server for downloading a desired file from a network of multiple servers which have a copy of the file, the method comprising:
-
identifying the locations of the desired file at each server;
measuring a latency for each server;
measuring a time taken to transfer selected portions of information from each server;
subtracting the latency from such time taken and to provide a throughput rate; and
selecting the server having the best measured throughput rate for completion of transfer of the desired file;
wherein the selected portions of information comprise substantially the same portion of the desired file from each server. - View Dependent Claims (23, 24)
transferring remaining portions of the file from the selected server.
-
-
24. A computer readable medium having instructions stored thereon for causing a computer to perform the method of claim 22.
Specification