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.zip2. 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/egen3. 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 pgsql4. 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/resultsThe 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/resultsAnd that's it! See the documentation online, and as well as an example HTML report.