Re: [core-dev] Downloading in 100k chunks
Sumeet Thadani <[email protected]> Wed, 30 Jun 2004 10:58:12 -0400
| Newsgroups | gmane.network.gnutella.limewire.core.devel |
|---|---|
| Message-ID | <[email protected]> |
It's time to revisit this stuff. Currently about 100% of our downloads HTTP1.1, since we used having a hash as the heuristic for distinguishing HTTP1.1 uploaders from HTTP 1.0 uploaders. Given that MIN_SPLIT_SIZE == CHUNK_SIZE we are seeing no stealing happening at all. For the stealing to occur, MIN_SPLIT_SIZE needs to be less than CHUNK_SIZE. Note that this is not a bad thing -- read on to see why. Increasing the chunk size has the advantage that on high-latency/low-bandwidth connections we would speed up the download by sending less headers (note that this was much worse with HTTP 1.0 downloads -- since if the chunk size was too small we would have to re-establish the TCP connection for each chunk). Having a very large chunk is also not the best idea -- stealing from a HTTP 1.1 uploader is tricky, because there is no way to tell the server to stop the uploading (meaning change your mind about the range you want) after you have made the request. Once the request is made, you have to download the range requested before you make the next request or close the connection if another worker steals a part of that chunk from you. So you have to predeterine what ranges you want before you make the request, and if the range is too big, and one downloader is going slow you can steal from it but at the expense of having the close that connection, So It's a delicate balance. Using a heuristic like 1% may not be optimal -- for a small file, 1% can be much smaller than the current chunk size, and may cause far more http headers to be exchanged than necessary. Comments? Thanks, Sumeet Gregorio Roper wrote: > Is it still necessary to download all files in 100k chunks? It seems a > little inefficient sending all these HTTP-requests/responses back and > forth and it definitely slows the download down if you are working > with a high latency connection. > Maybe using a dynamic chunk size of 1% of the file size would be a > good idea. > > mfg > gregorio > _______________________________________________ > core-dev mailing list > [email protected] > http://www.limewire.org/mailman/listinfo/core-dev > > . > _______________________________________________ core-dev mailing list [email protected] http://www.limewire.org/mailman/listinfo/core-dev