Parallel data transfer over multiple channels with data order prioritization
First Claim
Patent Images
1. A computing device comprising:
- a microprocessor;
a parallel download system executing on the microprocessor to control download of data from a plurality of source servers in parallel, wherein each of the source servers stores a copy of at least a portion of a file containing data, the parallel download system comprising;
a source scheduler executing on the microprocessor and configured to rank a plurality of communication channels to generate a download schedule specifying from which of the plurality of communication channels data will be downloaded in parallel at a point in time, and wherein each of the plurality of communication channels comprises a network connection from the computing device to one of the plurality of source servers;
a prioritization scheduler executing on the microprocessor and configured to (i) determine a range of the data to be requested from one or more source servers, (ii) determine the point in time when the range of data is to be requested from the one or more source servers, (iii) track an overall latency and throughput for the communication channels during parallel download of the data, and (iv) dynamically adjust the download schedule based on the latency and throughput of the communication channels to control download performance;
a proportional allocator executing on the microprocessor and configured to determine a plurality of portions of the range of data to be downloaded from each of the source servers and assign a time interval for downloading each of the plurality of portions of the range of data, wherein the proportional allocator determines the plurality of portions to be download from each of the source server based on one or more of an expected throughput and latency of one or more communication channels to that source server during the time interval for downloading the plurality of portions of the range of data; and
an I/O dispatcher executing on the microprocessor and configured to produce an output stream to present the downloaded data to one or more external applications or a user.
8 Assignments
0 Petitions
Accused Products
Abstract
A parallel download system is described to download data from a plurality of source servers in parallel. The system may include a source scheduler, a prioritization scheduler, and an I/O dispatcher. The source scheduler generates a download schedule to control which source servers will be downloaded from at a current point in time. The prioritization scheduler tracks the latency and throughput of all channels to the source servers and dynamically adjusts the download schedule to control download performance. The I/O dispatcher produces an output stream to present the downloaded data to one or more external applications or a user.
-
Citations
34 Claims
-
1. A computing device comprising:
-
a microprocessor; a parallel download system executing on the microprocessor to control download of data from a plurality of source servers in parallel, wherein each of the source servers stores a copy of at least a portion of a file containing data, the parallel download system comprising; a source scheduler executing on the microprocessor and configured to rank a plurality of communication channels to generate a download schedule specifying from which of the plurality of communication channels data will be downloaded in parallel at a point in time, and wherein each of the plurality of communication channels comprises a network connection from the computing device to one of the plurality of source servers; a prioritization scheduler executing on the microprocessor and configured to (i) determine a range of the data to be requested from one or more source servers, (ii) determine the point in time when the range of data is to be requested from the one or more source servers, (iii) track an overall latency and throughput for the communication channels during parallel download of the data, and (iv) dynamically adjust the download schedule based on the latency and throughput of the communication channels to control download performance; a proportional allocator executing on the microprocessor and configured to determine a plurality of portions of the range of data to be downloaded from each of the source servers and assign a time interval for downloading each of the plurality of portions of the range of data, wherein the proportional allocator determines the plurality of portions to be download from each of the source server based on one or more of an expected throughput and latency of one or more communication channels to that source server during the time interval for downloading the plurality of portions of the range of data; and an I/O dispatcher executing on the microprocessor and configured to produce an output stream to present the downloaded data to one or more external applications or a user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method to control download of data from a plurality of source servers in parallel the method comprising:
-
ranking a plurality of communication channels, in a computing device, to generate a download schedule to control from which of the plurality of communication channels data will be downloaded in parallel at a point in time, wherein each of the source servers stores a copy of at least a portion of a file containing data, and wherein each of the plurality of communication channels comprises a network connection from the computing device to one of the plurality of source servers; determining, in the computing device, a range of the data to be requested from one or more source servers; determining, in the computing device, the point in time when the range of data should be requested from the one or more source servers; tracking, in the computing device, an overall latency and throughput for all the communication channels during parallel download of the data; dynamically adjusting, in the computing device, the download schedule based on the latency and throughput of the communication channels, wherein dynamically adjusting comprises dynamically adjusting the range of data and the point in time to request the range of data from the one or more source servers during parallel download to control download performance; determining, in the computing device, a plurality of portions of the range of data to be downloaded from that source server and assigning, via the computing device, a time interval for downloading each of the plurality of portions of the range of data, wherein determining the plurality of portions to be download comprises determining the plurality of portion to be downloaded from that source server based on one or more of an expected throughput and latency of one or more communication channels to that source server during the time interval for downloading the plurality of portions of the range of data; and producing, in the computing device, an output stream to present the downloaded data to one or more external applications or a user. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification