Fixed the way we count elements in the bulk loader : when two tuples have the same key, they count for one single element.
diff --git a/mavibot/src/main/java/org/apache/directory/mavibot/btree/BulkLoader.java b/mavibot/src/main/java/org/apache/directory/mavibot/btree/BulkLoader.java
index 4915258..f1ff12b 100644
--- a/mavibot/src/main/java/org/apache/directory/mavibot/btree/BulkLoader.java
+++ b/mavibot/src/main/java/org/apache/directory/mavibot/btree/BulkLoader.java
@@ -30,6 +30,7 @@
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -149,18 +150,25 @@
int nbIteration = 0;
int nbElems = 0;
boolean inMemory = true;
+ Set<K> keys = new HashSet<K>();
while ( true )
{
nbIteration++;
tuples.clear();
+ keys.clear();
// Read up to chukSize elements
while ( iterator.hasNext() && ( nbRead < chunkSize ) )
{
Tuple<K, V> tuple = iterator.next();
tuples.add( tuple );
- nbRead++;
+
+ if ( !keys.contains( tuple.getKey() ) )
+ {
+ keys.add( tuple.getKey() );
+ nbRead++;
+ }
}
if ( nbRead < chunkSize )