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.