Author: toad
Date: 2006-08-15 18:57:42 +0000 (Tue, 15 Aug 2006)
New Revision: 10096
Modified:
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/PacketSender.java
Log:
Tweak the timeouts a bit.
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-08-15 18:50:08 UTC
(rev 10095)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-08-15 18:57:42 UTC
(rev 10096)
@@ -215,7 +215,7 @@
void sent() throws UpdatableSortedLinkedListKilledException {
long now = System.currentTimeMillis();
activeTime = now + 500;
- urgentTime = activeTime + 200;
+ urgentTime = activeTime + urgentDelay();
// This is only removed when we actually receive the packet
// But for now it will sleep
}
@@ -224,9 +224,11 @@
this.packetNumber = packetNumber;
packetNumberAsInteger = new Integer(packetNumber);
long now = System.currentTimeMillis();
- activeTime = initialActiveTime(now); // active immediately
- urgentTime = activeTime + 200; // urgent in 200ms
+ activeTime = initialActiveTime(now);
+ urgentTime = activeTime + urgentDelay();
}
+
+ abstract long urgentDelay();
abstract long initialActiveTime(long now);
@@ -281,8 +283,7 @@
private class QueuedResendRequest extends BaseQueuedResend {
long initialActiveTime(long now) {
- // Active in 200ms - might have been sent out of order
- return now + 200;
+ return now; // Active immediately; reordering is rare
}
QueuedResendRequest(int packetNumber) {
@@ -295,6 +296,10 @@
resendRequestQueue.update(this);
}
}
+
+ long urgentDelay() {
+ return PacketSender.MAX_COALESCING_DELAY; // Urgent
pretty soon
+ }
}
private class QueuedAckRequest extends BaseQueuedResend {
@@ -330,6 +335,10 @@
pn.pingAverage.report(t);
Logger.minor(this, "Reported round-trip time of "+t+"ms
on "+pn.getPeer()+" (avg "+pn.pingAverage.currentValue()+"ms,
#"+packetNumber+")");
}
+
+ long urgentDelay() {
+ return PacketSender.MAX_COALESCING_DELAY;
+ }
}
/**
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-08-15 18:50:08 UTC
(rev 10095)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-08-15 18:57:42 UTC
(rev 10096)
@@ -21,7 +21,9 @@
* - Acknowledgements or resend requests need to be sent urgently.
*/
public class PacketSender implements Runnable, Ticker {
-
+
+ static final int MAX_COALESCING_DELAY = 100;
+
final LinkedList resendPackets;
/** ~= Ticker :) */
private final TreeMap timedJobsByTime;
@@ -233,10 +235,10 @@
if(l > messages[j].submitted) l =
messages[j].submitted;
sz += 2 + /* FIXME only 2? */
messages[j].getData(pn).length;
}
- if((l + 100 > now) && (sz < 1024 /* sensible size */)) {
+ if((l + MAX_COALESCING_DELAY > now) && (sz < 1024 /*
sensible size */)) {
// Don't send immediately
- if(nextActionTime > (l+100))
- nextActionTime = l+100;
+ if(nextActionTime > (l+MAX_COALESCING_DELAY))
+ nextActionTime = l+MAX_COALESCING_DELAY;
pn.requeueMessageItems(messages, 0,
messages.length, true, "TrafficCoalescing");
} else {
for(int j=0;j<messages.length;j++) {
@@ -333,8 +335,8 @@
}
long sleepTime = nextActionTime - now;
- // 100ms maximum sleep time - same as the maximum coalescing delay
- sleepTime = Math.min(sleepTime, 100);
+ // MAX_COALESCING_DELAYms maximum sleep time - same as the maximum
coalescing delay
+ sleepTime = Math.min(sleepTime, MAX_COALESCING_DELAY);
if(now - node.startupTime > 60*1000*5) {
if(now - lastReceivedPacketFromAnyNode > Node.ALARM_TIME) {