Download Latest Version tpc-c-ifmx.tar.gz (392.7 kB)
Email in envelope

Get an email when there's a new version of IIUG Software Repository

Home / ESQL / tpc-c-ifmx / include
Name Modified Size InfoDownloads / Week
Parent folder
configure-variables 2021-01-01 478 Bytes
tpcc-BenchPace.h 2021-01-01 3.8 kB
tpcc-structures.h 2021-01-01 8.6 kB
tpcc.h.Human 2021-01-01 3.8 kB
tpcc.h.Lazy 2021-01-01 3.7 kB
tpcc.h.Stress 2021-01-01 3.7 kB
tpcc-orig.h 2020-05-11 9.6 kB
tpcc.h 2020-05-11 10.8 kB
tpcc.h.gch 2020-05-11 2.4 MB
Totals: 9 Items   2.5 MB 0
Introduction

This TPC-C like benchmark has been inspired from the Real TPC Concil TPC-C Benchmark, although it does not claim to be the official one.

It has been developed a few years ago by students of the Universidad de Valladolid, Spain, as a case study on PostgreSql. I have been refactoring it
progressively to work on Informix, including better errors handling, greater ease of configuration and more tools to monitor while running.

Purpose
This benchmark is an easy and quick way to set up and run an automated test scenario, ranging from 1 informix sessions to thousands of them.
It can be useful to evaluate the computing efficiency of a server, compare the performance between informix versions, realize a stress test 
to identify the limits of a configuration, and probably more usages we did not identify yet.

Supported platforms
The benchmark has been developped in Informix ESQL/C, and is intended to work exclusively on Informix Dynamic Server, any version from 9.40 and above.
The initial development platform is Linux Red 6 hat with gcc. It has been tested on Red Hat/Centos 7, but should work on any more or less recent linux
platform. It has been tested successfully on Sparc platforms with Solaris. We have no feedback about AIX not HP platforms yet. We are keen of having feedback 
for those platforms.

Benchmark architecture

tpc-c-ifmx is just made of 2 main programs: clien and bench
1) bench: this executable is multi-purpose
	a) it creates, resets and deletes the tpcc database according to the norms of the official TPC-C benchmark. You can define the number of warehouses
	of the database, which will determine the maxmimum number of user sessions while the benchmark runs

	b) it launches the benchmark execution. You can define how many warehouses you will use, and how many terminals for each warehouse. You will also
	set the duration of the warmup period, the duration of the measured session and the duration of cool down. 

	c) it launches and coordonates the informix sessions and shuts them down at the end of the benchmark execution.

	d) it computes the results of all the individual client sessions and produces the final summary of the benchmark session, including the 'tpc-c' result, 
	consisting in a number of valid (under 2 seconds duration) new orders transactions number per minute.

	e) upon request, you can save the results of a benchmark session for further analysis

1) clien: this executable does 2 main things
	a) it runs one session that can execute a range of specific transactions againts the tpcc database, which are:
		NEW-ORDER TRANSACTIONS,
		PAYMENT TRANSACTIONS,
		ORDER-STATUS TRANSACTIONS,
		DELIVERY TRANSACTIONS,
		STOCK-LEVEL TRANSACTIONS
	Each session will execute all of those transactions, in a not so randomized way, during the whole duration of the benchmark session.

	b) it writes all the results of its own sessions in file system files, so that the final result can be computed at the end


Some day I will rename the 'clien' executable by 'client', just because it itches...


Set up, configuration and build the program

The ease of setup is still an ongoing task but we have now reach a reasonable level of flexibility. You can configure your benchmark in the following file

1) src/ifmx_db_layout.dat  contains many of the variable parameters that you will have to adapt to you system and informix instance too. The variable names are intended to
be self explanatory and their meaning is explained as comments. You will find data about user id/passwd, dbspaces, different locations where files will go etc. You will also
define in that file which 'pace' you want to declare to your benchmark (the pace will be part of the executable). You can choose between 'lazy' (typing slowly and thinking slowly,
probably too hot outside ;-), 'Human' sets reasonnable keyboard type times and think times, 'Stress' has no keyboard time nor think time. you will use it to push your Informix server to its limits.

Check that all the declared directories exists and have read/write permissions, you can change them to your own values.

Compiling the Benchmark
After setting all the values and adapting them to your needs, you can start compiling the benchmark

Go to the ifmx_tpc-c directory and type
make clean
make

and that should do it


Executing the benchmark
After compiling, cd to the directory indicated by the EXECDIR variable
./bench


The very first step is to create to tpcc database and fill the tables. Choose the option 'Create database'
input the number of warehouses. Please bear in mind that one warehouse will have up to 10 user sessions ( So if you create 50 warehouses, your bench will run up to 500 user sessions )

After that, let the program create your database and fill the tables.

When this is done, you can choose to run the benchmark (option 'Run the test')

Input the number of warehouses you want to play
Then the number of users per warehouse
Then the number of warmup seconds
The the number of minutes the benchmark will take (when all the transactions will be measured)
And finally if you want to run a checkpoint before starting

When the test is completed, the menu will be displayed, and you want to choose the option to display the results (Show and store test results)

you can see more details in the tpc-uva-guide.pdf document located in this directory

Any question, suggestion , enhancements of fix, call me at ericv@kandooerp.org

Have fun!




Source: README.txt, updated 2020-05-11