This benchmark is based on YCSB.
This benchmark runs all kinds of workloads (a, b, etc) for several minutes. The table is partitioned by range (using pg_pathman or vanilla), partition key is the 1st column of type varchar(255)
. The amount of partitions is always the same (500), and the number of worker threads (sessions) changes from 1 to 128 with a step size of 16.
Perform the following steps:
- Install your favorite Java SDK (e.g. OpenJDK) and Maven.
- Build YCSB using Maven:
mvn package
. - Install or build PostgreSQL 10.
- Install pg_pathman.
- Change
logs_dir
andpg_bin_dir
inrun.sh
. - (OPTIONAL) Adjust port in
run.sh
and*.conf
files. - Create a cluster using
initdb
and adjust itspostgresql.conf
usingpostgresql.add
. - Start the PostgreSQL cluster.
- Finally, run the benchmark (e.g.
./run.sh pathman
). Available options:pathman
,vanilla
.
Examine the logs in logs_dir
. There should be "workload-X-T" + "insert-X-T" files, where X is a workload type (a, b, c etc) and T is the number of threads. Note that we always use T=FILLER_THREADS
for ycsb load
to finish it as quickly as possible. The most interesting lines contain words "Throughput" and "RunTime", so grep
is your best friend.