Commit Overhead vs Throughput
Commit Overhead vs Throughput
Analysis of commit protocol overhead as percentage of total transaction time.
Overhead = (commit_latency / total_latency) × 100
This represents time spent in retries, exponential backoff, and manifest I/O.
Values shown as mean ± standard deviation across seeds.
num_tables = 1
| Throughput (c/s) | Success Rate (%) | Mean Overhead (%) | P50 Overhead (%) | P95 Overhead (%) | P99 Overhead (%) |
|---|---|---|---|---|---|
| 0.2 ± 0.0 | 100.0 ± 0.0 | 0.8 ± 0.0 | 0.8 ± 0.1 | 1.5 ± 0.0 | 1.8 ± 0.1 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 1.4 ± 0.0 | 1.3 ± 0.0 | 2.3 ± 0.1 | 2.9 ± 0.1 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 2.2 ± 0.0 | 2.1 ± 0.0 | 3.5 ± 0.1 | 4.4 ± 0.1 |
| 2.0 ± 0.0 | 99.2 ± 0.2 | 3.9 ± 0.0 | 3.7 ± 0.0 | 5.9 ± 0.1 | 7.5 ± 0.1 |
| 3.2 ± 0.0 | 65.1 ± 0.6 | 6.3 ± 0.0 | 5.9 ± 0.0 | 9.4 ± 0.0 | 10.8 ± 0.1 |
| 3.7 ± 0.0 | 36.9 ± 0.2 | 7.1 ± 0.0 | 6.7 ± 0.0 | 10.1 ± 0.1 | 11.4 ± 0.0 |
| 4.0 ± 0.0 | 20.1 ± 0.1 | 7.6 ± 0.0 | 7.3 ± 0.0 | 10.8 ± 0.0 | 12.0 ± 0.1 |
| 4.2 ± 0.0 | 8.3 ± 0.0 | 7.9 ± 0.0 | 7.6 ± 0.0 | 11.1 ± 0.0 | 12.3 ± 0.1 |
| 4.3 ± 0.0 | 4.1 ± 0.0 | 8.1 ± 0.0 | 7.7 ± 0.0 | 11.2 ± 0.1 | 12.4 ± 0.0 |
num_tables = 5
| Throughput (c/s) | Success Rate (%) | Mean Overhead (%) | P50 Overhead (%) | P95 Overhead (%) | P99 Overhead (%) |
|---|---|---|---|---|---|
| 0.2 ± 0.0 | 100.0 ± 0.0 | 0.7 ± 0.0 | 0.6 ± 0.0 | 1.4 ± 0.1 | 1.6 ± 0.0 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 1.2 ± 0.0 | 1.2 ± 0.0 | 2.0 ± 0.1 | 2.3 ± 0.1 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 1.9 ± 0.0 | 1.9 ± 0.0 | 2.8 ± 0.1 | 3.3 ± 0.1 |
| 2.0 ± 0.0 | 100.0 ± 0.0 | 3.4 ± 0.1 | 3.3 ± 0.1 | 4.5 ± 0.1 | 5.0 ± 0.1 |
| 4.9 ± 0.1 | 100.0 ± 0.0 | 7.7 ± 0.1 | 7.5 ± 0.1 | 9.1 ± 0.1 | 10.0 ± 0.1 |
| 9.7 ± 0.1 | 97.9 ± 0.1 | 14.8 ± 0.1 | 14.5 ± 0.1 | 16.8 ± 0.1 | 18.0 ± 0.1 |
| 13.7 ± 0.1 | 68.9 ± 0.3 | 20.8 ± 0.0 | 20.6 ± 0.0 | 23.1 ± 0.0 | 24.1 ± 0.0 |
| 15.5 ± 0.0 | 30.7 ± 0.1 | 23.3 ± 0.0 | 23.1 ± 0.0 | 25.6 ± 0.0 | 26.5 ± 0.0 |
| 16.4 ± 0.0 | 15.9 ± 0.1 | 24.6 ± 0.0 | 24.4 ± 0.0 | 26.9 ± 0.0 | 27.7 ± 0.0 |
num_tables = 20
| Throughput (c/s) | Success Rate (%) | Mean Overhead (%) | P50 Overhead (%) | P95 Overhead (%) | P99 Overhead (%) |
|---|---|---|---|---|---|
| 0.2 ± 0.0 | 100.0 ± 0.0 | 0.6 ± 0.0 | 0.5 ± 0.0 | 1.5 ± 0.0 | 1.6 ± 0.0 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 0.9 ± 0.0 | 0.9 ± 0.0 | 1.8 ± 0.1 | 2.1 ± 0.1 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 1.6 ± 0.0 | 1.7 ± 0.0 | 2.5 ± 0.0 | 2.9 ± 0.0 |
| 2.0 ± 0.0 | 100.0 ± 0.0 | 3.2 ± 0.1 | 3.1 ± 0.1 | 4.1 ± 0.1 | 4.6 ± 0.1 |
| 4.9 ± 0.0 | 100.0 ± 0.0 | 7.4 ± 0.1 | 7.3 ± 0.1 | 8.6 ± 0.0 | 9.2 ± 0.1 |
| 9.9 ± 0.1 | 100.0 ± 0.0 | 14.5 ± 0.1 | 14.3 ± 0.1 | 15.9 ± 0.1 | 16.6 ± 0.1 |
| 19.7 ± 0.1 | 99.6 ± 0.0 | 28.2 ± 0.2 | 28.1 ± 0.1 | 29.9 ± 0.2 | 30.7 ± 0.2 |
| 30.4 ± 0.0 | 61.3 ± 0.1 | 43.6 ± 0.0 | 43.5 ± 0.0 | 45.1 ± 0.0 | 45.6 ± 0.0 |
| 32.6 ± 0.0 | 32.2 ± 0.1 | 46.8 ± 0.0 | 46.8 ± 0.0 | 48.2 ± 0.0 | 48.5 ± 0.0 |
num_tables = 50
| Throughput (c/s) | Success Rate (%) | Mean Overhead (%) | P50 Overhead (%) | P95 Overhead (%) | P99 Overhead (%) |
|---|---|---|---|---|---|
| 0.2 ± 0.0 | 100.0 ± 0.0 | 0.7 ± 0.0 | 0.7 ± 0.0 | 1.5 ± 0.0 | 1.7 ± 0.0 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 0.9 ± 0.0 | 0.9 ± 0.0 | 1.9 ± 0.1 | 2.1 ± 0.1 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 1.3 ± 0.0 | 1.5 ± 0.0 | 2.5 ± 0.1 | 2.8 ± 0.0 |
| 1.9 ± 0.0 | 100.0 ± 0.0 | 2.5 ± 0.0 | 2.9 ± 0.1 | 3.8 ± 0.1 | 4.2 ± 0.1 |
| 4.9 ± 0.0 | 100.0 ± 0.0 | 6.9 ± 0.1 | 7.0 ± 0.1 | 8.2 ± 0.1 | 8.8 ± 0.1 |
| 9.9 ± 0.1 | 100.0 ± 0.0 | 14.0 ± 0.1 | 14.0 ± 0.1 | 15.4 ± 0.2 | 16.0 ± 0.2 |
| 19.7 ± 0.2 | 100.0 ± 0.0 | 27.9 ± 0.2 | 27.8 ± 0.2 | 29.4 ± 0.2 | 30.2 ± 0.2 |
| 36.6 ± 0.0 | 74.5 ± 0.2 | 51.6 ± 0.0 | 51.5 ± 0.0 | 52.8 ± 0.1 | 53.2 ± 0.1 |
| 40.1 ± 0.0 | 40.2 ± 0.1 | 56.7 ± 0.0 | 56.6 ± 0.0 | 57.6 ± 0.0 | 57.9 ± 0.0 |
Interpretation
- Low overhead (<10%): System operating efficiently, minimal contention
- Medium overhead (10-30%): Moderate contention, acceptable performance
- High overhead (30-50%): High contention, commit protocol becoming significant
- Very high overhead (>50%): Commit protocol dominates, system saturated
Values shown as mean ± standard deviation across multiple seeds. At saturation, overhead can exceed 50%, meaning more time is spent retrying commits than executing transactions!
