Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
-
None
-
ghx-label-7
Description
We need to consider how query retries interact with ACID transactions. As of IMPALA-9199, Impala will create new ClientRequestStates for each query retry and will cache the TExecRequest between ClientRequestStates. This might not be safe for ACID transactions. If the first query attempt fails, then the transaction will fail and a new one will be required. However, the query retry will use the transaction id / info from the original query attempt.
I think the semantics are not entirely clear here, and we don't have any tests for this. So the goal of this JIRA is to (1) identify if there are any issues with the current approach, (2) fix any issues with transactions during query retries, and (3) add some query retry tests that enable transactions.
We might want to consider whether a query and it's retry should be in the same, or different transactions. Keeping them in the same transaction should allow us cache the TExecRequest. If they are in separate transactions, then Impala might need to create a new TExecRequest for each retry.