34
34
env :
35
35
POM_VERSION : 2021-SNAPSHOT
36
36
JAVA_VERSION : 17
37
+ ERRORS_THRESHOLD : 0.01
37
38
38
39
jobs :
39
40
compile-and-test :
85
86
needs : package-and-upload
86
87
runs-on : ubuntu-latest
87
88
strategy :
89
+ fail-fast : false
88
90
matrix :
89
91
# BROKEN: tpch
90
92
benchmark : [ 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
@@ -110,7 +112,18 @@ jobs:
110
112
111
113
- name : Run benchmark
112
114
run : |
113
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlite/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
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
116
+ # FIXME: Reduce the error rate so we don't need these overrides.
117
+ if [ ${{matrix.benchmark}} == auctionmark ]; then
118
+ ERRORS_THRESHOLD=0.02
119
+ elif [ ${{matrix.benchmark}} == resourcestresser ]; then
120
+ ERRORS_THRESHOLD=0.05
121
+ elif [ ${{matrix.benchmark}} == smallbank ]; then
122
+ ERRORS_THRESHOLD=0.03
123
+ elif [ ${{matrix.benchmark}} == tatp ]; then
124
+ ERRORS_THRESHOLD=0.05
125
+ fi
126
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
114
127
115
128
# # ----------------------------------------------------------------------------------
116
129
# # MARIADB
@@ -119,6 +132,7 @@ jobs:
119
132
needs : package-and-upload
120
133
runs-on : ubuntu-latest
121
134
strategy :
135
+ fail-fast : false
122
136
matrix :
123
137
benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
124
138
services :
@@ -161,7 +175,14 @@ jobs:
161
175
MARIADB_PORT : ${{ job.services.mariadb.ports[3306] }}
162
176
run : |
163
177
mysql -h127.0.0.1 -P$MARIADB_PORT -uadmin -ppassword -e "DROP DATABASE IF EXISTS benchbase; CREATE DATABASE benchbase"
164
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mariadb/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
178
+ 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
179
+ # FIXME: Reduce the error rate so we don't need these overrides.
180
+ if [ ${{matrix.benchmark}} == auctionmark ]; then
181
+ ERRORS_THRESHOLD=0.02
182
+ elif [ ${{matrix.benchmark}} == tatp ]; then
183
+ ERRORS_THRESHOLD=0.05
184
+ fi
185
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
165
186
166
187
# # ----------------------------------------------------------------------------------
167
188
# # MYSQL
@@ -170,6 +191,7 @@ jobs:
170
191
needs : package-and-upload
171
192
runs-on : ubuntu-latest
172
193
strategy :
194
+ fail-fast : false
173
195
matrix :
174
196
benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
175
197
services :
@@ -212,7 +234,14 @@ jobs:
212
234
MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
213
235
run : |
214
236
mysql -h127.0.0.1 -P$MYSQL_PORT -uadmin -ppassword -e "DROP DATABASE IF EXISTS benchbase; CREATE DATABASE benchbase"
215
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/mysql/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
237
+ 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
238
+ # FIXME: Reduce the error rate so we don't need these overrides.
239
+ if [ ${{matrix.benchmark}} == auctionmark ]; then
240
+ ERRORS_THRESHOLD=0.02
241
+ elif [ ${{matrix.benchmark}} == tatp ]; then
242
+ ERRORS_THRESHOLD=0.05
243
+ fi
244
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
216
245
217
246
# # ----------------------------------------------------------------------------------
218
247
# # POSTGRESQL
@@ -221,6 +250,7 @@ jobs:
221
250
needs : package-and-upload
222
251
runs-on : ubuntu-latest
223
252
strategy :
253
+ fail-fast : false
224
254
matrix :
225
255
benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
226
256
services :
@@ -261,7 +291,14 @@ jobs:
261
291
run : |
262
292
PGPASSWORD=password dropdb -h localhost -U admin benchbase --if-exists
263
293
PGPASSWORD=password createdb -h localhost -U admin benchbase
264
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/postgres/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
294
+ 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
295
+ # FIXME: Reduce the error rate so we don't need these overrides.
296
+ if [ ${{matrix.benchmark}} == auctionmark ]; then
297
+ ERRORS_THRESHOLD=0.02
298
+ elif [ ${{matrix.benchmark}} == tatp ]; then
299
+ ERRORS_THRESHOLD=0.05
300
+ fi
301
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
265
302
266
303
# # ----------------------------------------------------------------------------------
267
304
# # COCKROACHDB
@@ -270,6 +307,7 @@ jobs:
270
307
needs : package-and-upload
271
308
runs-on : ubuntu-latest
272
309
strategy :
310
+ fail-fast : false
273
311
matrix :
274
312
benchmark : [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
275
313
services :
@@ -302,7 +340,15 @@ jobs:
302
340
303
341
- name : Run benchmark
304
342
run : |
305
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/cockroachdb/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
343
+ java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/cockroachdb/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
344
+ # FIXME: Reduce the error rate so we don't need these overrides.
345
+ # FIXME: Reduce the error rate so we don't need these overrides.
346
+ if [ ${{matrix.benchmark}} == auctionmark ]; then
347
+ ERRORS_THRESHOLD=0.02
348
+ elif [ ${{matrix.benchmark}} == tatp ]; then
349
+ ERRORS_THRESHOLD=0.05
350
+ fi
351
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
306
352
307
353
# # ----------------------------------------------------------------------------------
308
354
# # MSSQL
@@ -311,6 +357,7 @@ jobs:
311
357
needs : package-and-upload
312
358
runs-on : ubuntu-latest
313
359
strategy :
360
+ fail-fast : false
314
361
matrix :
315
362
# TODO: add more benchmarks
316
363
# benchmark: [ 'auctionmark', 'epinions', 'hyadapt', 'noop', 'otmetrics', 'resourcestresser', 'seats', 'sibench', 'smallbank', 'tatp', 'tpcc', 'tpch', 'twitter', 'voter', 'wikipedia', 'ycsb' ]
@@ -375,7 +422,12 @@ jobs:
375
422
- name : Run benchmark
376
423
# Note: user/pass should match those used in sample configs.
377
424
run : |
378
- java -jar benchbase.jar -b ${{matrix.benchmark}} -c config/sqlserver/sample_${{matrix.benchmark}}_config.xml --create=true --load=true --execute=true
425
+ 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
426
+ # FIXME: Reduce the error rate so we don't need these overrides.
427
+ if [ ${{matrix.benchmark}} == tatp ]; then
428
+ ERRORS_THRESHOLD=0.05
429
+ fi
430
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
379
431
380
432
# # ----------------------------------------------------------------------------------
381
433
# # Docker Build Test Publish
@@ -447,9 +499,10 @@ jobs:
447
499
mkdir -p results
448
500
docker run --rm --name benchbase-postgres --network "$docker_network" \
449
501
--env BENCHBASE_PROFILE=postgres -v /tmp/config.xml:/tmp/config.xml -v "$PWD/results:/benchbase/results" \
450
- "$image" -b "$benchmark" -c /tmp/config.xml --create=true --load=true --execute=true
502
+ "$image" -b "$benchmark" -c /tmp/config.xml --create=true --load=true --execute=true --json-histograms results/histograms.json
451
503
# Test that the results files were produced.
452
504
ls results/${benchmark}_*.csv
505
+ ./scripts/check_histogram_results.sh results/histograms.json $ERRORS_THRESHOLD
453
506
done
454
507
# Publish the docker image if the build/test was successful.
455
508
# Only do this with approved PRs and if the login secrets are available.
0 commit comments