Ok, we need to think about how to account for DNFs in NGrouting - and we 
want to do it with the minimum of alchemy.

The problem is that most DNFs will be "legitimate", meaning that the 
data wasn't in Freenet so the node shouldn't be punished for returning a 
DNF.  But how do we know which DNFs are and are not legitimate?

The answer is, we can't - but what we can do is look at a node's DNF 
performance over time, and observe whether it is returning DNFs more 
frequently than the best-performing node in our routing table.

Why the best performing node?  Well, we want to estimate the ratio of 
requests for which there is actually data in the network.  Imagine an 
ubernode - one which is extremely smart and incredibly effective at 
finding what it is looking for (therefore not DNFing).  Well, no matter 
how smart it is - it isn't going to be able to find data that isn't in 
the network - so its DNF ratio is likely to be a good indicator of the 
ratio of requests for which data exists at all.

So, now we know that a node is performing less effectively than the best 
performing node, how should it be penalized when calculating estimated 
routing time?  This is a tough one, since it demands that we quantify 
the time-cost of a node failing to find some information which actually 
exists.  Ultimately this is impossible to do - but we can take a stab at 
it by pretending that all requests are part of a splitfile download.  In 
this case, the cost of a failed request is the cost of having to request 
another chunk of data to replace the one we didn't get.  Now, clearly 
this doesn't account for the mental anguish someone might have if they 
don't get their daily dose of TFE - but at least it has some realistic 
basis in reality.

So, to account for the liklihood of unwarrented DNFs - we should add the 
following to our estimate:

timeEstimate += (thisNodesDnfProb - bestDnfProb)*globalAverageResponseTime

Reasonable (at least as a first iteration)?

Ian.

-- 
Ian Clarke                                                  [EMAIL PROTECTED]
Coordinator, The Freenet Project              http://freenetproject.org/
Founder, Locutus                                        http://locut.us/
Personal Homepage                                   http://locut.us/ian/

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to