On Sun, Nov 09, 2003 at 12:33:48PM -0800, Brandon Low wrote: > Update of /cvsroot/freenet/freenet/src/freenet/node/rt > In directory sc8-pr-cvs1:/tmp/cvs-serv21891/freenet/src/freenet/node/rt > > Modified Files: > NGRoutingTable.java > Log Message: > Change how rt nodes are removed from the rt. This sorting seems to make more sense > logically, and in practice, it's significantly improved the apparent quality of my > route.
This needs more testing, but looks good. Using the number of successes
is fine as long as it's a last resort. consecutiveConnectionFailures is
0 if we have any open connections, even if we have some conn failures;
I'm uncertain whether moving it below lastSuccess is entirely valid but
hopefully it will work better in practice.
>
> Index: NGRoutingTable.java
> ===================================================================
> RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/NGRoutingTable.java,v
> retrieving revision 1.31
> retrieving revision 1.32
> diff -u -w -r1.31 -r1.32
> --- NGRoutingTable.java 7 Nov 2003 18:17:14 -0000 1.31
> +++ NGRoutingTable.java 9 Nov 2003 20:33:43 -0000 1.32
> @@ -425,36 +425,41 @@
> final long lastSuccess;
> final long lastAccess;
> final long createdTime;
> - final int consecutiveConnectionFailures; // zero if connected
> + final int successes;
> + final int consecutiveConnectionFailures; //0 if connected
>
> public String toString() {
> return "NGRT.MyDiscardValue: lastSuccess="+lastSuccess+
> - ", lastAccess="+lastAccess+", connFailures="+
> - consecutiveConnectionFailures;
> + ", lastAccess="+lastAccess+", successes="+
> + successes;
> }
>
> MyDiscardValue(long success, long access, long created,
> - int connFailures) {
> + int successes, int connFailures) {
> lastSuccess = success;
> lastAccess = access;
> - consecutiveConnectionFailures = connFailures;
> + this.successes = successes;
> createdTime = created;
> + consecutiveConnectionFailures = connFailures;
> }
>
> public int compareTo(Object c) {
> - MyDiscardValue o = (MyDiscardValue)c;
> // Upside down, like Ticker, because this is on a Heap
> - // Higher = more failures = worse
> - if(consecutiveConnectionFailures <
> - o.consecutiveConnectionFailures) return -1;
> - if(consecutiveConnectionFailures >
> - o.consecutiveConnectionFailures) return 1;
> + MyDiscardValue o = (MyDiscardValue)c;
> // Higher = more recent = better
> // But if its success was before our creation, ignore it
> if(lastSuccess < o.lastSuccess &&
> lastSuccess > o.createdTime) return 1;
> if(lastSuccess > o.lastSuccess &&
> o.lastSuccess > createdTime) return -1;
> + // Higher = more failures = worse
> + if(consecutiveConnectionFailures >
> + o.consecutiveConnectionFailures) return 1;
> + if(consecutiveConnectionFailures <
> + o.consecutiveConnectionFailures) return -1;
> + // Higher = more successes = better
> + if(successes < o.successes) return 1;
> + if(successes > o.successes) return -1;
> // ALL nodes have a lastAccess time - they get one on startup
> // So it is highly unlikely that this will fail
> if(lastAccess < o.lastAccess) return 1;
> @@ -495,9 +500,9 @@
> }
> ret = new MyDiscardValue(ne.lastSuccessTime(),
>
> ne.lastAccessedTime(), ne.createdTime(),
> - x);
> +
> ne.successes(),x);
> } else
> - ret = new MyDiscardValue(-1, -1, -1, 0);
> + ret = new MyDiscardValue(-1, -1, -1, 0, 0);
> Core.logger.log(this, "Returning "+ret,
> Logger.DEBUG);
> return ret;
>
> _______________________________________________
> cvs mailing list
> [EMAIL PROTECTED]
> http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs
--
Matthew J Toseland - [EMAIL PROTECTED]
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.
signature.asc
Description: Digital signature
_______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
