oltpbenchmark/oltpbench — pull request #69 by ben-reilly (2013-12-13 20:29:05+00:00)
Title: Implementation of TPC-H, support for MonetDB

This update comes from work I did with IBM this summer, co-authored with Ippokratis Pandis (@HippoTas). Ippo and Andy (@apavlo) have been in communication about these changes already, so hopefully this big update doesn't some as too much of a surprise.

From a high level, the three big changes are:
1. Implementation of TPC-H benchmark.
2. Support for MonetDB in TPC-C, TPC-H, and CH-benCHmark
3. Minor additional tools/config options.

From a slightly lower level, the various changes are as follows:
- Tests can be run "serially"---txns with positive weight are executed in sequential order. If the run is untimed, the worker executes each txn exactly once, then halts. If there is a time limit, the worker loops through the list repeatedly until the timer expires. Serial runs force there to be only 1 active terminal.
- Serial, untimed runs (called "latency" runs in the code) focus on latency for each query. Therefore, each query is execute twice---first a cold run during which no results are recorded ("COLD_QUERY" state), then a normal, warm run ("MEASURE" state).
- CH-benCHmark support dialects (the previous implementation didn't make them possible).
- Can use a .raw file as input to a test (the tracescript, "ts" option). The TraceReader class reads this file and injects the same transactions at the same relative times as indicated by the file. This makes it possible to reproduce a test with identical txn submission times.
- Can specify groupings of weights in config files, which may be convenient for clustering certain txns for multiple workloads. For instance, suppose there are some txns that emphasize deletes. You could create a grouping labelled "delete" that you use in several workloads, rather than having to copy/paste the same weight string to each one. By default, the "all" grouping assigns a weight of 1.0 to all defined txns. [See *config/monetdb\_tpch1.xml* for examples.]
- For TPC-H and other CSV-loaded benchmarks, can specify a data directory in the config file to let the benchmark know where to look for the CSV dumps. [See *config/monetdb_tpch1.xml*]

Sorry that my git history is a lie. There were many things from my original repo that we didn't want to make publicly available, so squashing the public changes seemed like the best way to filter out the other stuff.

Please let me know if you have any questions or concerns.