On May 1, 2009, at 3:02 PM, Robert Hailey wrote:
On Aug 19, 2008, at 7:24 PM, [email protected] wrote:
Author: toad
Date: 2008-08-20 00:24:11 +0000 (Wed, 20 Aug 2008)
New Revision: 22046
Added:
branches/db4o/freenet/src/freenet/support/BinaryBloomFilter.java
branches/db4o/freenet/src/freenet/support/BloomFilter.java
branches/db4o/freenet/src/freenet/support/CountingBloomFilter.java
branches/db4o/freenet/src/freenet/support/NullBloomFilter.java
...
Log:
Major optimisation: Bloom filters.
Partially works: activelinks load, freesites don't, persistent
requests don't work either so far.
Will debug more.
Version upped to 1158, but merging isn't that urgent as I skipped
the build (1156) which introduced the Big Bug that 1158 fixes.
[...]
Property changes on: branches/db4o/freenet/src/freenet/support/
BinaryBloomFilter.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: branches/db4o/freenet/src/freenet/support/BloomFilter.java
(from rev 21911, branches/saltedhashstore/freenet/src/freenet/
support/BloomFilter.java)
===================================================================
--- branches/db4o/freenet/src/freenet/support/
BloomFilter.java (rev 0)
+++ branches/db4o/freenet/src/freenet/support/BloomFilter.java
2008-08-20 00:24:11 UTC (rev 22046)
@@ -0,0 +1,185 @@
+package freenet.support;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.MappedByteBuffer;
+import java.util.Random;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import org.spaceroots.mantissa.random.MersenneTwister;
+
+public abstract class BloomFilter {
+ protected ByteBuffer filter;
+
[...]
+
+ // Wierd impl's should override
+ public void unsetAll() {
+ int x = filter.limit();
+ for(int i=0;i<x;i++)
+ filter.put(i, (byte)0);
+ }
[...]
I think that there is a big (but subtle) flaw here... As far as I can
tell unsetAll() is the only way to clear/initialize the filter and
that it is never called (not on new store and not on rebuildBloom()).
--
Robert Hailey
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl