smmf / p-array

A highly-configurable micro-benchmark application to stress test the JVSTM's transactions, using the Fénix Framework.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ABOUT THIS MICRO-BENCHMARK

This micro-benchmark is an application (AppRoot) that holds a set of integer wrappers (IntContainer), through an indirection level to allow only loading some IntContainers.

              1     *                  1     1
      AppRoot <-----> IndirectionLevel <-----> IntContainer

Each transaction will iterate over the set of IndirectionLevels and for each one will either:

  • do a read of the int value
  • do a write to the int value
  • do nothing

The idea is to simulate a given workload and to test how the different backends react to it. At the time of writing the available backends are MySQL/OJB, HBase and BerkeleyDB. The benchmark is highly configurable. Run it with -help to see a list of parameters.

CONFIGURATION

Please put the desired fenix-framework jar file in the lib dir. This depends on which version you wish test (OJB or HBase/BerkeyDB).

Additionaly, configure the framework in src/java/Configuration.java with the correct configuration depending on the fenix-framework in use.

You can also edit build.xml to choose with object layout to generate, by changing the fenix.framework.codeGenerator property. At the time of writing possible choices are:

  • pt.ist.fenixframework.pstm.dml.FenixCodeGenerator
  • pt.ist.fenixframework.pstm.dml.FenixCodeGeneratorOneBoxPerObject

RUNNING THE BENCHMARK

Run ant to compile. Then, start by populating the database with

./populate.sh <#nbr of items>

Afterwards you can run the benchmark as many time as desired without repopulating. Run the benchmark with:

./run.sh <options go here>

or use ./run.sh -help to see the default options.

About

A highly-configurable micro-benchmark application to stress test the JVSTM's transactions, using the Fénix Framework.


Languages

Language:Java 98.7%Language:Shell 1.3%