TPCC-UVa: A free, open-source implementation of the TPC-C Benchmark
(Current version: 1.2.4)
Introduction
The TPC-C benchmark is a well-know benchmark used to measure the performance of high-end systems. TPC-C simulates the execution of a set of distributed, on-line transactions (OLTP), for a period between two and eight hours. TPC-C incorporates five types of transactions with different complexity, for on-line and deferred execution on a database system. The execution of the benchmark produces a performance parameter, called "TPC-C transactions per minute" (tpmC). This parameter allows to compare the speed of different systems (you can see the official comparison here).
Although the TPC-C specifications are public, there was not a public implementation: each company develops and uses its own. We have developed an open-source version of the TPC-C benchmark, following the terms of the GPL license. This version, called TPCC-UVa, is written entirely in C language and can be run in any Linux system. It uses the PostgreSQL database system and a simple transaction monitor. This benchmark can be used to measure the speed of different computers or to analyze the behavior of individual components, either hardware or software, and its impact on the overall performance of the system. The development was started by Eduardo Hernández Perdiguero and Julio Alberto Hernández Gonzalo as their Bachelor's Thesis in the Escuela Universitaria Politécnica, University of Valladolid, with the advise of Diego R. Llanos.
Note: To release TPCC-UVa as an open-source program, we use our own version of a very simple Transaction Monitor (TM), instead of using any commercial TM. Because of that, the results obtained with TPCC-UVa, particularly our performance parameter "TPCC-UVa Transactions per minute (tpmC-uva)" should not be compared with values of tpmC obtained with other implementations. |
We are happy to allow the use of this benchmark for research purposes. To improve it we need your feedback: if you use it, please let us know.
System Requirements
Version 1.2 of the benchmark has been developed using Linux systems. The main advantages of Version 1.2 over previous releases are:
- It runs in any Linux box, not just a particular distribution.
- It can be fully installed as a normal user: Root access to the system is not longer needed.
- It runs with the most up-to-date version of the PostgreSQL engine (8.1.4) and can run with other versions as well, as long as they are still maintained by PostgreSQL.
- It does not need a particular version of the compiler, the kernel header libraries or related tools: It compiles with almost any GCC compiler. Therefore, the installation process is now as simple as: (a) Download and install PostgreSQL. (b) Download and install tpcc-uva. (c) Run your first benchmark.
- It works with both 2.4 and 2.6 kernels.
- It runs both on 32- and 64-bit architectures.
Change Log
- Version 1.2.4 (current version). Released on Dec. 1, 2014. All known compiling warnings removed. Database creation sped up (thanks to the work of Leonardo Antônio dos Santos, UFPR).
- Version 1.2.3. Released on Dec. 1, 2006. Removed a bug in terminal clients that made them abort during the execution of the benchmark.
- Version 1.2.2. Released on Nov. 23, 2006. Now the clients launched by the benchmark controller are halted faster when the experiment has finished.
- Version 1.2.1. Released on Nov. 14, 2006. Due to limitations in the maximum number of semaphores per set in Linux, previous versions of TPCC-UVa only allowed to use up to 12 warehouses. This limitation has been fixed now, allowing up to 128 warehouses (if you need more than this, send us an e-mail). Some other minor issues have been solved as well.
We do not require a particular version of the kernel nor the compiler: the only system requirement is that the system should compile and execute both the PostgreSQL database engine and the TPCC-UVa benchmark. Therefore, we expect TPCC-UVa to run in other Unix environments as well.
Downloads
The options for downloading TPCC-UVa are:
Option A: Download the entire TPCC-UVa tarball (recommended).
The package includes:
- All the software sources needed.
- The Installation and User Guide, in DVI, PS and PDF formats.
The current version is 1.2.4. The tarball has a size of 9 Mb.
Option B: Download each particular package one by one.
All the packages needed can be downloaded separately from their original sources. You can choose to download each component separately, particularly if you do not have a fast Internet connection. Below is a list of the software needed, that can be either downloaded from this website or their official website. The components of the TPCC-UVa 1.2.4 tarball are:
TPCC-UVa
Installation and User
Guide, version 1.2 |
[pdf] from this website | |
PostgreSQL base package, version 8.1.4 | [tar.bz2] from this website | [tar.bz2] from its home website |
Gnuplot, version 3.7.1 | [tar.gz] from this website | [tar.gz] from its home website |
TPCC-UVa, version 1.2.4 |
[tar.gz] from this website |
Notes: Gnuplot is needed to build the performance plots after running the benchmark. Any version should work: we distribute a particular one here for consistency.
Documents and articles related with TPCC-UVa
- TPCC-UVa: An Open-Source TPC-C Implementation for Global Performance Measurement of Computer Systems. Diego R. Llanos. ACM SIGMOD Record, vol. 35, no. 4, pages 6-15, December 2006, ISSN 0163-5808, ACM Press. [pdf] [bibTeX]
- TPCC-UVA: An Open-source TPC-C implementation for parallel and distributed systems. Diego R. Llanos, Belén Palop. Proceedings of the 2006 IPDPS (Intl. Par. and Distr. Proc. Symp), 5th Workshop on Performance Modeling, Evaluation, and Optimization of Parallel and Distributed Systems (PMEO-PDS), Greece, April 25-29 2006, ISBN 1-4244-0054-6, IEEE Press. [pdf] [slides]
- "Implementación en C del benchmark de transacciones distribuidas TPC-C", Bs.C Thesis. Authors: Eduardo Hernández Perdiguero and Julio Alberto Hernández Gonzalo, Escuela Universitaria Politécnica de Valladolid, Universidad de Valladolid, Spain, 2002 [pdf] [Power Point slides]
- "TPCC-UVa", Implementación del Benchmark TPC-C", by Hernández, Hernández y Llanos, Proceedings XIII Jornadas de Paralelismo, Lleida, septiembre 2002. [pdf]
- "Traditional versus Next-Generation Journaling File Systems: a Performance Comparison Approach", J. Piernas, T. Cortes and J. M. García. 2nd Worshop on Hardware and Software Support for High Performance Scientific and Engineering Computer (SHPSEC 03). Held in conjunction with the 12th International conference on Parallel Architectures and Compilation Techniques (PACT-03), New Orleans (USA), September 2003.
- "Evaluación de Aplicaciones Comerciales en Servidores Multiprocesador mediante Simics". Proyecto Fin de Carrera. Alumno: Francisco J. Villa. Directores: Manuel E. Acacio, José Manuel García. Departamento de Ingeniería y Tecnología de Computadores, Universidad de Murcia, Junio 2003. [pdf]
We will be happy to include your work in this list. Contact us writing to diego@infor.uva.es.