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();
        }



Reply via email to