diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7414edd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +test/ +usage_scenario_*_test.yml diff --git a/cockroach/cockroach_tprocc_buildschema.tcl b/cockroach/cockroach_tprocc_buildschema.tcl new file mode 100644 index 0000000..4dffb85 --- /dev/null +++ b/cockroach/cockroach_tprocc_buildschema.tcl @@ -0,0 +1,22 @@ +#!/bin/tclsh +puts "SETTING CONFIGURATION" +dbset db pg +dbset bm TPC-C +diset connection pg_host cockroachdb_container +diset connection pg_port 26257 +diset connection pg_sslmode disable +diset tpcc pg_superuser root +diset tpcc pg_superuserpass "" +diset tpcc pg_defaultdbase defaultdb +diset tpcc pg_user root +diset tpcc pg_pass "" +diset tpcc pg_dbase defaultdb +set vu [ numberOfCPUs ] +set warehouse [ expr {$vu * 20} ] +diset tpcc pg_count_ware $warehouse +diset tpcc pg_num_vu $vu +diset tpcc pg_partition false +diset tpcc pg_raiseerror true +puts "SCHEMA BUILD STARTED" +buildschema +puts "SCHEMA BUILD COMPLETED" diff --git a/cockroach/cockroach_tprocc_deleteschema.tcl b/cockroach/cockroach_tprocc_deleteschema.tcl new file mode 100644 index 0000000..49a0316 --- /dev/null +++ b/cockroach/cockroach_tprocc_deleteschema.tcl @@ -0,0 +1,17 @@ +#!/bin/tclsh +puts "SETTING CONFIGURATION" +dbset db pg +dbset bm TPC-C +diset connection pg_host cockroachdb_container +diset connection pg_port 26257 +diset connection pg_sslmode disable +diset tpcc pg_superuser root +diset tpcc pg_superuserpass "" +diset tpcc pg_defaultdbase defaultdb +diset tpcc pg_user root +diset tpcc pg_pass "" +diset tpcc pg_dbase defaultdb +diset tpcc pg_raiseerror true +puts "DROP SCHEMA STARTED" +deleteschema +puts "DROP SCHEMA COMPLETED" diff --git a/cockroach/cockroach_tprocc_run.tcl b/cockroach/cockroach_tprocc_run.tcl new file mode 100644 index 0000000..9bb6e90 --- /dev/null +++ b/cockroach/cockroach_tprocc_run.tcl @@ -0,0 +1,33 @@ +#!/bin/tclsh +puts "SETTING CONFIGURATION" +dbset db pg +dbset bm TPC-C +diset connection pg_host cockroachdb_container +diset connection pg_port 26257 +diset connection pg_sslmode disable +diset tpcc pg_superuser root +diset tpcc pg_superuserpass "" +diset tpcc pg_defaultdbase defaultdb +diset tpcc pg_user root +diset tpcc pg_pass "" +diset tpcc pg_dbase defaultdb +diset tpcc pg_driver timed +diset tpcc pg_rampup 2 +diset tpcc pg_duration 5 +diset tpcc pg_allwarehouse true +diset tpcc pg_timeprofile true +diset tpcc pg_keyandthink true +diset tpcc pg_raiseerror true +loadscript +puts "TEST STARTED" +vuset vu vcpu +vucreate +tcstart +tcstatus +set jobid [ vurun ] +vudestroy +tcstop +puts "TEST COMPLETE" +set of [ open /tmp/cockroach_tprocc w ] +puts $of $jobid +close $of diff --git a/compose.yml b/compose.yml index efe0461..ea30185 100644 --- a/compose.yml +++ b/compose.yml @@ -1,6 +1,6 @@ services: postgres: - image: postgres:18.1-trixie + image: postgres:18.3-trixie container_name: postgres_container environment: POSTGRES_USER: postgres @@ -9,7 +9,7 @@ services: ports: - "5432:5432" mariadb: - image: mariadb:12.1.2-noble + image: mariadb:12.2.2-noble container_name: mariadb_container environment: MYSQL_ROOT_PASSWORD: maria @@ -21,7 +21,6 @@ services: mysql: image: mysql:9.5.0-oraclelinux9 container_name: mysql_container - command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: mysql MYSQL_DATABASE: mysql @@ -29,8 +28,12 @@ services: MYSQL_PASSWORD: mysql ports: - "3307:3306" - - hammerdb: image: tpcorg/hammerdb:latest container_name: hammerdb_container + cockroachdb: + image: cockroachdb/cockroach:latest + container_name: cockroachdb_container + command: start-single-node --insecure + ports: + - "26257:26257" diff --git a/usage_scenario_cockroach.yml b/usage_scenario_cockroach.yml new file mode 100644 index 0000000..bdf8a14 --- /dev/null +++ b/usage_scenario_cockroach.yml @@ -0,0 +1,38 @@ +--- +name: HammerDB CockroachDB benchmark +author: Max Jahns +description: Benchmarks CockroachDB with HammerDB using TPC-C +compose-file: !include compose.yml +services: + postgres: + mariadb: + mysql: + mssql: +flow: + - name: Build Warehouses + container: hammerdb_container + commands: + - type: console + note: RUN HAMMERDB BUILD + command: ./hammerdbcli auto /tmp/repo/cockroach/cockroach_tprocc_buildschema.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }' + shell: sh + log-stdout: true + read-sci-stdout: true + - name: Query Warehouses + container: hammerdb_container + commands: + - type: console + note: RUN HAMMERDB RUN + command: ./hammerdbcli auto /tmp/repo/cockroach/cockroach_tprocc_run.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }' + shell: sh + log-stdout: true + read-sci-stdout: true + - name: Drop Warehouses + container: hammerdb_container + commands: + - type: console + note: RUN HAMMERDB DROP + command: ./hammerdbcli auto /tmp/repo/cockroach/cockroach_tprocc_deleteschema.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }' + shell: sh + log-stdout: true + read-sci-stdout: true