89
89
fail-fast : false
90
90
matrix :
91
91
# 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' ]
93
93
steps :
94
94
- name : Download artifact
95
95
uses : actions/download-artifact@v3
@@ -112,7 +112,16 @@ jobs:
112
112
113
113
- name : Run benchmark
114
114
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
116
125
# FIXME: Reduce the error rate so we don't need these overrides.
117
126
if [ ${{matrix.benchmark}} == auctionmark ]; then
118
127
ERRORS_THRESHOLD=0.02
@@ -134,7 +143,7 @@ jobs:
134
143
strategy :
135
144
fail-fast : false
136
145
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' ]
138
147
services :
139
148
mariadb : # https://hub.docker.com/_/mariadb
140
149
image : mariadb:latest
@@ -176,7 +185,16 @@ jobs:
176
185
MARIADB_PORT : ${{ job.services.mariadb.ports[3306] }}
177
186
run : |
178
187
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
+
180
198
# FIXME: Reduce the error rate so we don't need these overrides.
181
199
if [ ${{matrix.benchmark}} == auctionmark ]; then
182
200
ERRORS_THRESHOLD=0.02
@@ -194,7 +212,7 @@ jobs:
194
212
strategy :
195
213
fail-fast : false
196
214
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' ]
198
216
services :
199
217
mysql : # https://hub.docker.com/_/mysql
200
218
image : mysql:latest
@@ -235,7 +253,16 @@ jobs:
235
253
MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
236
254
run : |
237
255
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
+
239
266
# FIXME: Reduce the error rate so we don't need these overrides.
240
267
if [ ${{matrix.benchmark}} == auctionmark ]; then
241
268
ERRORS_THRESHOLD=0.02
@@ -253,7 +280,7 @@ jobs:
253
280
strategy :
254
281
fail-fast : false
255
282
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' ]
257
284
services :
258
285
postgres : # https://hub.docker.com/_/postgres
259
286
image : postgres:latest
@@ -292,7 +319,16 @@ jobs:
292
319
run : |
293
320
PGPASSWORD=password dropdb -h localhost -U admin benchbase --if-exists
294
321
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
+
296
332
# FIXME: Reduce the error rate so we don't need these overrides.
297
333
if [ ${{matrix.benchmark}} == auctionmark ]; then
298
334
ERRORS_THRESHOLD=0.02
@@ -362,7 +398,7 @@ jobs:
362
398
matrix :
363
399
# TODO: add more benchmarks
364
400
# 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' ]
366
402
services :
367
403
sqlserver :
368
404
image : mcr.microsoft.com/mssql/server:latest
@@ -423,7 +459,15 @@ jobs:
423
459
- name : Run benchmark
424
460
# Note: user/pass should match those used in sample configs.
425
461
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
+
427
471
# FIXME: Reduce the error rate so we don't need these overrides.
428
472
if [ ${{matrix.benchmark}} == tatp ]; then
429
473
ERRORS_THRESHOLD=0.05
0 commit comments