DOT: Dynamic Knob Selection and Online Sampling for Automated Database Tuning
Organizations: Orange / Inria / Univ. Lille, France France · Inria / Univ. Lille / CNRS, France France · CNRS / Univ. Lille / Inria, France France · Univ. Lille / CNRS / Inria, France France ·
Abstract
Database Management Systems (DBMS) are crucial for efficient data management and access control, but their administration remains challenging for Database Administrators (DBAs). Tuning, in particular, is known to be difficult. Modern systems have many tuning parameters, but only a subset significantly impacts performance. Focusing on these influential parameters reduces the search space and optimizes performance. Current methods rely on costly warm-up phases and human expertise to identify important tuning parameters. In this paper, we present DOT, a dynamic knob selection and online sampling DBMS tuning algorithm. DOT uses Recursive Feature Elimination with Cross-Validation (RFECV) to prune low-importance tuning parameters and a Likelihood Ratio Test (LRT) strategy to balance exploration and exploitation. For parameter search, DOT uses a Bayesian Optimization (BO) algorithm to optimize configurations on-the-fly, eliminating the need for warm-up phases or prior knowledge (although existing knowledge can be incorporated). Experiments show that DOT achieves matching or outperforming performance compared to state-of-the-art tuners while substantially reducing tuning overhead.
Figures & tables
| Benchmark | Type | Mean | SD | CV (%) |
|---|---|---|---|---|
| TPC-H | OLAP | 80.13 sec. | 0.42 | 0.52 |
| TPC-C | OLTP | 79.33 TPS | 4.95 | 6.24 |
| Sysbench | OLTP | 608.63 TPS | 26.53 | 4.36 |
| Benchmark | Iterations | Time (hours) | ||||
|---|---|---|---|---|---|---|
| Mean | SD | CV (%) | Mean | SD | CV (%) | |
| TPC-H | 57.0 | 41.3 | 72.5 | 1.21 | 0.9 | 72.9 |
| TPC-C | 215.6 | 122.2 | 56.7 | 6.9 | 4.4 | 64.3 |
| Sysbench | 118.4 | 40.3 | 34.1 | 3.4 | 1.2 | 34.6 |
| Workload | Sensitivity | P & B | Lasso | CART | Experience | LLM |
|---|---|---|---|---|---|---|
| Sysbench (TPS) | 1411.1 | 939.1 | 1469.04 | 1588.7 | 1294.36 | 1411.1 |
| TPC-H (Exec. s) | 46.22 | 74.35 | 46.02 | 45.76 | 45.72 | 46.35 |
| Samples | Rank (Max TPS) | Rank (tuning time [min]) | Sampling |
| Test stat: | Test stat: | time (min) | |
| p-value: | p-value: | ||
| 520 | (1,708.0 29.1) | (216.2 32.6) | 866,7 |
| 300 | (1,684.3 48.9) | (160.8 79.5) | 500,0 |
| 200 | (1,690.8 65.2) | (214.9 116.9) | 333.3 |
| 100 | (1,602.3 59.5) | (181.3 36.1) | 166.7 |
| Sysbench | TPC-C | TPC-H | EXP | |
|---|---|---|---|---|
| Sysbench | — | |||
| TPC-C | — | |||
| TPC-H | — | |||
| EXP | — |
| Rank (Max TPS) | Rank (tuning time [min]) | |
|---|---|---|
| Test stat: 12.7, p-value: 2.7E-2 | Test stat: 17.8, p-value: 3E-3 | |
| Sysbench | (1,708.0 29.1) | (216.2 32.6) |
| TPC-C | (1,653.2 27.2) | (218.4 65.3) |
| TPC-H | (1,638.8 35.2) | (188.3 57.9) |
| EXP | (1,725.2 31.1) | (217.8 42.7) |
| Shared | (1,677.1 35.2) | (447.3 26.2) |
| Sysbench | TPC-C | TPC-H | ||||
|---|---|---|---|---|---|---|
| Rank (Max TPS) Test stat: 13.3 p-value: 1E-2 | Rank (tuning time [mins]) Test stat: 9.1 p-value: 5.8E-2 | Rank (Max TPS) Test stat: 12.0 p-value: 1.7E-2 | Rank (tuning time [mins]) Test stat: 5.1 p-value: 2.8E-1 | Rank (Exec (s)) Test stat: 6.1 p-value: 1.9E-1 | Rank (tuning time [mins]) Test stat: 11.8 p-value: 1.9E-2 | |
| Top 5 knobs | 4.6 (1,486.8 ± 159.0) | 3.0 (311.5 ± 194.2) | 5.0 (120.5 ± 22.1) | 2.4 (151.7 ± 161.1) | 3.6 (47.7 ± 0.3) | 1.6 (46.1 ± 54.5) |
| Top 10 knobs | 4.2 (1,674.9 ± 34.4) | 2.6 (272.0 ± 122.8) | 3.2 (338.5 ± 13.8) | 2.0 (153.8 ± 186.7) | 3.8 (47.7 ± 0.5) | 2.0 (32.7 ± 14.6) |
| Top 20 knobs | 2.0 (1,725.2 ± 31.1) | 2.0 (217.8 ± 42.7) | 1.8 (354.2 ± 14.8) | 3.4 (411.9 ± 264.9) | 3.2 (47.8 ± 1.4) | 3.2 (73.0 ± 53.2) |
| Top 30 knobs | 2.0 (1,728.4 ± 46.3) | 2.6 (267.9 ± 136.3) | 2.4 (347.6 ± 25.8) | 3.2 (261.0 ± 287.1) | 2.8 (47.8 ± 2.0) | 3.6 (189.6 ± 286.5) |
| All 52 knobs | 2.2 (1,720.0 ± 33.0) | 4.8 (732.6 ± 266.7) | 2.6 (346.0 ± 7.5) | 4.0 (560.4 ± 327.7) | 1.6 (46.5 ± 0.6) | 4.6 (334.1 ± 175.5) |
| Sysbench | TPC-C | TPC-H | ||||
|---|---|---|---|---|---|---|
| Rank (Max TPS) Test stat: 37.4 p-value: 2.2E-05 | Rank (tuning time [mins]) Test stat: 32.2 p-value: 1.9E-04 | Rank (Max TPS) Test stat: 31.4 p-value: 2.5e-04 | Rank (tuning time [mins]) Test stat: 37.9 p-value: 1.7E-05 | Rank (exec [s]) Test stat: 18.382 p-value: 3.1e-02 | Rank (tuning time [mins]) Test stat: 38.4 p-value: 1.5E-05 | |
| DOT +EXP | 2.6 (1728.3 ± 28.3) | 2.0 (57.7 ± 28.2) | 1.2 (377.7 ± 16.9) | 2.4 (121.6 ± 72.1) | 4.4 (46.6 ± 2.2) | 3.4 (57.6 ± 54.3) |
| DOT +RAN | 3.0 (1724.7 ± 50.6) | 4.2 (171.1 ± 121.2) | 2.0 (370.8 ± 13.6) | 3.8 (187.3 ± 107.5) | 2.6 (45.5 ± 1.3) | 2.0 (33.9 ± 63.9) |
| LLM knowledge based | 8.0 (1489.1 ± 57.5) | 3.4 (129.3 ± 99.1) | 9.2 (264.9 ± 10.1) | 5.4 (288.0 ± 207.9) | 6.6 (47.0 ± 0.4) | 2.0 (21.1 ± 10.0) |
| BO+CART | 3.6 (1708.0 ± 29.1) | 10.0 (1080.3 ± 32.6) | 5.0 (356.1 ± 9.4) | 9.8 (960.4 ± 57.6) | 3.6 (46.4 ± 0.5) | 10.0 (1027.4 ± 106.6) |
| CDBTune cold+EXP | 8.6 (1358.1 ± 152.9) | 3.2 (218.6 ± 310.1) | 8.2 (295.2 ± 51.7) | 1.2 (33.5 ± 40.9) | - | - |