Open maxenglander opened 1 year ago
@maxenglander the Issue title and description are contradictory. I assume you mean "OLAP workloads to bypass OLTP query timeouts ..."
@vitessio/query-serving WDYT? Should we create a new flag for OLAP query timeout and use that for all (SELECT/UPDATE/INSERT)? Or just ignore the timeout like we do for SELECT?
@deepthi oops fixed thanks for catching.
@harshit-gangal ☝️
We will have to check the workload on all the tabletserver API and set the timeout accordingly
We will have to check the workload on all the tabletserver API and set the timeout accordingly
Didn't answer my question though.. Do we ignore the OLTP timeout or add a new flag for OLAP timeout?
OLAP is without a timeout, what I mean is that if workload = olap, set the timeout to zero, or no need to set timeout basically.
OLAP already has a transaction timeout today, Separate from OLTP transaction timeout. That should not be ignored, essentially DML should be executed within a timebound manner to avoid rows lock time.
Documenting that the existing flag that we should be respecting for DML in OLAP mode is queryserver-config-olap-transaction-timeout
.
Description
Unlike
SELECT
queries, DML queries timeout the same way in OLTP and OLAP workloads. It would be great to have a way to bypass the OLTP timeout for DML queries without having to raise the OLTP query timeout.One way to do this would be to extend OLAP workloads to bypass the OLTP query timeout for DML queries the same way that OLAP workloads currently bypass the OLTP query timeout for
SELECT
queries.Details
Both of these OLTP queries timeout after the 30s OLTP query timeout elapses (as expected).
In OLAP, the
SELECT
query does not timeout (as expected), but theUPDATE
query does timeout.Whether or not it is expected for the
UPDATE
query to timeout in OLAP workloads is a question that would be great to answer in this issue.Use cases
There are PlanetScale/Vitess users with long-running DML queries that would like to be able to bypass the OLTP timeout for those queries, but who would still like to leave the OLTP timeout at a low/default value.