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