Skip to content

Conversation

@at15
Copy link
Member

@at15 at15 commented Jan 23, 2018

Clean up configuration, it is an issue from upstream oltpbenchmark#209 , we have to figure out those config anyway, also we can still use our own fork even if it is not accepted by upstream.

New Features

  • docker
    • databases
    • builder
  • python wrapper to update config and store stdout etc.

Clean up

  • refactor Travis CI script (they are using old config folder)
  • update scripts under run folder

Unclear stuff

  • the config file seems to have both database and benchmark config, or does it support multiple config xml like YCSB does
    • just one file, one for jdbc, one for benchmark config, type of benchmark is specified in commandline instead of config file ....
  • why only use YCSB for system config ...?

Broken https://travis-ci.org/benchhub/oltpbench

Legacy issues that already fixed but not closed

Ref

lmwnshn and others added 27 commits January 23, 2018 15:44
… makes it so that this benchmark truly does not do anything
- MySQL use 5.7 by default, 8.0 fails
- PostgreSQL use 10.1 by default
- some PR are pending for review, i.e. SQLServer, Cassandra
- most new databases only support tpcc, ycsb, tpch (due to extra credit?)
- add util function to use bash and mysql for a running container,
create database is also supported for tpcc
- FIXME: tpcc config is using docker's mysql user and password config
instead of the common `root` and empty password
- TODO: might switch to python to avoid the inevitable copy paste in
Makefile when adding multiple databases and benchmarks
- no actual test running, just print version, run and stop docker compose
- travis won't combine environment variables to build a matrix, one env item is one cell
- `if ['$DB' == 'MYSQL']` need the quote around `$DB` ....
- it seems service are not enabled by default, but why docker-compose
got problem when bind the port to host .... sudo ? ...
- found https://github.com/rijalati/docker-oltpbench, which matches the
issue to solve perfectly, wonder why they didn't consider contribute it
to upstream
- parse args in `gen_config.py`
at15 added 24 commits February 2, 2018 14:55
- based on https://github.com/cmu-db/peloton/blob/master/script/oltpbenchmark/benchmark.py
- read template from `benchmarks/sample_{bench}_config.xml`
- update database connection using data from `database.yml`
- amazing, it is not in travis default image ...
- by default it is installed for python2.7 ...
- [ ] postgres is using `postgresql` in jdbc connection
- [ ] having trouble writing shell script to create database, so just
hard coded to tpcc for now ...
- edit `oltpbenchmark` so it switch to script's folder when running
- postgres is using `postgresql` in jdbc connection string
- use `set -e` to make oltpbenchmark script return non zero code when exit
  - which is why previous postgres bench failed but travis passed ...
- the `--create` flag only create tables, database is written in jdbc
connection string, if it is not created, benchmark would fail, this need
to be automated ...
- [ ] not sure about travis python version, need 3.6 to use newer
subprocess higher level API https://docs.python.org/3/library/subprocess.html
- read from `databases.yml` to get db shell template
- some of them hard coded server ip ....
- said it can be deleted ...
- scan the package and find class that extends BenchModule needs
external libraries, and the package management is a mess now ...
  - https://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection
- `Benchmarks.java` would register all the workloads in a hashmap
- using default YCSB config, cassandra would fail, it seems error are
not handled on client end, also the jdbc wrapper for cassandra seems
pretty buggy ... a lot of log only has `%s`, same statement is
prepared everytime instead of reused ....
- give it a shot on travis, might fail as well ...
````
Caused by: com.datastax.driver.core.exceptions.ReadFailureException:
Cassandra failure during read query at consistency ONE (1 responses were
required but only 0 replica responded, 1 failed)
````
- the code for dealing with alias is copied, it might be a better idea
to share them using another file ...
- update travis to run more tests
- previously the command for create database is executed inside
container, however, tidb does not ship with mysql shell in image
- [ ] FIXME: it seems TiDB does not accept the jdbc driver used by TiDB
- wonder where did things go wrong, isn't it mysql compatiable ...
- need to update the ddl, just copy mysql's, otherwise the default will be used
- add new entry in `DatabaseType.java`
- change log level for api to debug, otherwise won't know there is null
due to DatabaseType not registered
- add MemSQL, but during the benchmark there are ton of exceptions ...
might due to `REFERENCES` is not supported by MemSQL, I commented it out
in the dialect
- add more databases in travis
- scalefactor is set 1 on travis, I guess that's why old travis for
auction is passing, this should also slove cassandra ...
- stop travis's mysql and postgres regardless of $DB since there are
many MySQL and PostgreSQL compatiable databases like MemSQL ...
@at15 at15 mentioned this pull request Feb 7, 2018
2 tasks
@at15
Copy link
Member Author

at15 commented Feb 9, 2018

closed in favor of #2

@at15 at15 closed this Feb 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants