oltpbench
oltpbench copied to clipboard
clean up config directory and use docker for travis
Related issue #209
breaking changes
- removed
config/plugin.xml, added class Benchmarks undercom.oltpbenchmark.benchmarks- use reflection might work, but this way is easier and requires no external library
- removed most legacy config, all the config that is not
sample_<bench>_config.xmlare considered legacy and removed. - added
benchmarks.ymlanddatabases.ymlas a catalog for supported benchmark and databases- added
config.pyto generate config given benchmark and database from template (based on https://github.com/cmu-db/peloton/blob/master/script/oltpbenchmark/benchmark.py) - ideally, instead of hand written they should be exported from dbdb.io
- added
- added
dockerfolder to run database using docker, it's (very) inaccurate, but can test correctness and is handy on CI systems- added
create_db.pyto create database using db shell inside containers
- added
- added TiDB and MemSQL, only TPC-C is tested, both have a lot of errors
- updated doc in
configanddockerfolder to address those changes - removed old travis test entirely, all the tests on travis is using docker, including mysql and postgres.
- travis started mysql and postgres by default, they are stopped to avoid port conflict
known issues
- benchmakrs
- chbenchmark too many errors https://travis-ci.org/benchhub/oltpbench/jobs/338773148 #161
- hyadpat no config
- jpab no ddl
- tpch requires db gen
- tpcds no config and seems also require db gen
- databases
- memsql has too many errors, I just copied mysql's ddl, it could be the cause
PR that would conflict with this one, (actually I think all the pending PR will ...)
- Refactor DBWorkload class #238
- MemSQL #182
- Update on Travis #161
To play around with this PR
cd /tmp
git clone [email protected]:benchhub/oltpbench.git
cd oltpbench
git checkout config/cleanup-v2
./config/config.py benchmarks
./config/config.py databases
# stop your local mysql/postgres
# make sure you have docker and docker-compose installed
export BENCH=tpcc
export DB=mysql
./config/config.py generate --bench ${BENCH} --db ${DB} --scalefactor=1
./docker/travis_start.sh
ant build
./oltpbenchmark --bench ${BENCH} --config config/generated_${BENCH}_${DB}_config.xml --create true --load true --execute true
./docker/travis_stop.sh
@at15 What is the status of this?
@apavlo I think I need to wait for other PRs that introduces new databases to be merged first, so I can solve the conflicts in my fork's branch before it got merged into upstream
Those other PRs are not going to be merged (at least not for now). We can do that manually later.
@apavlo then I think it's ready to be merged, I don't have any update since the initial PR