Author: toad
Date: 2008-02-14 15:44:00 +0000 (Thu, 14 Feb 2008)
New Revision: 17891
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1110:
Swapping:
- Swap queueing: queue incoming swap requests up to a limit (instead of
rejecting them when we can't lock), process each one after the last one in
unlock().
- The length of the queue is limited to 10 items.
- Any item that stays on the queue for 30 seconds is removed and rejected.
Loops are possible (A waiting for B waiting for A), this prevents them from
being a major problem.
- Should increase swap performance significantly (75% of requests were blocked
in simulation due to already-locked, very few after this code implemented).
Client layer:
- Don't delete the persistent downloads list until we've written a new one.
Content anonymity filters:
- Improved PNG filter strips out comments, timestamps, chunks with bad CRC,
(some) chunks in wrong order, unknown-type chunks. No santising of individual
chunks atm.
- Fix some data corruption bugs caused by double closing.
More work on network coloring (NetworkIDManager)
- Initial network coloring implementation.
- Turned off for now.
- Lots of debugging.
- Lots of logging/output work.
- Try to show keyspace merging in output.
- Disabled code to support separating swapping in different network IDs.
- Variable renaming etc.
Messaging layer:
- Resend after 2 RTTs, re-resend after another two RTTs. Not four RTTs, that's
too long given our rather strange pull-based retransmission. Cut the min/max in
half accordingly.
- Increase the Accepted timeout to 10 seconds on RequestSender (it's already 10
seconds on inserts).
- The above two changes eliminate Accepted timeouts in simulations during the
bootstrap phase.
- Comment out sensitivity-starts-high-and-drops kludge in
TimeDecayingRunningAverage. We don't need it, and it was causing TDRA to be
inconsistent: 10x reports separated by 2 seconds each having a different effect
to 20x reports separated by 1 second.
Ping time averages:
- Much shorter per-peer averager half-life: 30 seconds not 4 minutes.
- Include backed-off peers in ping time average, as discussed on mailing list a
while ago.
- Don't do any overall smoothing.
Persistent throttles:
- Only make the default relative to the nodeDir, not whatever is configured.
Because we can't easily save it as relative to the nodeDir, so it breaks itself.
FProxy refactoring: (so that the fproxy data structures, and the bookmark
manager in particular, don't get created until we've turned on fproxy)
- Finish fproxyConfig in Node after creating STS.
- Create and register Fproxy toadlets when fproxy is enabled, or on startup if
fproxy is enabled on startup.
- Move BookmarkManager into Fproxy. So we don't poll for bookmark updates if
fproxy hasn't been enabled at some point during this startup.
- Remove bookmarks-in-config-file backwards compatibility code.
Web interface:
- /wizard does a permanent redirect to /wizard/
More work on many-nodes-one-VM simulations:
- Factor various commonly used functions out into RealNodeTest.
- Factor out the initial ping logic into a method in RealNodeRoutingTest and
inherit to RealNodeInsertRequestTest.
- Add options to makeKleinbergNetwork() to always link to neighbours, and to
set ideal locations.
- Disable hang checkers when testing.
- Major logging fix - we were initialising the logger twice, the second time
including heavy logging when we didn't want it (in most tests). Init logging
only from globalTestInit().
- Mass delete old data at beginning of more tests.
- Exit with failure if the network doesn't settle in 2000 pings in
waitForPingAverage().
- Clean up old routed ping contexts regularly.
- RequestInsertTest parameter tweaking.
- Pass in parameters to NodeStarter.createTestNode() for enableSwapping,
enableARKs, enableULPRs, enablePerNodeFailureTables, enableSwapQueueing.
- Pass in inter-ping pause time in RealNodeRoutingTest.
- Lots of logging/output tweaks.
- enableSwapping node config option, used in simulations. enableSwapQueueing
also for comparison with old pre-queueing algorithm.
- Fix some wrong config field names in NodeStarter.createTestNode().
- Use waitForAllConnected() in all tests.
- Wait for ping test to be working consistently before doing request/insert
tests.
- Make PeerManager.countConnectedDarknetPeers() immediately accurate.
- waitForAllConnected(): wait for no backed off nodes as well as all connected.
- waitForAllConnected(): display and wait for min/avg/max ping times <
SUB_MAX_PING_TIME.
- InsertRequestTest: log count and UIDs of running UIDs. There shouldn't be any
but a few may be left behind for a short period (race conditions), and bugs may
cause larger leaks. Other tweaks.
- Disable persistent downloads for test nodes.
- waitForAllConnected() between ping cycles.
Probe requests:
- best was returning the closest location to the target seen, not the closest
location greater than the target.
FCP:
- CONFIG_REQUEST_TYPE_DATA_TYPE to ask what kind of data the value for a config
option can be.
Datastore:
- Squash post-close() IOException: Bad file descriptor.
- Turn off db-dump recovery for now (it's never worked), just go straight to
reconstruction.
- Routed pings: don't double-decrement on rejection, don't try every node
connected to each node on the path at htl 0 (just kill it at htl 0).
Bookmarks updates.
Dev stuff:
- Logging.
- Indenting.
- Imports.
- Comments.
- Thread names (including making them coalescable on the stats page).
- Minor synchronization in Node.runningUIDs.
- Remove some unused variables and dead code, including in plugins. Also
replace a deprecated function call with its modern equivalent in MDNSDiscovery.
- Add serialVersionUID's to stop eclipse warnings.
Thingamablog:
- Commit a clean copy of thingamablog again, for clarity.
- Then apply the patch with the beginnings of flog support.
- Freenet blogs use local transport.
- Include jSite FCP layer to do the actual insert.
- Various UI changes related to publishing to Freenet.
dieppe
nextgens
robert
toad
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-02-14 11:19:13 UTC (rev
17890)
+++ trunk/freenet/src/freenet/node/Version.java 2008-02-14 15:44:00 UTC (rev
17891)
@@ -24,11 +24,11 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1109;
+ private static final int buildNumber = 1110;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 1108;
- private static final int newLastGoodBuild = 1109;
+ private static final int newLastGoodBuild = 1110;
static final long transitionTime;
static {