Author: toad
Date: 2008-04-08 22:59:54 +0000 (Tue, 08 Apr 2008)
New Revision: 19099
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1135: (mandatory thursday)
Data persistence:
- Increase redundancy from 150% (including original 100%, 128 -> 192) to 200%
(ditto, 128 -> 255). Inserts are fast atm, and FEC is significantly more
effective than network level block duplication. Will slow down inserts by 33%,
but hopefully will improve data persistence more than that. Wuala uses 517%,
but has no block level redundancy.
- Increase location reset interval from 2000 swaps to 8000 swaps. Hopefully
this will result in more stable locations (it seems it can take a while to get
back to the optimal location).
Opennet:
- After we've consistently had enough peers for 5 minutes, remove seed node
connections.
- Increase node restart timeout (time we wait after disconnect before replacing
a connection) from 5 minutes to 10 minutes. This should cover rebooting for
most nodes.
- Announcements: possibly fix the version == null error.
FCP:
- Add optional Identifier's to most messages that didn't have them: those
relating to Peers, Config, PeerNote, also GetNode/NodeData. Also some fixes
where there was similar code but it was broken (e.g. GenerateSSK).
Client layer:
- Synchronization: lock on (this) in removeFirst(), simplifies and prevents
race conditions.
- Really fix changing request priorities: Add boolean staySubscribed to
unregister(), use it to stay subscribed on pendingKeys, and not remove blocks
from the cooldown queue either. Therefore don't call resetCooldownTimes().
L10n:
- German update.
Requests:
- SSKInsertSender: Synchronize on access to status. Prevent nested locking in
Node.getStatus(). Synchronize on access to HTL.
Stats page:
- Show java.vm.version as well as java.version.
Bookmarks:
- Update FAI, TUFI, Bombe.
- Remove FAI static and add FAI text.
- Remove TSOF, it's old and doesn't have much content.
Routed ping code: (only used in testing)
- Fix an NPE.
Probe requests:
- Make probe requests behave like normal requests w.r.t. termination, no more
resetting HTL.
Simulations:
- If bandwidth limiting is turned off, also disable output bandwidth liability
limiting, by setting the outputBandwidthLimit to 16MB/sec.
Stats page:
- Show CLOCK PROBLEM and CONNECTION ERROR connection counts.
Startup toadlet:
- Show last 2000 bytes of log file as characters, rather than seeking through
length-2000 characters, which could be slow for a big wrapper.log, and might in
some wierd cases (long characters) be shorter than expected/empty. Implement
FileUtil.skipFully.
- Fix NPE, thanks Daniel Cheng.
Probe requests:
- Don't use the new best in the trace replies unless it is actually better.
Web interface:
- Simplify code and avoid bucket leaks in ToadletContextImpl (calling handle*).
- Fix permanent-redirects to URLs with no-ascii characters in them (we weren't
url-encoding, so it was broken).
- Fix data sizes for files we've successfully finished downloading showing up
as >=.
- Make it more obvious when a download hasn't reached the finalized-size stage
yet on the queue page.
- Add a slash on the end of the URI for directory uploads on the queue page to
make it more obvious what to do with it.
- Fix Method Not Allowed. It was caused by a socket handler being created
during startup, and so having an ArrayBucketFactory and the no-posts flag. We
now check whether posts are allowed and get a new bucket factory after reading
the headers each time.
Datastore:
- RAMFreenetStore (mostly used in simulations): Throw a KeyCollisionException
if the data is different to that already stored and overwrite is false (Daniel
Cheng).
- BDBFS: rename overwrite to overwriteKeyUnchanged.
- BDBFS: check the file pointer during reconstruction (something really wierd
is happening).
- BDBFS: always close the cursor in overwriteLRUBlock(), even if it throws.
This *might* fix the database deadlock bug.
Location swapping:
- Location change logging: record when a location change is because of a random
reset, and when it's because of a collision, in location.log.txt
- Increase locs-are-the-same threshold from Double.MIN to Double.MIN*2.
- Don't reset on a collision unless both sides' locations persist for 2 minutes.
Dev stuff:
- Comments.
- Java/HTML formatting for comments.
- Indenting.
- Imports.
- Logging.
- Improve assertions in junit test for LRUQueue.
- More LRUQueue unit tests (testPushLeast, testToArray2, testToArrayOrdered[2]).
- Dead code deletion.
- Synchronization: declare some variables in the client layer volatile
(FindBugs).
- Synchronization: Add missing synchronization in PooledExecutor.
- Declare some classes final to silence FindBugs.
- Add hashCode() to DSAPublicKey, BookmarkItem. **** questionable **** 18969
18968
- DSAPublicKey.equals() should not NPE on (null).
- Some assertions.
- Trivial optimisations from Daniel Cheng: FailureTable.BlockEntry should be a
static inner class.
- Javadocs style fixes from Daniel Cheng.
- Use skipFully() in ToadletContextImpl.
Website:
- Java may be obtained from your package manager.
- More German translations of the website.
- Fix lots of HTML (a lot of it very old).
- Delete swedish news, openjobs, roadmap (obsolete, untranslated).
- Announce Google's $18K donation.
- Add SVG rabbit icon to the images/rabbit directory and mention it on the FAQ
page.
- Add an FAQ item explaining why Freenet is so slow.
Installer:
- Auto-upgrade sha1test.jar for very old installs, if md5sum is present (detect
that it is old by md5sum, check the md5sum of the new download).
Daniel Cheng
NEOatNHNG
nextgens
toad
tommy
Thingamablog: (nextgens, dieppe)
- Allow a user to edit his posts without notifying everyone.
- Allow the user to change the edition number.
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-04-08 21:54:23 UTC (rev
19098)
+++ trunk/freenet/src/freenet/node/Version.java 2008-04-08 22:59:54 UTC (rev
19099)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1134;
+ private static final int buildNumber = 1135;
/** Oldest build of Fred we will talk to */
- private static final int oldLastGoodBuild = 1131;
- private static final int newLastGoodBuild = 1134;
+ private static final int oldLastGoodBuild = 1134;
+ private static final int newLastGoodBuild = 1135;
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, 5, 0, 0, 0 );
+ _cal.set( 2008, Calendar.APRIL, 10, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}