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.
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