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

Relevant Blogs

More Blogs

An Overview of PostgreSQL Indexes

h2 { text-align: left !important; } .summary{ background:#f3f7f9; padding:20px; } SUMMARY: This article describes indexes in PostgreSQL and how they can help retrieve data faster. It covers the types of indexes...
January 24, 2023