Skip to content

tidesdb/hammer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LINUX
~~~~~~~~~~~~~~~~~~~
On Linux we get HammerDB minimum version 5 and in my case I extract it under ~/
~/HammerDB-5.0

I then on MariaDB/MySQL or Postgres create a HammerDB user.

/data/mariadb/bin/mariadb -u root --socket=/tmp/mariadb.sock

CREATE USER 'hammerdb'@'localhost' IDENTIFIED BY 'hammerdb123';
GRANT ALL PRIVILEGES ON *.* TO 'hammerdb'@'localhost';
FLUSH PRIVILEGES;


From here you can run individual runs or multi engine.

./hammerdb_runner.sh -b tpcc --warehouses 40 --tpcc-vu 8 --tpcc-build-vu 8 --rampup 1 --duration 2 --settle 5 -H ~/HammerDB-5.0 -e tidesdb -u hammerdb --pass hammerdb123 -S /tmp/mariadb.sock

The scripts automatically plot data.

We also have
./run_mariadb_engines.sh

In which orchestrates a 3-iteration TPC-C sweep across InnoDB, MyRocks, and TidesDB
using the HammerDB harness (hammerdb_runner.sh), then merges the
per-iteration CSVs into a single set of paper-grade charts with min/max
error bars.

You can customize run like so
mariadb_engines_runner.sh \
  --harness /home/agpmastersystem/hammerdb_runner.sh \
  --user agpmastersystem \
  --socket /tmp/mariadb.sock \
  --engines tidesdb,rocksdb,innodb \
  --iterations 1 \
  --warehouses 40 \
  --build-vu 8 \
  --run-vu 8 \
  --rampup 1 \
  --duration 2 \
  --settle 5 \
  --no-restart \
  --no-drop-cache \
  --no-perf

OR

./mariadb_engines_runner.sh \
  --user hammerdb \
  --pass hammerdb123 \
  --socket /tmp/mariadb.sock \
  --hammerdb-dir ~/HammerDB-5.0 \
  --no-restart \
  --no-drop-cache \
  --no-perf \
  --harness ./hammerdb_runner.sh

tidesdb >> rocksdb >> innodb, 3 iterations each, 1000 warehouses, 7m ramp + 20m duration, 64 VUs.
With --no-restart, iterations 2 and 3 have warm engine caches (buffer pool still hot).

You can kick off a run in a screen/tmux so it survives disconnect
screen -S bench

./mariadb_engines_runner.sh \
  --user hammerdb \
  --pass hammerdb123 \
  --socket /tmp/mariadb.sock \
  --hammerdb-dir ~/HammerDB-5.0 \
  --mariadb-bin /data/mariadb/bin/mariadb \
  --no-restart \
  --no-drop-cache \
  --no-perf \
  --harness ./hammerdb_runner.sh

Ctrl+A then D to detach. Reattach later with: screen -r bench

OR

nohup ./mariadb_engines_runner.sh \
  --user hammerdb \
  --pass hammerdb123 \
  --socket /tmp/mariadb.sock \
  --hammerdb-dir ~/HammerDB-5.0 \
  --mariadb-bin /data/mariadb/bin/mariadb \
  --no-restart \
  --no-drop-cache \
  --no-perf \
  --harness ./hammerdb_runner.sh \
  > bench.log 2>&1 &

Watch output live
tail -f bench.log

Find the process
ps aux | grep mariadb_engines_runner

Kill it
pkill -f mariadb_engines_runner

About

Custom script to run HammerDB analysis with mainly MySQL/MariaDB/Postgres plugging in different engines and benchmarks, with optional perf capabilities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages