Skip to content

Add T1 (envelope-sized) and T2 (workload-aware) tuning tiers#22

Closed
ribalba wants to merge 1 commit into
new-dbs-and-benchmarksfrom
tuning-tiers
Closed

Add T1 (envelope-sized) and T2 (workload-aware) tuning tiers#22
ribalba wants to merge 1 commit into
new-dbs-and-benchmarksfrom
tuning-tiers

Conversation

@ribalba

@ribalba ribalba commented Jul 17, 2026

Copy link
Copy Markdown
Member

Split of #20 — part 2 of 2. Adds the tuning tiers on top of the default-configuration scenarios.

Stacked on #21. Base is new-dbs-and-benchmarks, so the diff here is tuning only. GitHub will retarget this to main automatically once #21 merges.

The tiers

Tier files sit next to the default and share its flow, so only the engine configuration varies between them and run_on_cluster.py discovers them automatically.

Tier File What changes
T0 <db>.yml Stock container (shipped in #21)
T1 <db>.t1.yml Each vendor's own rules-of-thumb sized to the fixed 4-CPU / 8-GB container; durability left at default, so the T0→T1 delta is pure resource sizing
T2 <db>.t2.yml Workload-aware indexes, partitioning and parallelism plus curated config
T2+ <db>.t2col.yml Columnar sub-tier — SQL Server columnstore and Db2 BLU on TPC-H

TUNING.md documents the ladder, how each number is derived per engine, its provenance, and the threats to validity (Oracle Free / Db2 Community edition caps, OOM headroom, Oracle/Db2 verify-on-first-run).

Tooling changes

  • run_on_cluster.py gains -t/--tier to submit a single tier (-t 0 for every default, -t 1 for every T1, …).
  • check_repo.py compares fairness knobs within a tier rather than across all driver scripts, since tier variants deliberately change tuning knobs. A sub-tier inherits knobs it doesn't restate from the engine's base tier, so the comparison is on the effective config.
  • check_repo.py adds check 4: per engine, the T1 tuning payload must be byte-identical across benchmarks, comments included. T1 is hardware-sized and workload-agnostic, so a per-benchmark difference is drift — and a missing comment loses the provenance a reviewer needs to reproduce the number.

check_repo.py passes on this branch with 2 expected warnings.

🤖 Generated with Claude Code

To study energy vs. tuning effort, each scenario now comes in tiers that
sit next to the default and share its flow, so only the engine
configuration varies between them:

- T1 (<db>.t1.yml): each vendor's own rules-of-thumb sized to the fixed
  4-CPU / 8-GB container. Durability is left at default so the T0->T1
  delta is pure resource sizing.
- T2 (<db>.t2.yml): workload-aware indexes, partitioning and parallelism
  plus curated config, with a T2+ columnar sub-tier (<db>.t2col.yml) for
  SQL Server columnstore and Db2 BLU on TPC-H.

TUNING.md documents the ladder, how each number is derived per engine, its
provenance, and the threats to validity (Oracle Free / Db2 Community
caps, OOM headroom, verify-on-first-run).

Tooling:
- run_on_cluster.py gains -t/--tier to submit a single tier.
- check_repo.py compares fairness knobs within a tier rather than across
  all driver scripts, and adds check 4: the T1 tuning payload must be
  byte-identical across benchmarks per engine (comments included, since
  T1 is workload-agnostic, so any per-benchmark difference is drift).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ribalba

ribalba commented Jul 17, 2026

Copy link
Copy Markdown
Member Author

More work will be done here. Closing PR

@ribalba ribalba closed this Jul 17, 2026
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.

1 participant