Author: toad
Date: 2007-04-13 14:19:49 +0000 (Fri, 13 Apr 2007)
New Revision: 12627
Modified:
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/ThrottleWindowManager.java
Log:
Count non-backed-off peers when calculating alchemical multiplier for load
limiting.
Do not count backed off peers, even if all peers are backed off. While we may
still route to them, we do not in such a case want to increase input load!
max(1, ... ) will ensure we send *some* requests.
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2007-04-13 14:09:16 UTC
(rev 12626)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2007-04-13 14:19:49 UTC
(rev 12627)
@@ -759,20 +759,17 @@
node.clientCore.alerts.register(ua);
}
- public int countRoutablePeers() {
+ public int countNonBackedOffPeers() {
PeerNode[] peers;
synchronized(this) {
peers = connectedPeers; // even if myPeers peers are
connected they won't be routed to
}
- int count = 0;
int countNoBackoff = 0;
for(int i=0;i<peers.length;i++) {
if(peers[i].isRoutable()) {
- count++;
if(!peers[i].isRoutingBackedOff())
countNoBackoff++;
}
}
- if(countNoBackoff == 0) return count;
return countNoBackoff;
}
Modified: trunk/freenet/src/freenet/node/ThrottleWindowManager.java
===================================================================
--- trunk/freenet/src/freenet/node/ThrottleWindowManager.java 2007-04-13
14:09:16 UTC (rev 12626)
+++ trunk/freenet/src/freenet/node/ThrottleWindowManager.java 2007-04-13
14:19:49 UTC (rev 12627)
@@ -31,7 +31,7 @@
if (_simulatedWindowSize < 1.0) {
_simulatedWindowSize = 1.0F;
}
- return _simulatedWindowSize * Math.max(1,
node.peers.countRoutablePeers());
+ return _simulatedWindowSize * Math.max(1,
node.peers.countNonBackedOffPeers());
}
public synchronized void rejectedOverload() {