You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2012/10/19 21:31:37 UTC

svn commit: r1400242 - /activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java

Author: gtully
Date: Fri Oct 19 19:31:36 2012
New Revision: 1400242

URL: http://svn.apache.org/viewvc?rev=1400242&view=rev
Log:
add little performance test for split values in the list index, disabled atm

Modified:
    activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java

Modified: activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java?rev=1400242&r1=1400241&r2=1400242&view=diff
==============================================================================
--- activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java (original)
+++ activemq/trunk/kahadb/src/test/java/org/apache/kahadb/index/ListIndexTest.java Fri Oct 19 19:31:36 2012
@@ -32,6 +32,7 @@ import java.util.Random;
 
 import org.apache.kahadb.page.PageFile;
 import org.apache.kahadb.util.LongMarshaller;
+import org.apache.kahadb.util.Sequence;
 import org.apache.kahadb.util.SequenceSet;
 import org.apache.kahadb.util.StringMarshaller;
 import org.apache.kahadb.util.VariableMarshaller;
@@ -428,7 +429,7 @@ public class ListIndexTest extends Index
         return "key:" + nf.format(i);
     }
 
-    public void testListIndexConsistancyOverTime() throws Exception {
+    public void testListIndexConsistencyOverTime() throws Exception {
 
         final int NUM_ITERATIONS = 100;
 
@@ -562,6 +563,42 @@ public class ListIndexTest extends Index
         }
     }
 
+    public void x_testSplitPerformance() throws Exception {
+
+        final int NUM_ITERATIONS = 200;
+        final int RANGE = 200000;
+
+        pf = new PageFile(directory, getClass().getName());
+        pf.setPageSize(4*1024);
+        pf.load();
+        tx = pf.tx();
+        long id = tx.allocate().getPageId();
+
+        ListIndex<String, SequenceSet> test = new ListIndex<String, SequenceSet>(pf, id);
+        test.setKeyMarshaller(StringMarshaller.INSTANCE);
+        test.setValueMarshaller(SequenceSet.Marshaller.INSTANCE);
+        test.load(tx);
+        tx.commit();
+
+        for (int i = 0; i < NUM_ITERATIONS; ++i) {
+            Sequence sequence = new Sequence(0);
+            sequence.setLast(RANGE);
+            SequenceSet sequenceSet  = new SequenceSet();
+            sequenceSet.add(sequence);
+            test.add(tx, String.valueOf(i), sequenceSet);
+        }
+
+        long start = System.currentTimeMillis();
+
+        // overflow the value in the last sequence
+        SequenceSet sequenceSet = test.get(tx, String.valueOf(NUM_ITERATIONS - 10));
+        for (int i=0; i<RANGE; i+=2) {
+            sequenceSet.remove(i);
+            test.put(tx, String.valueOf(NUM_ITERATIONS -1), sequenceSet);
+        }
+        LOG.info("duration: " + (System.currentTimeMillis() - start));
+    }
+
     public void testListLargeDataAddAndNonSequentialRemove() throws Exception {
 
         final int NUM_ITERATIONS = 100;