Author: toad
Date: 2007-03-27 15:58:17 +0000 (Tue, 27 Mar 2007)
New Revision: 12385

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeStats.java
Log:
Move fudge factor entirely to NodeStats.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-03-26 16:18:24 UTC (rev 
12384)
+++ trunk/freenet/src/freenet/node/Node.java    2007-03-27 15:58:17 UTC (rev 
12385)
@@ -875,7 +875,6 @@
                                                        } else {
                                                                if(ibwLimit <= 
0) throw new InvalidConfigValueException("Bandwidth limit must be positive or 
-1");
                                                                
inputLimitDefault = false;
-                                                               ibwLimit = 
ibwLimit * 4 / 5; // fudge factor; take into account non-request activity
                                                        }
                                                }
                                                
nodeStats.setInputLimit(ibwLimit);

Modified: trunk/freenet/src/freenet/node/NodeStats.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStats.java       2007-03-26 16:18:24 UTC 
(rev 12384)
+++ trunk/freenet/src/freenet/node/NodeStats.java       2007-03-27 15:58:17 UTC 
(rev 12385)
@@ -49,6 +49,9 @@
         * block send time.
         */
        public static final int MAX_INTERREQUEST_TIME = 10*1000;
+       
+       /** Fudge factor for high level bandwidth limiting. FIXME should be a 
long term running average */
+       public static final double FRACTION_OF_BANDWIDTH_USED_BY_REQUESTS = 0.8;

        private final Node node;
        private MemoryChecker myMemoryChecker;
@@ -828,7 +831,7 @@
        }

        public void setOutputLimit(int obwLimit) {
-               obwLimit = (obwLimit * 4) / 5; // fudge factor; take into 
account non-request activity
+               obwLimit *= FRACTION_OF_BANDWIDTH_USED_BY_REQUESTS; // fudge 
factor; take into account non-request activity
                
requestOutputThrottle.changeNanosAndBucketSize((1000L*1000L*1000L) /  obwLimit, 
Math.max(obwLimit*60, 32768*20));
                if(node.inputLimitDefault) {
                        int ibwLimit = obwLimit * 4;
@@ -837,6 +840,7 @@
        }

        public void setInputLimit(int ibwLimit) {
+               ibwLimit *= FRACTION_OF_BANDWIDTH_USED_BY_REQUESTS;
                
requestInputThrottle.changeNanosAndBucketSize((1000L*1000L*1000L) /  ibwLimit, 
Math.max(ibwLimit*60, 32768*20));
        }



Reply via email to