RE: returning results for partial downloads
"Serguei Osokine" <[email protected]>
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Message-ID | <[email protected]> |
On Saturday, October 06, 2007 Michael Rogers wrote: > In terms of comparing strategies, you could compare bytes downloaded > per byte uploaded or bytes downloaded in a given time. So it is your intent to compare how multiple algorithms fight each other on the same network? Thanks, I missed it. Thought that you are going to load the same algorithm on all the nodes and see what happens. But is the best fighter algorithm necessarily the best one for the network as a whole? Let's say you have two algorithms: 'generous giver' and 'shameless leecher'. You load them on the network, and shameless leacher beats the generous giver hands down in you metrics of bytes downloaded per bytes uploaded. But does it mean that the shameless leecher algorithm has any useful qualities? Not necessarily. Am I missing something in what you're going to do? Best wishes - Oso. -----Original Message----- From: [email protected] [mailto:[email protected]]On Behalf Of Michael Rogers Sent: Saturday, October 06, 2007 3:10 PM To: [email protected] Subject: Re: [the_gdf] returning results for partial downloads Serguei Osokine wrote: > Nice to see someone doing some math on that subject. However, > after the first cursory reading I was not able to understand - what > is it exactly that you are aiming to maximize? Is it your goal to > maximize the cumulative upload rate of the network, or you also > want to divide it between the downloaded in some fair way? What > is your definition of fair, if this is the case? I mean, you need > to calculate a single one-dimensional value (call it the algorithm > quality or utility) for each algorithm to compare them, right? What > is this value and how is it calculated? Hi Serguei, Each node is selfishly trying to maximise the number of bytes downloaded per byte uploaded - the expected utility of uploading a byte is the number of bytes you can expect to download in return, based on the number of bytes uploaded to and downloaded from each peer so far. I've tended to interpret that in terms of maximising the download speed for a given upload speed, but as far as I can see you could use the same strategies to minimise the upload speed for a given download speed. Because there's no explicit choke/unchoke signalling and the utilities are cheap to calculate, the selection could be made very frequently (send a packet, choose the recipient of the next packet, repeat). I haven't explicitly aimed to maximise the total download speed, but I'm hoping the best selfish strategies will also be Pareto efficient as in the prisoner's dilemma. Fairness is harder, especially since there seem to be two contradictory definitions - "equal benefit for all" or "benefit proportional to contribution" - so I tend to steer clear of that word. ;-) In terms of comparing strategies, you could compare bytes downloaded per byte uploaded or bytes downloaded in a given time. Cheers, Michael Yahoo! Groups Links