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) {


Reply via email to