Transaction Timeouts
MariaDB has always had the wait_timeout and interactive_timeout settings, which close connections after a certain period of inactivity.
However, these are by default set to a long wait period. In situations where transactions may be started, but not committed or rolled back, more granular control and a shorter timeout may be desirable so as to avoid locks being held for too long.
MariaDB 10.3.0 introduced three new variables to handle this situation.
- idle_transaction_timeout (all transactions)
- idle_readwrite_transaction_timeout (write transactions)
- idle_readonly_transaction_timeout (read transactions)
These accept a time in seconds to time out, by closing the connection, transactions that are idle for longer than this period. By default all are set to zero, or no timeout.
idle_transaction_timeout affects all transactions, idle_readwrite_transaction_timeout affects write transactions only and idle_readonly_transaction_timeout affects read transactions only. The latter two variables work independently. However, if either is set along with idle_transaction_timeout, the settings for idle_readwrite_transaction_timeout or idle_readonly_transaction_timeout will take precedence.