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 | 1.3 ± 0.0 | 1.2 ± 0.1 | 2.6 ± 0.1 | 3.4 ± 0.3 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 2.0 ± 0.1 | 1.8 ± 0.1 | 4.0 ± 0.2 | 5.4 ± 0.4 |
| 1.0 ± 0.0 | 99.4 ± 0.2 | 3.4 ± 0.1 | 2.9 ± 0.1 | 6.7 ± 0.3 | 9.4 ± 1.0 |
| 1.6 ± 0.0 | 83.5 ± 0.7 | 5.3 ± 0.0 | 4.6 ± 0.0 | 10.4 ± 0.1 | 13.3 ± 0.1 |
| 2.0 ± 0.0 | 41.4 ± 0.3 | 6.3 ± 0.1 | 5.6 ± 0.1 | 11.9 ± 0.2 | 14.4 ± 0.2 |
| 2.2 ± 0.0 | 22.3 ± 0.2 | 6.9 ± 0.0 | 6.2 ± 0.1 | 12.6 ± 0.1 | 14.9 ± 0.1 |
| 2.3 ± 0.0 | 11.6 ± 0.0 | 7.1 ± 0.1 | 6.4 ± 0.1 | 12.7 ± 0.1 | 14.9 ± 0.1 |
| 2.4 ± 0.0 | 4.8 ± 0.0 | 7.2 ± 0.0 | 6.6 ± 0.0 | 12.9 ± 0.1 | 15.2 ± 0.2 |
| 2.5 ± 0.0 | 2.4 ± 0.0 | 7.3 ± 0.0 | 6.7 ± 0.1 | 12.9 ± 0.1 | 15.0 ± 0.1 |
num_tables = 5
| Throughput (c/s) | Success Rate (%) | Mean Overhead (%) | P50 Overhead (%) | P95 Overhead (%) | P99 Overhead (%) |
|---|---|---|---|---|---|
| 0.2 ± 0.0 | 100.0 ± 0.0 | 1.0 ± 0.0 | 0.8 ± 0.1 | 2.4 ± 0.1 | 2.7 ± 0.1 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 1.7 ± 0.0 | 1.5 ± 0.0 | 2.9 ± 0.0 | 3.6 ± 0.3 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 2.5 ± 0.0 | 2.4 ± 0.0 | 4.0 ± 0.1 | 4.9 ± 0.1 |
| 2.0 ± 0.0 | 100.0 ± 0.0 | 4.1 ± 0.0 | 3.9 ± 0.1 | 6.1 ± 0.1 | 7.3 ± 0.1 |
| 4.9 ± 0.0 | 99.3 ± 0.1 | 9.0 ± 0.1 | 8.6 ± 0.0 | 12.2 ± 0.1 | 14.5 ± 0.1 |
| 7.8 ± 0.0 | 78.1 ± 0.4 | 14.0 ± 0.0 | 13.5 ± 0.1 | 18.6 ± 0.1 | 20.8 ± 0.1 |
| 8.8 ± 0.0 | 44.3 ± 0.2 | 15.7 ± 0.0 | 15.2 ± 0.0 | 20.4 ± 0.1 | 22.4 ± 0.1 |
| 9.9 ± 0.0 | 19.6 ± 0.1 | 17.5 ± 0.0 | 17.0 ± 0.0 | 22.3 ± 0.0 | 24.0 ± 0.0 |
| 10.2 ± 0.0 | 9.9 ± 0.0 | 18.0 ± 0.0 | 17.5 ± 0.0 | 22.8 ± 0.0 | 24.4 ± 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 | 1.0 ± 0.0 | 0.7 ± 0.0 | 2.4 ± 0.0 | 2.6 ± 0.1 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 1.2 ± 0.0 | 1.0 ± 0.0 | 2.7 ± 0.1 | 3.1 ± 0.1 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 2.0 ± 0.1 | 1.9 ± 0.1 | 3.4 ± 0.1 | 3.9 ± 0.1 |
| 2.0 ± 0.0 | 100.0 ± 0.0 | 3.6 ± 0.1 | 3.5 ± 0.1 | 5.1 ± 0.1 | 6.0 ± 0.1 |
| 4.9 ± 0.0 | 100.0 ± 0.0 | 8.1 ± 0.0 | 7.9 ± 0.1 | 10.1 ± 0.1 | 11.1 ± 0.1 |
| 9.9 ± 0.1 | 100.0 ± 0.0 | 15.4 ± 0.1 | 15.2 ± 0.1 | 17.9 ± 0.1 | 19.2 ± 0.1 |
| 18.6 ± 0.0 | 94.7 ± 0.1 | 28.3 ± 0.0 | 28.0 ± 0.0 | 31.6 ± 0.0 | 33.2 ± 0.0 |
| 24.1 ± 0.0 | 48.3 ± 0.1 | 36.5 ± 0.0 | 36.3 ± 0.0 | 39.8 ± 0.0 | 40.9 ± 0.0 |
| 25.7 ± 0.1 | 25.1 ± 0.1 | 38.8 ± 0.0 | 38.6 ± 0.0 | 41.9 ± 0.0 | 42.9 ± 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 | 1.1 ± 0.0 | 1.0 ± 0.1 | 2.4 ± 0.0 | 2.7 ± 0.1 |
| 0.5 ± 0.0 | 100.0 ± 0.0 | 1.2 ± 0.0 | 1.0 ± 0.0 | 2.8 ± 0.0 | 3.1 ± 0.0 |
| 1.0 ± 0.0 | 100.0 ± 0.0 | 1.7 ± 0.0 | 1.7 ± 0.0 | 3.4 ± 0.1 | 3.8 ± 0.1 |
| 2.0 ± 0.0 | 100.0 ± 0.0 | 2.9 ± 0.0 | 3.1 ± 0.0 | 4.7 ± 0.0 | 5.3 ± 0.1 |
| 4.9 ± 0.0 | 100.0 ± 0.0 | 7.5 ± 0.1 | 7.5 ± 0.0 | 9.3 ± 0.0 | 10.3 ± 0.1 |
| 9.9 ± 0.1 | 100.0 ± 0.0 | 14.8 ± 0.1 | 14.6 ± 0.1 | 16.8 ± 0.1 | 17.8 ± 0.2 |
| 19.7 ± 0.2 | 99.9 ± 0.0 | 28.7 ± 0.2 | 28.5 ± 0.1 | 31.1 ± 0.2 | 32.4 ± 0.2 |
| 33.8 ± 0.1 | 68.5 ± 0.2 | 49.2 ± 0.1 | 49.1 ± 0.1 | 51.5 ± 0.1 | 52.3 ± 0.1 |
| 36.5 ± 0.0 | 36.2 ± 0.1 | 53.3 ± 0.0 | 53.2 ± 0.0 | 55.3 ± 0.0 | 55.8 ± 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!
