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_dirandpg_bin_dirinrun.sh. - (OPTIONAL) Adjust port in
run.shand*.conffiles. - Create a cluster using
initdband adjust itspostgresql.confusingpostgresql.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.