Unit 14 · Database research · Lesson 4 of 5
Database workload evaluation
Step 1: Learn the ideas
- From research question to workload: hypotheses and controls
- Synthetic, real and trace-derived workloads
- What standard benchmarks capture and omit: TPC-C, TPC-H, TPC-DS, YCSB, JOB
- Skew, correlation and contention as experimental variables
- Baseline selection and tuning parity
- Measurement: steady state, warm-up, percentiles, variability
- Sensitivity analysis and regime maps
- Artifacts and reproducibility practice
Why it matters
Many database papers report large speedups that shrink or reverse under a different workload. Reviewers and research supervisors look first at the evaluation: does the workload exercise the claimed mechanism, are baselines tuned, and do conclusions hold across the regimes that matter? Being able to plan such an evaluation, and to critique one, is central to a database research internship or thesis.
Core ideas
From hypothesis to workload. A claim like "our protocol scales better under contention" names its variable: contention. The workload must sweep it (for example the Zipf parameter or the number of hot rows) while holding other factors fixed, and should include a regime where the claim is not expected to hold, as a sanity check. Avoid setups where an unrelated bottleneck, such as the client, the network or logging, decides the result.
What standard benchmarks capture and miss. TPC-C has realistic transaction mixes and contention on a few rows, but fixed access patterns and scaling rules. TPC-H has well-understood analytical queries, but data with little skew or correlation. YCSB isolates key-value operations with tunable distributions but has no multi-key transactions. JOB brings real correlations for join ordering but is read-only and uses one dataset. Choose benchmarks by the mechanism under test, and add a real or trace-derived workload when external validity matters.
Parameters that flip conclusions. Concurrency-control rankings change with contention and with the share of multi-partition transactions; storage-engine rankings change with read/write ratio, value size and whether data fits in memory; optimizer results change with correlations and physical design. Published evaluations such as Yu et al. on many-core concurrency control and Harding et al. on distributed protocols show these crossovers, which is exactly what a regime map should report.
Baselines and fairness. Compare against the strongest relevant baseline, configured with comparable effort, at the same durability and isolation guarantees. Implementing all contenders in one framework, as several concurrency-control studies do, makes comparisons fairer, but the results then describe the framework rather than production systems.
Measurement and reporting. Run to steady state, repeat, and report distributions (median and tail, with spread across runs). State hardware, versions, configuration and generator seeds. Check correctness on every run (invariants, result checksums). Publish scripts and raw data so a reader can regenerate a figure.
Common misconceptions
- "A standard benchmark makes an evaluation valid." Validity depends on whether the benchmark exercises the claim; a standard suite can miss the relevant variable entirely.
- "A large speedup on one workload is a general result." Without a sensitivity analysis it is one point in the parameter space.
- "Synthetic workloads are worthless." They are the best tool for isolating a mechanism; complement them with realistic workloads rather than replacing them.
- "Sharing code makes work reproducible." Reproduction also needs configurations, seeded generators, environment details and raw measurements.
- "Matching default configurations is fair." Defaults encode different durability, memory and parallelism choices.
How to approach it
Take one published evaluation, for example Wu et al.'s MVCC study or the evaluation section of the Spanner paper, and write a one-page critique: question, workload, baselines, metrics, missing regimes. Then plan a small study of your own for a mechanism you care about, with a parameter sweep and a correctness check, and run a reduced version with pgbench, YCSB or BenchBase. In research interviews, use both as evidence of evaluation thinking and describe only what you actually ran.
Suggested order
- 1Reread Fair Benchmarking Considered Difficult and extend its checklist with research-specific items (hypothesis, regimes, baselines).
- 2Read the evaluation sections of Yu et al. and Harding et al. and draw, for each, the regime map implied by their results.
- 3Read the TPC-C, TPC-H and YCSB descriptions and write what each omits relative to a workload you know.
- 4Write the one-page critique of Wu et al. (the guided reading exercise).
- 5Plan and run a reduced sensitivity study with pgbench, YCSB or BenchBase, and package it as a reproducible artifact.
Step 2: Check off what you can do
Tap each one you can genuinely do or explain. Each earns 10 XP.
Step 3: Go deeper
Fair Benchmarking Considered Difficult: Common Pitfalls In Database Performance TestingStart here
Hannes Mühleisen (author-hosted PDF)Pitfalls and a checklist that serve as the starting point for research-grade evaluations.
Open(opens in a new tab)Link responded, 5 Oct 2026An Evaluation of Distributed Concurrency ControlStart here
PVLDB (VLDB Endowment)A model evaluation that compares protocols in one framework and shows conclusions changing with workload parameters.
Open(opens in a new tab)Link responded, 5 Oct 2026Transaction Processing Performance Council (TPC) benchmarks
TPCSection: TPC-H
Decision-support benchmark definition; note its data-generation assumptions when judging external validity.
Open(opens in a new tab)Link responded, 5 Oct 2026YCSB: Yahoo! Cloud Serving Benchmark
GitHub (YCSB project)Parameterized key-value workloads for controlled sweeps of skew and read/write mix.
Open(opens in a new tab)Link responded, 5 Oct 2026BenchBase: multi-DBMS SQL benchmarking framework
GitHub (CMU Database Group)A reproducible harness for running several OLTP workloads against relational databases.
Open(opens in a new tab)Link responded, 5 Oct 2026
Step 4: Practice
Write the evaluation critique first, using your checklist. Then turn the skew and cache benchmark into a sensitivity study: pick one variable (Zipf parameter, client count or data size relative to memory), sweep at least five values with repetitions, and plot where behavior changes. Package scripts, configuration and raw results so that someone else could regenerate the plot.
- Critique the evaluation of a database systems paper (example: in-memory MVCC evaluation)Open(opens in a new tab)Not attemptedGuided reading exercise (PVLDB paper)
- Benchmark a database under skew, concurrency and cache-state changesOpen(opens in a new tab)Not attemptedYCSB or pgbench + local database
- Find cardinality misestimates with EXPLAIN ANALYZE on the Join Order BenchmarkOpen(opens in a new tab)Not attemptedJoin Order Benchmark + local PostgreSQL
Record attempts on each problem’s page (+15 XP, +10 more when solved on your own).
Step 5: Test yourself
Answer each one out loud or on paper before you finish the lesson.
- Question 1Which variable does your research question name, and how will the workload sweep it?
- Question 2What regime would falsify the claim, and is it in your evaluation?
- Question 3How do you ensure baselines are tuned with comparable effort?
- Question 4Why can implementing all protocols in one framework both help and limit an evaluation?
- Question 5What must a reader have in order to regenerate one of your figures?
You’re done when you can
- Write a one-page critique of a database paper’s evaluation that identifies at least one missing regime and proposes an experiment.
- Produce a regime map from a parameter sweep with repetitions and error bars.
- Explain in under three minutes what TPC-C, TPC-H, YCSB and JOB each omit.
- Publish (even privately) a reproducible package for one experiment: scripts, configuration, seeds and raw data.


