Author: toad
Date: 2007-03-16 00:54:25 +0000 (Fri, 16 Mar 2007)
New Revision: 12154
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1020 changelog:
- Request coalescing no longer causes one of the requests to fail, hang, leak a
RequestHandler or otherwise break (hopefully, not fully tested)
- LOTS of improvements to the datastore code
-- Write store transactions to disk before returning from commit() (better data
integrity, the D in ACID)
-- Don't use the Big Fat Lock while doing store operations and rely on BDB
record locking.
-- Set the lock timeout to 1 minute. 500ms is not enough: we have lots of
threads, disk I/O, all on commodity hardware.
-- Completely new logic for detecting pre-existing key and dealing with it in
*put*()
-- Prevent timeout on startup while reconstructing or shrinking large stores
-- Online shrink the store if the shrink is less than 10%. New option
node.storeForceBigShrinks option allows online shrinking the store for any
shrink size. Online shrinking is not usually a good idea because it doesn't
necessarily keep the most recently used data; only turn this on if you need to
shrink quickly.
-- Refactoring: delete some dead code, simplify existing code, split stuff out
etc, clearer code, more comments, minor optimisations/simplifications, better
variable names, minor fixes etc
-- Handle corrupt pubkeys better
-- Do hole checking at the same time as offline shrink on startup
-- Prevent two simultaneous shrinks happening
-- Always chop off surplus store space which is only used by duplicate keys
-- Do online shrink on a thread, rather than waiting for it to complete when
setting the config option. Continue until the store is within its current size
limit, not until we don't delete any blocks.
-- Use Database.count() when we want the number of blocks in the store,
countCHKBlocksFromDatabase() (now highestBlockNumberInDatabase()) when we want
the highest block number.
- New revocation key (we lost the privkey for the old one
- Up freenet-ext requirement to 11
- Fix a bug causing Freenet to think there are far more nodes on the network
than there actually are. Also only remember the last week's worth of swap
locations.
- FCP: AllowUnreadableFiles in ClientPutDiskDir wasn't working.
- Tooltip showing default value for each config option in /config/
- Explain that Freenet cannot detect port forwards in the warning message.
- Hopefully fix ArrayIndexOutOfBoundsException when fetching splitfiles
- Give option to queue the request on all non-fatal fproxy errors
- POST support for plugins (necessary for freekiwiki), and an NPE fix in the
plugin loading code
- Distinguish full-cone from directly-connected in warnings.
- Option.getDefault() returns a String like the other methods
- Exclude JSTUN plugin from build path as it is the only thing that requires
java 1.5 support
- Trying to track down an impossible NPE
- Fail more gracefully (and log info on OOMs to wrapper.log) on an OOM or other
unreasonable error in various places: compressing data to insert, sending an
insert/request, running IP detection plugins, TMCI main loop, handling an FCP
connection, serving FCP connections, loading plugins
- Various minor refactorings
- Minor bugfix constructing the error message for the user but not returning it
in *Filter
- Logging, comments etc
- Note that we now have assertions in various places; it is recommended to run
with assertions enabled for freenet classes
(wrapper.java.additional.3=-enableassertions:freenet) at least if you are a dev.
Related:
- Updates to JSTUN plugin (try more times, some outcomes are inherently
unlikely to be true so confirm it)
- Updates to MDNSDiscovery plugin
- Updates to Librarian plugin (cosmetic and url update)
Credits:
Nextgens
Zothar
Volodya
Toad
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2007-03-16 00:29:45 UTC (rev
12153)
+++ trunk/freenet/src/freenet/node/Version.java 2007-03-16 00:54:25 UTC (rev
12154)
@@ -24,7 +24,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1019;
+ private static final int buildNumber = 1020;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 1010;