Strange results with HSQL (memory) when running transactional test

44 views Asked by At

Iam running transactional test based on TPCC with HSQL, Derby, SQLite and H2 embedded databases. Each database is running in memory mode with default configuration. Every test has exactly same initial database performing exactly same transactions. With HSQL i have got better results with bigger initial database than in small one. here is the output:

SQLite
initial db rows: 279606 number of transactions: 272270
initial db rows: 398870 number of transactions: 142080
initial db rows: 598867 number of transactions: 79170

HSQL
initial db rows: 279606 number of transactions: 226660
initial db rows: 398870 number of transactions: 220650
initial db rows: 598867 number of transactions: 288360

H2
initial db rows: 279606 number of transactions: 158280
initial db rows: 398870 number of transactions: 136810
initial db rows: 598867 number of transactions: 115720

Derby
initial db rows: 279606 number of transactions: 8920
initial db rows: 398870 number of transactions: 8650
initial db rows: 598867 number of transactions: 7990

here are minute by minute numbers of executed transactions with HSQL:
min/rows 279606 398870 598867 1: 34530 31620 24590 2: 33010 30900 27770 3: 26490 26380 30190 4: 24180 24520 30370 5: 21540 20370 29220 6: 17690 20570 29090 7: 18620 17250 30310 8: 17950 17290 31070 9: 16920 17080 25580 10: 15730 14670 30170

Any idea why the smaller database get so slower while the biggest one gives better and stable results?

If it would be the same for other dbms i would expected some mistake in my test application but this is really strange.

0

There are 0 answers