If available blocks are dispersed evenly and randomly over a number of clients (preferably every block on about the same number of clients), then continuity of the file would be most probable and chances of actually downloading all of it in the end would be highest for all.
I think a way to achieve this situation would be to favour upload to clients who have less of the file finished at the expense of clients who are near finishing it.
I am not really sure if this will increase or decrease the total time needed to get a file on eMule, but that may depend on the amount of bias you create.
Of course if you give absolute priority to starting downloaders the time to finish may be very long in some cases. But a good equilibrium that gives somebody who wants to finish it a sporting chance would be great.
The bias should not be so big that it will cause all downloads to finish at about the same time. That would be dangerous for continuity too.
How could this be done? I am not really sure what the possibilities of uploading clients are. If the uploader can assess the stage of the download on the requesters side there are several ways of doing this.
One way is manipulating the queue and putting newbie downloaders to the front and oldies to the back. I don’t like that option very much. I thought of something else.
What if you asses the requester when it’s his turn and then give the newbie’s a bigger quota? For instance if they have less than 20% of the file finished you give them 5 blocks, if they are past 20% but have less than 40 % you give them 4, less than 60 % you give them 3, less than 80%, 2 and if they are over 80% you give them only 1?
This post has been edited by DatHebIkWeer: 09 July 2012 - 02:47 PM