On Wednesday 05 November 2003 11:57 am, Martin Stone Davis wrote:
Roger Hayter wrote:
As I understand it, the present routing method tries to predict the node to contact which will give it the quickest response overall to its request.
Almost. It chooses the node for which estimate() is the least. As I understand it (please someone correct me if I'm wrong) estimate() is *roughly* defined as:
pSuccess*tSuccess + pFailure*(tFailure+tGlobalSuccess)
where all of the below are a function of location in the keyspace:
pSuccess=chance of the node returning data tSuccess=time it will take the node to return data if successful pFailure=1-pSuccess tFailure=time it will take the node to fail tGlodalSuccess=time it will take to retrieve data successfully if we went to another node. I believe this is estimated by averaging all the past tSuccess:es *starting from our node*. So if, in the past, we had to try 10 different nodes to get a success for a key in this area, all the time we spent trying the 10 nodes is added-in to tGlobalSuccess.
Wait. Shouldn't that be
pSuccess*tSuccess + pFailure*(tFailure+tGlobalSuccess+tTimeItTakesForTheOriginalNodeToFindOutItFailed).
if it it's not, it should be. (note to self: need a better varable name)
Since it's the original node (our node) that is measuring all of this, tFailure includes tTimeItTakesForTheOriginalNodeToFindOutItFailed.
-Martin
_______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
