package org.agilewiki.jfile.transactions.db.counter;
import junit.framework.TestCase;
import org.agilewiki.jactor.JAFuture;
import org.agilewiki.jactor.JAMailboxFactory;
import org.agilewiki.jactor.Mailbox;
import org.agilewiki.jactor.MailboxFactory;
import org.agilewiki.jactor.factory.JAFactory;
import org.agilewiki.jfile.JFileFactories;
import org.agilewiki.jfile.transactions.db.OpenDbFile;
import org.agilewiki.jid.JidFactories;
import java.nio.file.FileSystems;
import java.nio.file.Path;
public class RecoveryTimingTest extends TestCase {
public void test()
throws Exception {
MailboxFactory mailboxFactory = JAMailboxFactory.newMailboxFactory(10);
Mailbox factoryMailbox = mailboxFactory.createMailbox();
JAFactory factory = new JAFactory();
factory.initialize(factoryMailbox);
(new JidFactories()).initialize(factoryMailbox, factory);
(new JFileFactories()).initialize(factoryMailbox, factory);
factory.defineActorType("n", IncrementCounterTransaction.class);
JAFuture future = new JAFuture();
Path directoryPath = FileSystems.getDefault().getPath("TransactionLoggerTimingTest");
CounterDB db = new CounterDB(mailboxFactory, factory, directoryPath);
long t0 = System.currentTimeMillis();
(new OpenDbFile(10000)).send(future, db);
long t1 = System.currentTimeMillis();
int transactions = db.getCounter();
System.out.println("milliseconds: " + (t1 - t0));
System.out.println("transactions: " + transactions);
System.out.println("transactions per second = " + (1000L * transactions / (t1 - t0)));
//tps = 956,937
mailboxFactory.close();
}
}