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;
        }


Reply via email to