8989 fail-fast : false
9090 matrix :
9191 # BROKEN: tpch
92- benchmark : [ 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
92+ benchmark : [ 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'templated', ' tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
9393 steps :
9494 - name : Download artifact
9595 uses : actions/download-artifact@v3
@@ -112,7 +112,16 @@ jobs:
112112
113113 - name : Run benchmark
114114 run : |
115- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlite/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
115+ # For templated benchmarks, we need to preload some data for the test since by design, templated benchmarks do not support the 'load' operation
116+ # In this case, we load the tpcc data.
117+ if [[ ${{matrix.benchmark}} == templated ]]; then
118+ # Disable synchronous mode for sqlite tpcc data loading to save some time.
119+ java -jar benchbase.jar -b tpcc -c config/sqlite/sample_tpcc_nosync_config.xml --create=true --load=true --execute=false --json-histograms results/histograms.json
120+ # Run the templated benchmark.
121+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlite/sample_${{matrix.benchmark}}_config.xml --create=false --load=false --execute=true --json-histograms results/histograms.json
122+ else
123+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlite/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
124+ fi
116125 # FIXME: Reduce the error rate so we don't need these overrides.
117126 if [ ${{matrix.benchmark}} == auctionmark ]; then
118127 ERRORS_THRESHOLD=0.02
@@ -134,7 +143,7 @@ jobs:
134143 strategy :
135144 fail-fast : false
136145 matrix :
137- benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
146+ benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'templated', ' tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
138147 services :
139148 mariadb : # https://hub.docker.com/_/mariadb
140149 image : mariadb:latest
@@ -176,7 +185,16 @@ jobs:
176185 MARIADB_PORT : ${{ job.services.mariadb.ports[3306] }}
177186 run : |
178187 mysql -h127.0.0.1 -P$MARIADB_PORT -uadmin -ppassword -e "DROP DATABASE IF EXISTS benchbase; CREATE DATABASE benchbase"
179- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mariadb/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
188+
189+ # For templated benchmarks, we need to preload some data for the test since by design, templated benchmarks do not support the 'load' operation
190+ # In this case, we load the tpcc data.
191+ if [[ ${{matrix.benchmark}} == templated ]]; then
192+ java -jar benchbase.jar -b tpcc -c config/mariadb/sample_tpcc_config.xml --create=true --load=true --execute=false --json-histograms results/histograms.json
193+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mariadb/sample_${{matrix.benchmark}}_config.xml --create=false --load=false --execute=true --json-histograms results/histograms.json
194+ else
195+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mariadb/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
196+ fi
197+
180198 # FIXME: Reduce the error rate so we don't need these overrides.
181199 if [ ${{matrix.benchmark}} == auctionmark ]; then
182200 ERRORS_THRESHOLD=0.02
@@ -194,7 +212,7 @@ jobs:
194212 strategy :
195213 fail-fast : false
196214 matrix :
197- benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
215+ benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'templated', ' tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
198216 services :
199217 mysql : # https://hub.docker.com/_/mysql
200218 image : mysql:latest
@@ -235,7 +253,16 @@ jobs:
235253 MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
236254 run : |
237255 mysql -h127.0.0.1 -P$MYSQL_PORT -uadmin -ppassword -e "DROP DATABASE IF EXISTS benchbase; CREATE DATABASE benchbase"
238- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mysql/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
256+
257+ # For templated benchmarks, we need to preload some data for the test since by design, templated benchmarks do not support the 'load' operation
258+ # In this case, we load the tpcc data.
259+ if [[ ${{matrix.benchmark}} == templated ]]; then
260+ java -jar benchbase.jar -b tpcc -c config/mysql/sample_tpcc_config.xml --create=true --load=true --execute=false --json-histograms results/histograms.json
261+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mysql/sample_${{matrix.benchmark}}_config.xml --create=false --load=false --execute=true --json-histograms results/histograms.json
262+ else
263+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mysql/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
264+ fi
265+
239266 # FIXME: Reduce the error rate so we don't need these overrides.
240267 if [ ${{matrix.benchmark}} == auctionmark ]; then
241268 ERRORS_THRESHOLD=0.02
@@ -253,7 +280,7 @@ jobs:
253280 strategy :
254281 fail-fast : false
255282 matrix :
256- benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
283+ benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'templated', ' tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
257284 services :
258285 postgres : # https://hub.docker.com/_/postgres
259286 image : postgres:latest
@@ -292,7 +319,16 @@ jobs:
292319 run : |
293320 PGPASSWORD=password dropdb -h localhost -U admin benchbase --if-exists
294321 PGPASSWORD=password createdb -h localhost -U admin benchbase
295- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/postgres/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
322+
323+ # For templated benchmarks, we need to preload some data for the test since by design, templated benchmarks do not support the 'load' operation
324+ # In this case, we load the tpcc data.
325+ if [[ ${{matrix.benchmark}} == templated ]]; then
326+ java -jar benchbase.jar -b tpcc -c config/postgres/sample_tpcc_config.xml --create=true --load=true --execute=false --json-histograms results/histograms.json
327+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/postgres/sample_${{matrix.benchmark}}_config.xml --create=false --load=false --execute=true --json-histograms results/histograms.json
328+ else
329+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/postgres/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
330+ fi
331+
296332 # FIXME: Reduce the error rate so we don't need these overrides.
297333 if [ ${{matrix.benchmark}} == auctionmark ]; then
298334 ERRORS_THRESHOLD=0.02
@@ -362,7 +398,7 @@ jobs:
362398 matrix :
363399 # TODO: add more benchmarks
364400 # benchmark: [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
365- benchmark : [ 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
401+ benchmark : [ 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'sibench', 'smallbank', 'tatp', 'tpcc', 'templated', ' tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
366402 services :
367403 sqlserver :
368404 image : mcr.microsoft.com/mssql/server:latest
@@ -423,7 +459,15 @@ jobs:
423459 - name : Run benchmark
424460 # Note: user/pass should match those used in sample configs.
425461 run : |
426- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlserver/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
462+ # For templated benchmarks, we need to preload some data for the test since by design, templated benchmarks do not support the 'load' operation
463+ # In this case, we load the tpcc data.
464+ if [[ ${{matrix.benchmark}} == templated ]]; then
465+ java -jar benchbase.jar -b tpcc -c config/sqlserver/sample_tpcc_config.xml --create=true --load=true --execute=false --json-histograms results/histograms.json
466+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlserver/sample_${{matrix.benchmark}}_config.xml --create=false --load=false --execute=true --json-histograms results/histograms.json
467+ else
468+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlserver/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
469+ fi
470+
427471 # FIXME: Reduce the error rate so we don't need these overrides.
428472 if [ ${{matrix.benchmark}} == tatp ]; then
429473 ERRORS_THRESHOLD=0.05
0 commit comments