Firstly, I _am_ willing to write this code myself. Also, I have not looked for the relevant bits of code and am rather new to the codebase.
I'm currently downloading a rather large file. Parallel downloads have settled down a bit and I currently have about seven sources of wildly different speeds. With the current algorithm if a server is selected for chunk n and then times out or runs into some other problem the first source to finish goes back to fill in the hole. This is highly predictable but unfortunate in at least edge cases if not many cases. If the first thread to finish is a particularly slow thread or a thread that itself often times out you wind up with 80% of the file downloaded with a gap at around 10%. If this is music it's somewhat annoying. If this is video it can be downright disasterous if there is any plot to the video whatsoever. Of course, you can just download the entire thing before watching, but it just seems more correct to have logical streaming abilities. It seems like it would be better if slower sources are sent ahead in the file. We should wait for a faster source to finish to go back and pick up the chunk. In the current cast at least roughly same-sized chunks take an order of magnitude longer with some sources. So: 1) Would this patch stand a chance of being included as an advanced user option? 2) Can someone point me at the right file to get started hacking on? Just as a note, I have hacked gtk-gnutella before, indirectly. I made a patch for napshare, I believe the name was. Little did I know at the time that the mailing list was completely dead and there was nobody around to accept the patch. I appologize for the verbosity. ~Daniel ------------------------------------------------------- This SF.net email is sponsored by Demarc: A global provider of Threat Management Solutions. Download our HomeAdmin security software for free today! http://www.demarc.com/Info/Sentarus/hamr30 _______________________________________________ Gtk-gnutella-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel
