[infinispan-dev] TPC-C benchmark for Infinispan

Sebastiano Peluso peluso at gsd.inesc-id.pt
Thu Jun 23 10:28:52 EDT 2011


Hi all,

I'm Sebastiano Peluso and during my work in the Cloud-TM project [1] I 
have adapted the TPC-C benchmark [2] in order to execute it on Infinispan.
The resulting implementation is RadargunTPCC benchmark and you can take 
a look at the source code at the following link:
https://github.com/cloudtm/RadargunTPCC

In RadargunTPCC I use the software infrastructure offered by Radargun in 
order to execute TPC-C transactions on top of a transactional in-memory 
data grid like Infinispan. Basically, during the simulation period, each 
Stresser thread executes a sequence of iterations and in each iteration 
it randomly chooses a type of transaction (among the set of the 
transactions implemented) and executes that one.

The types of transactions currently implemented are:
  - New-Order Transaction;
  - Payment Transaction;
  - Order-Status Transaction.

Concerning the data layer, the tables of the TPC-C database are mapped 
in the data grid following this scheme:
  - Each table (Stock table, Warehouse table, etc.) is mapped in a Java 
class and the columns of the table become instance variables of the 
corresponding class.
  - Each class of the domain implements a getKey() method which builds a 
key identifier for an instance of that class. More specifically, if a 
table T with columns C1,...,Cn and primary key formed by columns 
C1,...,Ck (with k<=n) is mapped in a class S, the key of an instance of 
S is a String built by concatenating the name of S and the String 
representation of the values of C1,...,Ck.
  - Each class of the domain implements store() and load() methods: the 
former used for storing an instance of the class as a <key,value> pair 
in a row of the data grid; the latter used for loading an instance of 
the class from the data grid. More specifically an instance o is stored 
in a row as <key,value> pair where key is equals to o.getKey() and value 
is o itself.

Any suggestion or comment is highly appreciated.

Regards,
    Sebastiano Peluso


[1] http://www.cloudtm.eu/
[2] http://www.tpc.org/tpcc/spec/tpcc_current.pdf


More information about the infinispan-dev mailing list