Commit 9980ca0
Align OLAP transaction timeout with OLTP for tpcc-olap
The `tpcc-olap` workload fails ~43% of runs with sysbench aborting:
`FATAL: 'thread_run' function failed: (not a string)`. Plain `tpcc`,
which is byte-for-byte identical except for running vtgate in OLAP mode
(`--mysql_default_workload=OLAP`), passes 100% of the time.
Root cause: vttablet enforces a *separate* transaction timeout for OLAP
sessions via `--queryserver-config-olap-transaction-timeout`, which
defaults to 30s. We tuned up the OLTP timeouts long ago
(`transaction-timeout=300s`, `query-timeout=900s`) but never raised the
OLAP one. Under TPCC's lock contention (42 threads, 2 warehouses), an
OLAP-session transaction routinely blocks past 30s, so vttablet kills
the connection. A killed connection — unlike a retryable lock-wait error
that sysbench ignores via `--mysql-ignore-errors=all` — severs a
sysbench worker mid-run and crashes the benchmark.
Set `--queryserver-config-olap-transaction-timeout` to 300s so OLAP
sessions get the same headroom as OLTP, matching the regular `tpcc`
workload.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 338f907 commit 9980ca0
1 file changed
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| 45 | + | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| |||
0 commit comments