On Tue, Sep 30, 2003 at 08:12:31AM -0400, Ed Tomlinson wrote:
> 1.  The NG weight calculation contains 4 terms,  wSF, wTF, wDNF, wSuccess.
> The last two are conditional on pSF (and pConn which is not used now).  When
> a node is busy its pSF quickly reaches .99 or larger.  This tends to damp out
> any wDNF/wSucess info so, in effect when we are routing to busy nodes, we
> route randomly.  If we remove the (1-SFp)*(1-pConn) factor from these terms
> we would try the busy nodes in order of specialization.

But that term is there for a reason - namely to discourage routing to 
busy nodes in a manner that tries to balance the risk that the node will 
QR with the benefits of routing to that node.  Getting rid of that term 
will eliminate NGR's load balancing.

> 2. When estimating weights, if pDNF is zero, wDNF can be less than zero.  I
> suggest that, when the estimator for a node returns zero for pDNF (it has no
> info a this time) we would be better to use pLegitDNF.  i.e. add if(pDNF==0) 
> pDNF=pLegitDNF;

Yes, I think there is a general argument to be made that we should use 
global averages when we don't have enough node-specific data for a given 
estimate.

> 3. In the routing table, we currently keep lots of nodes that are maintaining 
> high pSF ratios.  This implies that they are very busy.  In the LRU logic used 
> for node replacement I suggest that nodes getting SFs not have their access 
> time updated.  This would mean they would drop off the routing table more 
> quickly.  This possibily could be applied to TFs too but not only if SF is not 
> sufficient.

Absolutely, I would go one further and say that access times should only be 
updated with a node successfully returns data - this is a *major* issue and 
could be having a serious negative impact (it would explain the slow 
node-turnover in the RT causing it to fill up with overloaded nodes).

> 4. When a node sees a reference for node not in its routing table it adds the node
> to it - a reference hints to us that the referenced node wants traffic.  Why not use
> that info for nodes in the rt too?

Probably makes sense, but remember that every time we add a new ref, and old 
one has to die.  I would implement (3) and see if that addresses the node 
turnover problem before we implement (4).

> What I propose is to peturb the rpSearchFail
> average down when we see a reference for a node already in the rt.  We probably
> want to add code to limit this to one peturb until a request is processed.  This
> would prevent a bad node from attacking by sending reseting all references.
> I have the code to implement most of this written.

What do you mean by "peturb"?  Peturb how?  As described here it smells like 
alchemy, is it?

Ian.

-- 
Ian Clarke                                                  [EMAIL PROTECTED]
Coordinator, The Freenet Project              http://freenetproject.org/
Weblog                               http://slashdot.org/~sanity/journal
_______________________________________________
Devl mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to