Author: toad
Date: 2005-11-18 14:52:39 +0000 (Fri, 18 Nov 2005)
New Revision: 7558
Modified:
trunk/freenet/src/freenet/node/InsertSender.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/RequestSender.java
trunk/freenet/src/freenet/node/Version.java
Log:
193: (mandatory)
Various minor bugfixes re load balancing.
Revert to CORRECT formula dist = dist / (1.0 - pFailure).
So if a node has 5% loss, its distances get a bit bigger, so it is effectively
more specialized.
Modified: trunk/freenet/src/freenet/node/InsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertSender.java 2005-11-18 12:33:27 UTC
(rev 7557)
+++ trunk/freenet/src/freenet/node/InsertSender.java 2005-11-18 14:52:39 UTC
(rev 7558)
@@ -316,10 +316,12 @@
if(status == REJECTED_OVERLOAD) {
node.getInsertThrottle().requestRejectedOverload();
- next.insertRejectedOverload();
+ if(next != null)
+ next.insertRejectedOverload();
} else if(status == SUCCESS || status == ROUTE_NOT_FOUND) {
node.getInsertThrottle().requestCompleted(System.currentTimeMillis() -
startTime);
- next.insertDidNotRejectOverload();
+ if(next != null)
+ next.insertDidNotRejectOverload();
}
synchronized(this) {
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2005-11-18 12:33:27 UTC
(rev 7557)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2005-11-18 14:52:39 UTC
(rev 7558)
@@ -266,7 +266,9 @@
static double distance(PeerNode p, double loc) {
double d = distance(p.getLocation().getValue(), loc);
double pSummaryFailure = p.getPRejectedOverload();
- return d * pSummaryFailure;
+ double denom = 1.0 - pSummaryFailure;
+ if(denom == 0.0) denom = 0.000001;
+ return d / denom;
}
/**
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2005-11-18 12:33:27 UTC
(rev 7557)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2005-11-18 14:52:39 UTC
(rev 7558)
@@ -303,10 +303,12 @@
if(status == REJECTED_OVERLOAD) {
node.getRequestThrottle().requestRejectedOverload();
- next.rejectedOverload();
+ if(next != null)
+ next.rejectedOverload();
} else if(status == SUCCESS || status == ROUTE_NOT_FOUND || status ==
DATA_NOT_FOUND || status == VERIFY_FAILURE) {
node.getRequestThrottle().requestCompleted(System.currentTimeMillis() -
startTime);
- next.didNotRejectOverload();
+ if(next != null)
+ next.didNotRejectOverload();
}
synchronized(this) {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-18 12:33:27 UTC (rev
7557)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-18 14:52:39 UTC (rev
7558)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 191;
+ public static final int buildNumber = 193;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 191;
+ public static final int lastGoodBuild = 193;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;