You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/10/22 17:55:09 UTC
svn commit: r828761 - in /activemq/sandbox/activemq-apollo/hawtdb/src:
main/java/org/apache/hawtdb/api/ main/java/org/apache/hawtdb/internal/index/
main/java/org/apache/hawtdb/internal/io/
main/java/org/apache/hawtdb/internal/page/ test/java/org/apache...
Author: chirino
Date: Thu Oct 22 15:55:08 2009
New Revision: 828761
URL: http://svn.apache.org/viewvc?rev=828761&view=rev
Log:
still working on benchmark tests.. helped me squash a few bugs in deffered marshalling and memory mapped buffer allocation.
Modified:
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/api/EncoderDecoder.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/BTreeNode.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/HashIndex.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/io/MemoryMappedFile.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/Extent.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFile.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFileFactory.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtTransaction.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/PageFileFactory.java
activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/SimpleAllocator.java
activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/BTreeIndexBenchmark.java
activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/HashIndexBenchmark.java
activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/IndexBenchmark.java
activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/ConcurrentPageFileTest.java
activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/TransactionBenchmarker.java
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/api/EncoderDecoder.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/api/EncoderDecoder.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/api/EncoderDecoder.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/api/EncoderDecoder.java Thu Oct 22 15:55:08 2009
@@ -67,5 +67,5 @@
* @param paged
* @param page
*/
- void remove(Paged paged, int page);
+ List<Integer> remove(Paged paged, int page);
}
\ No newline at end of file
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/BTreeNode.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/BTreeNode.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/BTreeNode.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/BTreeNode.java Thu Oct 22 15:55:08 2009
@@ -277,8 +277,8 @@
}
- public void remove(Paged paged, int page) {
- Extent.freeLinked(paged, page);
+ public List<Integer> remove(Paged paged, int page) {
+ return Extent.freeLinked(paged, page);
}
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/HashIndex.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/HashIndex.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/HashIndex.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/index/HashIndex.java Thu Oct 22 15:55:08 2009
@@ -184,6 +184,7 @@
this.initialBucketCapacity = factory.getBucketCapacity();
this.BIN_FACTORY.setKeyMarshaller(factory.getKeyMarshaller());
this.BIN_FACTORY.setValueMarshaller(factory.getValueMarshaller());
+ this.BIN_FACTORY.setDeferredEncoding(false);
}
public HashIndex<Key, Value> create() {
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/io/MemoryMappedFile.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/io/MemoryMappedFile.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/io/MemoryMappedFile.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/io/MemoryMappedFile.java Thu Oct 22 15:55:08 2009
@@ -214,7 +214,10 @@
MappedByteBuffer buffer = buffers.get(index);
if (buffer == null) {
try {
- buffer = channel.map(MapMode.READ_WRITE, index*bufferSize, bufferSize);
+ long position = ((long)index)*bufferSize;
+ buffer = channel.map(MapMode.READ_WRITE, position, bufferSize);
+ } catch (IllegalArgumentException e) {
+ throw new IOPagingException(e);
} catch (IOException e) {
throw new IOPagingException(e);
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/Extent.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/Extent.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/Extent.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/Extent.java Thu Oct 22 15:55:08 2009
@@ -18,6 +18,8 @@
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.activemq.util.buffer.Buffer;
import org.apache.hawtdb.api.IOPagingException;
@@ -184,14 +186,14 @@
* @param paged
* @param page
*/
- public static void freeLinked(Paged paged, int page) {
- freeLinked(paged, page, DEFAULT_MAGIC);
+ public static List<Integer> freeLinked(Paged paged, int page) {
+ return freeLinked(paged, page, DEFAULT_MAGIC);
}
- public static void freeLinked(Paged paged, int page, Buffer magic) {
+ public static List<Integer> freeLinked(Paged paged, int page, Buffer magic) {
Extent extent = new Extent(paged, page, magic);
extent.readHeader();
- free(paged, extent.getNext());
+ return free(paged, extent.getNext());
}
/**
@@ -200,21 +202,26 @@
* @param paged
* @param page
*/
- public static void free(Paged paged, int page) {
- free(paged, page, DEFAULT_MAGIC);
+ public static List<Integer> free(Paged paged, int page) {
+ return free(paged, page, DEFAULT_MAGIC);
}
- public static void free(Paged paged, int page, Buffer magic) {
+ public static List<Integer> free(Paged paged, int page, Buffer magic) {
+ ArrayList<Integer> rc = new ArrayList<Integer>();
while( page>=0 ) {
Extent extent = new Extent(paged, page, magic);
extent.readHeader();
try {
int pagesInExtent = paged.pages(extent.getLength());
paged.allocator().free(page, pagesInExtent);
+ for( int i=0; i < pagesInExtent; i++) {
+ rc.add(page+i);
+ }
page=extent.getNext();
} finally {
extent.readClose();
}
}
+ return rc;
}
/**
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFile.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFile.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFile.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFile.java Thu Oct 22 15:55:08 2009
@@ -259,7 +259,13 @@
this.updates.putAll(updates);
}
if( deferredUpdates!=null ) {
- this.deferredUpdates.putAll(deferredUpdates);
+ for (Entry<Integer, DeferredUpdate> entry : deferredUpdates.entrySet()) {
+ if( entry.getValue().value == null ) {
+ this.deferredUpdates.remove(entry.getKey(), entry.getValue());
+ } else {
+ this.deferredUpdates.put(entry.getKey(), entry.getValue());
+ }
+ }
}
}
@@ -502,6 +508,7 @@
final SimpleAllocator allocator;
final PageFile pageFile;
private static final int updateBatchSize = 1024;
+ private final boolean synch;
/** The header structure of the file */
@@ -546,8 +553,9 @@
*/
private Ranges baseRevisionFreePages = new Ranges();
- public HawtPageFile(PageFile pageFile) {
- this.pageFile = pageFile;
+ public HawtPageFile(HawtPageFileFactory factory) {
+ this.pageFile = factory.getPageFile();
+ this.synch = factory.isSync();
this.file = pageFile.getFile();
this.allocator = pageFile.allocator();
ByteBuffer slice = file.slice(false, 0, FILE_HEADER_SIZE);
@@ -756,11 +764,20 @@
if( redo.deferredUpdates != null ) {
for (Entry<Integer, DeferredUpdate> entry : redo.deferredUpdates.entrySet()) {
DeferredUpdate cu = entry.getValue();
- List<Integer> allocatedPages = cu.store(pageFile);
- for (Integer page : allocatedPages) {
- // add any allocated pages to the update list so that the free
- // list gets properly adjusted.
- redo.updates.put(page, PAGE_ALLOCATED);
+ if( cu.value == null ) {
+ List<Integer> freePages = cu.marshaller.remove(pageFile, cu.page);
+ for (Integer page : freePages) {
+ // add any allocated pages to the update list so that the free
+ // list gets properly adjusted.
+ redo.updates.put(page, PAGE_FREED);
+ }
+ } else {
+ List<Integer> allocatedPages = cu.store(pageFile);
+ for (Integer page : allocatedPages) {
+ // add any allocated pages to the update list so that the free
+ // list gets properly adjusted.
+ redo.updates.put(page, PAGE_ALLOCATED);
+ }
}
}
}
@@ -788,7 +805,9 @@
private void syncRedos() {
// This is a slow operation..
- file.sync();
+ if( synch ) {
+ file.sync();
+ }
Header h = header();
// Update the base_revision with the last performed revision.
@@ -1089,9 +1108,9 @@
}
static class DeferredUpdate {
- private final int page;
- private Object value;
- private EncoderDecoder<?> marshaller;
+ final int page;
+ Object value;
+ EncoderDecoder<?> marshaller;
public DeferredUpdate(int page, Object value, EncoderDecoder<?> marshaller) {
this.page = page;
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFileFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFileFactory.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFileFactory.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtPageFileFactory.java Thu Oct 22 15:55:08 2009
@@ -25,6 +25,7 @@
private HawtPageFile concurrentPageFile;
protected boolean drainOnClose;
+ protected boolean sync = true;
public HawtPageFile getConcurrentPageFile() {
return concurrentPageFile;
@@ -46,7 +47,7 @@
boolean existed = file.isFile();
super.open();
if (concurrentPageFile == null) {
- concurrentPageFile = new HawtPageFile(getPageFile());
+ concurrentPageFile = new HawtPageFile(this);
if( existed ) {
concurrentPageFile.recover();
} else {
@@ -63,6 +64,16 @@
concurrentPageFile=null;
}
super.close();
- }
+ }
+
+ public boolean isSync() {
+ return sync;
+ }
+
+ public void setSync(boolean sync) {
+ this.sync = sync;
+ }
+
+
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtTransaction.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtTransaction.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtTransaction.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/HawtTransaction.java Thu Oct 22 15:55:08 2009
@@ -133,7 +133,17 @@
}
public <T> void remove(EncoderDecoder<T> marshaller, int page) {
- marshaller.remove(this, page);
+ DeferredUpdate deferredUpdate = getCacheUpdates().remove(page);
+ if( deferredUpdate==null ) {
+ // add a deferred update to remove the value.
+ getCacheUpdates().put(page, new DeferredUpdate(page, null, marshaller));
+ } else {
+ if( deferredUpdate.value == null ) {
+ // undo.. user error.
+ getCacheUpdates().put(deferredUpdate.page, deferredUpdate);
+ throw new PagingException("You should never try to remove a page that has been removed.");
+ }
+ }
}
public Allocator allocator() {
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/PageFileFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/PageFileFactory.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/PageFileFactory.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/PageFileFactory.java Thu Oct 22 15:55:08 2009
@@ -88,5 +88,8 @@
public void setMaxPages(int maxPages) {
this.maxPages = maxPages;
}
+ public void setMaxFileSize(long size) {
+ setMaxPages( (int)((size-getHeaderSize())/getPageSize()) );
+ }
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/SimpleAllocator.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/SimpleAllocator.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/SimpleAllocator.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/main/java/org/apache/hawtdb/internal/page/SimpleAllocator.java Thu Oct 22 15:55:08 2009
@@ -34,9 +34,9 @@
private final Ranges freeRanges = new Ranges();
private int limit;
- public SimpleAllocator(int max) {
- this.limit = max;
- freeRanges.add(0, max);
+ public SimpleAllocator(int limit) {
+ this.limit = limit;
+ freeRanges.add(0, limit);
}
/**
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/BTreeIndexBenchmark.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/BTreeIndexBenchmark.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/BTreeIndexBenchmark.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/BTreeIndexBenchmark.java Thu Oct 22 15:55:08 2009
@@ -30,14 +30,14 @@
public class BTreeIndexBenchmark extends IndexBenchmark {
public BTreeIndexBenchmark() {
- this.benchmark.setSamples(30);
+ this.benchmark.setSamples(5);
}
protected Index<Long, Buffer> createIndex(Transaction tx) {
BTreeIndexFactory<Long, Buffer> factory = new BTreeIndexFactory<Long, Buffer>();
factory.setKeyMarshaller(LongMarshaller.INSTANCE);
factory.setValueMarshaller(new FixedBufferMarshaller(DATA.length));
- factory.setDeferredEncoding(false);
+ factory.setDeferredEncoding(true);
return factory.create(tx, tx.allocator().alloc(1));
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/HashIndexBenchmark.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/HashIndexBenchmark.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/HashIndexBenchmark.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/HashIndexBenchmark.java Thu Oct 22 15:55:08 2009
@@ -31,7 +31,7 @@
public class HashIndexBenchmark extends IndexBenchmark {
public HashIndexBenchmark() {
- this.benchmark.setSamples(3);
+ this.benchmark.setSamples(5);
}
protected Index<Long, Buffer> createIndex(Transaction tx) {
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/IndexBenchmark.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/IndexBenchmark.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/IndexBenchmark.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/index/IndexBenchmark.java Thu Oct 22 15:55:08 2009
@@ -16,14 +16,17 @@
*/
package org.apache.hawtdb.internal.index;
+import java.io.File;
import java.util.Random;
import org.apache.activemq.util.buffer.Buffer;
import org.apache.hawtdb.api.Index;
+import org.apache.hawtdb.api.OutOfSpaceException;
import org.apache.hawtdb.api.Transaction;
import org.apache.hawtdb.internal.Action;
import org.apache.hawtdb.internal.Benchmarker.BenchmarkAction;
import org.apache.hawtdb.internal.page.HawtPageFile;
+import org.apache.hawtdb.internal.page.HawtPageFileFactory;
import org.apache.hawtdb.internal.page.TransactionActor;
import org.apache.hawtdb.internal.page.TransactionBenchmarker;
import org.junit.Test;
@@ -34,11 +37,15 @@
*/
public abstract class IndexBenchmark {
- static final public byte[] DATA = new byte[8];
+ private static final int KEY_SPACE = 10000;
+ private static final int VALUE_SIZE = 8;
+
+ static final public byte[] DATA = new byte[VALUE_SIZE];
class IndexActor extends TransactionActor<IndexActor> {
public Random random;
public Index<Long, Buffer> index;
+ long counter=0;
public void setName(String name) {
super.setName(name);
@@ -50,6 +57,30 @@
super.setTx(tx);
index = createIndex(tx);
}
+
+ public void benchmarkIndex() throws InterruptedException {
+ // Transaction retry loop.
+ while( true ) {
+ try {
+
+ index.put(counter++, new Buffer(DATA));
+ if( (counter%KEY_SPACE)==0 ) {
+ counter=0;
+ }
+
+ // Transaction succeeded.. break out of retry loop.
+ break;
+
+ } catch (OutOfSpaceException e) {
+ counter--;
+ tx().rollback();
+ System.out.println("OutOfSpaceException occurred.. waiting for space to free up..");
+ Thread.sleep(500);
+ } finally {
+ tx().commit();
+ }
+ }
+ }
}
TransactionBenchmarker<IndexActor> benchmark = new TransactionBenchmarker<IndexActor>() {
@@ -58,16 +89,20 @@
};
};
+ public IndexBenchmark() {
+ HawtPageFileFactory hawtPageFileFactory = new HawtPageFileFactory();
+ hawtPageFileFactory.setFile(new File("target/test-data/" + getClass().getName() + ".db"));
+ hawtPageFileFactory.setSync(false);
+ // Limit file growth to 1 Gig.
+ hawtPageFileFactory.setMaxFileSize(1024*1024*1024);
+ benchmark.setHawtPageFileFactory(hawtPageFileFactory);
+ }
@Test
public void insert() throws Exception {
- Thread.sleep(3000);
benchmark.benchmark(1, new BenchmarkAction<IndexActor>("insert") {
- long counter=0;
- @Override
- protected void execute(IndexActor actor) {
- actor.index.put(counter++, new Buffer(DATA));
- actor.tx().commit();
+ protected void execute(IndexActor actor) throws InterruptedException {
+ actor.benchmarkIndex();
}
});
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/ConcurrentPageFileTest.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/ConcurrentPageFileTest.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/ConcurrentPageFileTest.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/ConcurrentPageFileTest.java Thu Oct 22 15:55:08 2009
@@ -117,7 +117,8 @@
ConcurrentPageFileTest.this.store(paged, page, value);
return Collections.emptyList();
}
- public void remove(Paged paged, int page) {
+ public List<Integer> remove(Paged paged, int page) {
+ return Collections.emptyList();
}
}
Modified: activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/TransactionBenchmarker.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/TransactionBenchmarker.java?rev=828761&r1=828760&r2=828761&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/TransactionBenchmarker.java (original)
+++ activemq/sandbox/activemq-apollo/hawtdb/src/test/java/org/apache/hawtdb/internal/page/TransactionBenchmarker.java Thu Oct 22 15:55:08 2009
@@ -41,10 +41,10 @@
private Callback tearDown;
private int samples = 3;
private int period = 1000*5;
+ private HawtPageFileFactory hawtPageFileFactory;
public void benchmark(int actorCount, BenchmarkAction<A> action) throws Exception {
- HawtPageFileFactory pff = new HawtPageFileFactory();
- pff.setFile(new File("target/test-data/" + getClass().getName() + ".db"));
+ HawtPageFileFactory pff = getHawtPageFileFactory();
pff.getFile().delete();
pff.open();
try {
@@ -124,6 +124,16 @@
public void setPeriod(int period) {
this.period = period;
}
-
+
+ public void setHawtPageFileFactory(HawtPageFileFactory hawtPageFileFactory) {
+ this.hawtPageFileFactory = hawtPageFileFactory;
+ }
+ public HawtPageFileFactory getHawtPageFileFactory() {
+ if( hawtPageFileFactory==null ) {
+ hawtPageFileFactory = new HawtPageFileFactory();
+ hawtPageFileFactory.setFile(new File("target/test-data/" + getClass().getName() + ".db"));
+ }
+ return hawtPageFileFactory;
+ }
}