[MXS-4887] Better default values for readwritesplit Created: 2023-12-06  Updated: 2024-01-03  Resolved: 2024-01-03

Status: Closed
Project: MariaDB MaxScale
Component/s: readwritesplit
Affects Version/s: None
Fix Version/s: 24.02.0

Type: Task Priority: Major
Reporter: markus makela Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None


 Description   

Some of the features in readwritesplit like master_failure_mode and master_reconnection are configured in a way that is not optimal. A better default would be to have master_failure_mode=fail_on_write and master_reconnection=true. This would hide most simple node failures without any adverse side effects.



 Comments   
Comment by markus makela [ 2023-12-21 ]

The proposed new default values are:

  • master_reconnection=true
  • master_failure_mode=fail_on_write
  • strict_tmp_tables=true
  • transaction_replay_timeout=30s

With this configuration, node failures only terminate the session if it would prevent some work from being done. Short outages of any node in the cluster would no longer terminate all idle sessions immediately and the ones that aren't in a transaction can potentially survive it. Due to the risk of temporary tables being dropped as a result of the master reconnection, strict_tmp_tables should also be enabled by default.

To make the transaction replay timeouts more consistent, the value of transaction_replay_timeout can be set to a rough average of the minimum and maximum estimated failure times of the previous defaults. The 30 seconds is a reasonable time to expect transactions to be replayed for without being excessively slow.

Generated at Thu Feb 08 04:31:52 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.