A few transaction options no longer need to be reset when retrying a transaction. Currently, these are the timeout, max retries, and max retry delay transaction options.
This currently doesn't work well with the multi-version client when it switches the cluster version because it effectively does a full reset of the transaction in onError when this occurs. That means that the previously set values of these transaction options will be lost.
Additionally, we may want to consider also storing the values of the database defaults for these options when the transaction was created to avoid a situation where creating a transaction, changing the database default, and then upgrading the cluster causes the transaction to switch to the new default.
See discussion at #1323.