[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