Author: toad
Date: 2006-06-23 13:12:48 +0000 (Fri, 23 Jun 2006)
New Revision: 9365
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/Version.java
Log:
838: Minor fix to load limiting...
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-06-23 12:50:43 UTC (rev
9364)
+++ trunk/freenet/src/freenet/node/Node.java 2006-06-23 13:12:48 UTC (rev
9365)
@@ -356,6 +356,7 @@
public synchronized void successfulCompletion(long rtt) {
roundTripTime.report(Math.max(rtt, 10));
+ Logger.minor(this, "Reported successful completion:
"+rtt+" on "+this+" avg "+roundTripTime.currentValue());
}
}
@@ -1428,7 +1429,7 @@
chkRequestStarter.start();
//insertThrottle = new ChainedRequestThrottle(10000, 2.0F,
requestThrottle);
// FIXME reenable the above
- chkInsertThrottle = new MyRequestThrottle(throttleWindow,
10000, "CHK Insert");
+ chkInsertThrottle = new MyRequestThrottle(throttleWindow,
20000, "CHK Insert");
chkInsertStarter = new RequestStarter(this, chkInsertThrottle,
"CHK Insert starter ("+portNumber+")");
chkPutScheduler = new ClientRequestScheduler(true, false,
random, chkInsertStarter, this);
chkInsertStarter.setScheduler(chkPutScheduler);
@@ -1441,7 +1442,7 @@
sskRequestStarter.start();
//insertThrottle = new ChainedRequestThrottle(10000, 2.0F,
requestThrottle);
// FIXME reenable the above
- sskInsertThrottle = new MyRequestThrottle(throttleWindow,
10000, "SSK Insert");
+ sskInsertThrottle = new MyRequestThrottle(throttleWindow,
20000, "SSK Insert");
sskInsertStarter = new RequestStarter(this, sskInsertThrottle,
"SSK Insert starter ("+portNumber+")");
sskPutScheduler = new ClientRequestScheduler(true, true,
random, sskInsertStarter, this);
sskInsertStarter.setScheduler(sskPutScheduler);
@@ -1704,7 +1705,8 @@
status ==
RequestSender.ROUTE_NOT_FOUND ||
status ==
RequestSender.VERIFY_FAILURE) {
long rtt = System.currentTimeMillis() -
startTime;
- throttleWindow.requestCompleted();
+ if(!rejectedOverload)
+
throttleWindow.requestCompleted();
chkRequestThrottle.successfulCompletion(rtt);
}
}
@@ -1791,7 +1793,9 @@
status ==
RequestSender.ROUTE_NOT_FOUND ||
status ==
RequestSender.VERIFY_FAILURE) {
long rtt = System.currentTimeMillis() -
startTime;
- throttleWindow.requestCompleted();
+
+ if(!rejectedOverload)
+
throttleWindow.requestCompleted();
sskRequestThrottle.successfulCompletion(rtt);
}
}
@@ -1860,7 +1864,7 @@
}
is =
makeInsertSender((NodeCHK)block.getClientKey().getNodeKey(),
MAX_HTL, uid, null, headers, prb, false,
lm.getLocation().getValue(), cache);
- boolean hasForwardedRejectedOverload = false;
+ boolean hasReceivedRejectedOverload = false;
// Wait for status
while(true) {
synchronized(is) {
@@ -1873,8 +1877,8 @@
}
if(is.getStatus() !=
CHKInsertSender.NOT_FINISHED) break;
}
- if((!hasForwardedRejectedOverload) &&
is.receivedRejectedOverload()) {
- hasForwardedRejectedOverload = true;
+ if((!hasReceivedRejectedOverload) &&
is.receivedRejectedOverload()) {
+ hasReceivedRejectedOverload = true;
throttleWindow.rejectedOverload();
}
}
@@ -1889,16 +1893,16 @@
// Go around again
}
}
- if(is.anyTransfersFailed() &&
(!hasForwardedRejectedOverload)) {
- hasForwardedRejectedOverload = true; // not
strictly true but same effect
+ if(is.anyTransfersFailed() &&
(!hasReceivedRejectedOverload)) {
+ hasReceivedRejectedOverload = true; // not
strictly true but same effect
throttleWindow.rejectedOverload();
}
}
- Logger.minor(this, "Completed "+uid+"
overload="+hasForwardedRejectedOverload+" "+is.getStatusString());
+ Logger.minor(this, "Completed "+uid+"
overload="+hasReceivedRejectedOverload+" "+is.getStatusString());
// Finished?
- if(!hasForwardedRejectedOverload) {
+ if(!hasReceivedRejectedOverload) {
// Is it ours? Did we send a request?
if(is.sentRequest() && is.uid == uid && (is.getStatus()
== CHKInsertSender.ROUTE_NOT_FOUND
|| is.getStatus() ==
CHKInsertSender.SUCCESS)) {
@@ -1907,7 +1911,8 @@
long len = endTime - startTime;
chkInsertThrottle.successfulCompletion(len);
- throttleWindow.requestCompleted();
+ if(!hasReceivedRejectedOverload)
+ throttleWindow.requestCompleted();
}
}
@@ -1962,7 +1967,7 @@
}
is = makeInsertSender(block,
MAX_HTL, uid, null, false,
lm.getLocation().getValue(), cache);
- boolean hasForwardedRejectedOverload = false;
+ boolean hasReceivedRejectedOverload = false;
// Wait for status
while(true) {
synchronized(is) {
@@ -1975,8 +1980,8 @@
}
if(is.getStatus() !=
SSKInsertSender.NOT_FINISHED) break;
}
- if((!hasForwardedRejectedOverload) &&
is.receivedRejectedOverload()) {
- hasForwardedRejectedOverload = true;
+ if((!hasReceivedRejectedOverload) &&
is.receivedRejectedOverload()) {
+ hasReceivedRejectedOverload = true;
throttleWindow.rejectedOverload();
}
}
@@ -1993,10 +1998,10 @@
}
}
- Logger.minor(this, "Completed "+uid+"
overload="+hasForwardedRejectedOverload+" "+is.getStatusString());
+ Logger.minor(this, "Completed "+uid+"
overload="+hasReceivedRejectedOverload+" "+is.getStatusString());
// Finished?
- if(!hasForwardedRejectedOverload) {
+ if(!hasReceivedRejectedOverload) {
// Is it ours? Did we send a request?
if(is.sentRequest() && is.uid == uid && (is.getStatus()
== SSKInsertSender.ROUTE_NOT_FOUND
|| is.getStatus() ==
SSKInsertSender.SUCCESS)) {
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-06-23 12:50:43 UTC
(rev 9364)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-06-23 13:12:48 UTC
(rev 9365)
@@ -161,7 +161,8 @@
// Any urgent notifications to send?
long urgentTime = pn.getNextUrgentTime();
// Should spam the logs, unless there is a deadlock
- Logger.minor(this, "Next urgent time: "+urgentTime+" for
"+pn.getDetectedPeer());
+ if(urgentTime < Long.MAX_VALUE)
+ Logger.minor(this, "Next urgent time: "+urgentTime+"
for "+pn.getDetectedPeer());
if(urgentTime <= now) {
// Send them
try {
@@ -326,6 +327,7 @@
if(sleepTime > 0) {
try {
synchronized(this) {
+ Logger.minor(this, "Sleeping for "+sleepTime);
wait(sleepTime);
}
} catch (InterruptedException e) {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-23 12:50:43 UTC (rev
9364)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-23 13:12:48 UTC (rev
9365)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 837;
+ private static final int buildNumber = 838;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 765;