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

Reply via email to