×

Parallel data transfer over multiple channels with data order prioritization

  • US 8,103,786 B2
  • Filed: 06/23/2009
  • Issued: 01/24/2012
  • Est. Priority Date: 02/28/2003
  • Status: Active Grant
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.

View all claims
  • 8 Assignments
Timeline View
Assignment View
    ×
    ×