EDB Tutorial: How to run a TPC-E-like benchmark easily

February 09, 2024

The TPC Benchmark(TM) E (TPC-E) was released back in 2007 as the successor to the TPC Benchmark(TM) C (TPC-C) for an OLTP type workload.  To briefly recap, the TPC-E models a brokerage house, as opposed to a wholesale supplier with more complex transactions but a less costly benchmark to run.

DBT-5 is a fair-use implementation for PostgreSQL that now provides an AppImage kit to help run this workload.  Let's go through the handful of steps to prepare the kit and run a test.

1. The first requirement is to download the TPC-E Tools separately to use with the kit and unarchive it into its own direction.  Let's create /opt/egen and unzip it there, for example:

mkdir /opt/egen cd /opt/egen unzip ~/Downloads/*-tpc-e-tool.zip

2. A C++ compiler, with the additional development tools including make and patch, and PostgreSQL development headers and libraries are needed to for DBT-5 to successfully built the kit:

dbt5 build-egen /opt/egen

3. We can now build a database.  The default arguments builds a minimal sized database called dbt5 with that loads about 36 GB of raw data through psql using its default connection parameters:

dbt5 build --tpcetools=/opt/egen pgsql

4.  Let's run a 5 minute (600 second) test with 1 user.  This workload may need at least a few minutes of execution time in order to run through enough transaction to produce a measurable value for the test metric:

dbt5 run --tpcetools=/opt/egen -d 600 -u 1 pgsql /tmp/results

The output from the test will look something like:

# DBT-5 Workload consists of 4 stages: 1. Start of the Brokerage House server 2. Start of the Market Exchange server 3. Test (Start of the Customer Emulator) 4. Processing of results Results will be found in: /tmp/results ## 1. Starting Brokerage House server Giving BrokerageHouseMain 1 second to start up. ## 2. Starting Market Exchange server ## 3. Starting Customer driver: 1 user(s) * 1 user starting every 1000 milliseconds. * User ramp up to finish in 2 s. * Test expected to finish in 600 s. ## 4. Processing data ## Primary Metric 2.05 TRTPS Complete results are in: /tmp/results

And that's it!  See the documentation online, and as well as an example HTML report.

Share this