Author: toad
Date: 2007-08-22 23:44:31 +0000 (Wed, 22 Aug 2007)
New Revision: 14851
Modified:
trunk/freenet/src/freenet/node/LocationManager.java
trunk/freenet/src/freenet/node/Node.java
Log:
Make inter-swap interval equal to swap RTT with some bounds. Display both this
and the raw RTT.
Modified: trunk/freenet/src/freenet/node/LocationManager.java
===================================================================
--- trunk/freenet/src/freenet/node/LocationManager.java 2007-08-22 23:39:18 UTC
(rev 14850)
+++ trunk/freenet/src/freenet/node/LocationManager.java 2007-08-22 23:44:31 UTC
(rev 14851)
@@ -57,6 +57,10 @@
static final int SEND_SWAP_INTERVAL = 8000;
/** The average time between sending a swap request, and completion. */
final BootstrappingDecayingRunningAverage averageSwapTime;
+ /** Minimum swap delay */
+ static final int MIN_SWAP_TIME =
Node.MIN_INTERVAL_BETWEEN_INCOMING_SWAP_REQUESTS;
+ /** Maximum swap delay */
+ static final int MAX_SWAP_TIME = 60*1000;
private static boolean logMINOR;
final RandomSource r;
final SwapRequestSender sender;
@@ -144,7 +148,7 @@
long startTime = System.currentTimeMillis();
double nextRandom = r.nextDouble();
while(true) {
- int sleepTime = SEND_SWAP_INTERVAL;
+ int sleepTime = getSendSwapInterval();
sleepTime *= nextRandom;
sleepTime = Math.min(sleepTime, Integer.MAX_VALUE);
long endTime = startTime + (int)sleepTime;
@@ -209,7 +213,16 @@
"Outgoing swap request handler for port
"+node.getDarknetPortNumber());
}
- /**
+ public int getSendSwapInterval() {
+ int interval = (int) averageSwapTime.currentValue();
+ if(interval < MIN_SWAP_TIME)
+ interval = MIN_SWAP_TIME;
+ if(interval > MAX_SWAP_TIME)
+ interval = MAX_SWAP_TIME;
+ return interval;
+ }
+
+ /**
* Similar to OutgoingSwapRequestHandler, except that we did
* not initiate the SwapRequest.
*/
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2007-08-22 23:39:18 UTC (rev
14850)
+++ trunk/freenet/src/freenet/node/Node.java 2007-08-22 23:44:31 UTC (rev
14851)
@@ -2500,6 +2500,10 @@
return lm.getAverageSwapTime();
}
+ public int getSendSwapInterval() {
+ return lm.getSendSwapInterval();
+ }
+
public int getNumberOfRemotePeerLocationsSeenInSwaps() {
return lm.numberOfRemotePeerLocationsSeenInSwaps;
}