Author: toad
Date: 2008-04-25 23:18:06 +0000 (Fri, 25 Apr 2008)
New Revision: 19566
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1144: (mandatory Monday)
Pre-emptive request rejection/load limiting:
- In RequestHandler.sendSSK(), send the throttled packet synchronously, so that
we get the sentBytes() callback before reporting the total bytes sent for the
request. The estimated sent bytes for an SSK request were much lower than they
should be because of this bug, so we were accepting more SSKs than we should.
- CHK/SSK balancing code wasn't working for remote requests. We lock the UID
before calling shouldRejectRequest(), and it calculates the number of running
requests of each type from the number of UIDs locked... so the mechanism (only
accept if we have enough spare bandwidth to accept one request of each type)
was broken, and we were accepting far more SSK requests than we should, and far
fewer CHKs.
- Both changes together, we should accept a lot more CHKs, especially on low
bandwidth nodes. My 8K/sec test node has gone from 10% payload to 30%, and 7:1
to 3:1 SSK:CHK ratio. Should also see fewer "Insufficient output bandwidth"'s
on severely bandwidth constrained nodes.
Datastore access on the UdpSocketHandler thread:
- FailureTable was doing datastore access on the UdpSocketHandler thread.
Nowhere else does this, and it can cause long delays, transfer timeouts etc
when there is heavy disk load. Use a SerialExecutor to run onOffer() and
sendOfferedKey().
Web interface:
- Only take into account valid useralerts when calculating the alert level (CSS
type, i.e. color) of the summary box. Fix CSS.
- Upload form on the queue page: clearer, explain a bit, differentiate between
the two browse buttons. Don't show the second if we don't have full access. Two
lines, not one which went off the end of the screen.
- Update bookmarks.
Resource usage:
- Limit parallel decodes to 3, so that we stay below the 1024 file descriptor
limit (~140 average plus 256 for each full segment decode/encode), which is
typical on most unixes, per-user so really we should reduce usage beyond this,
but that will require more work.
Trivial optimisations:
- Create StatsConfig when needed, rather than having it as a field on Node.
Dev stuff:
- Logging.
Installer:
- Up version to 0.7-RC2.
JSTUN:
- Logging.
j16sdiz
nextgens
toad
Thingamablog: (dieppe)
Fix potential "There is no @ in that URI!"
Add a value for a mnemonic key in L10n english and french files
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-04-25 23:04:42 UTC (rev
19565)
+++ trunk/freenet/src/freenet/node/Version.java 2008-04-25 23:18:06 UTC (rev
19566)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1143;
+ private static final int buildNumber = 1144;
/** Oldest build of Fred we will talk to */
- private static final int oldLastGoodBuild = 1140;
- private static final int newLastGoodBuild = 1143;
+ private static final int oldLastGoodBuild = 1143;
+ private static final int newLastGoodBuild = 1144;
static final long transitionTime;
static {
final Calendar _cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
// year, month - 1 (or constant), day, hour, minute, second
- _cal.set( 2008, Calendar.APRIL, 25, 0, 0, 0 );
+ _cal.set( 2008, Calendar.APRIL, 28, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}