oltpbench icon indicating copy to clipboard operation
oltpbench copied to clipboard

clean up config directory and use docker for travis

Open at15 opened this issue 7 years ago • 4 comments

Related issue #209

breaking changes

  • removed config/plugin.xml, added class Benchmarks under com.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.xml are considered legacy and removed.
  • added benchmarks.yml and databases.yml as a catalog for supported benchmark and databases
    • added config.py to 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 docker folder to run database using docker, it's (very) inaccurate, but can test correctness and is handy on CI systems
    • added create_db.py to create database using db shell inside containers
  • added TiDB and MemSQL, only TPC-C is tested, both have a lot of errors
  • updated doc in config and docker folder 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 avatar Feb 08 '18 03:02 at15

@at15 What is the status of this?

apavlo avatar Feb 20 '18 19:02 apavlo

@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

at15 avatar Feb 20 '18 19:02 at15

Those other PRs are not going to be merged (at least not for now). We can do that manually later.

apavlo avatar Feb 20 '18 19:02 apavlo

@apavlo then I think it's ready to be merged, I don't have any update since the initial PR

at15 avatar Feb 20 '18 19:02 at15