You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I came across the following behaviour:
When semi-sync is enforced at orchestrator level, orchestrator does not set the primary node with rpl_semi_sync_master_enabled=1 on primary restart (when failover doesn't happen).
Orchestrator configuration for semi-sync: "DetectSemiSyncEnforcedQuery": "SELECT @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000;"
All of our nodes have this enforced: MariaDB [(none)]> SELECT @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000; +-------------------------------------------------------------------------------------------+ | @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000 | +-------------------------------------------------------------------------------------------+ | 1 | +-------------------------------------------------------------------------------------------+
We deploy our clusters with rpl_semi_sync_master_enabled=0 as default and set rpl_semi_sync_master_enabled=1 at runtime in the current primary. Whenever there's a failover (manual or automatic), orchestrator takes care of setting rpl_semi_sync_master_enabled=1 at runtime in the new primary and rpl_semi_sync_master_enabled=0 to the old primary.
However, if primary is restarted and there's no failover, orchestrator does not enforce rpl_semi_sync_master_enabled=1 on the primary.
Do you think it makes sense for orchestrator to be routinely enforcing rpl_semi_sync_master_enabled=1 on the primary?
Thanks,
Pedro.
The text was updated successfully, but these errors were encountered:
pedroalb
changed the title
Semi-sync is not enforced on primary restart when failover doesn't happen
Semi-sync is not enforced on primary when it restarts and when failover doesn't happen
Nov 19, 2020
Hi Shlomi!
Hope you're doing well.
I came across the following behaviour:
When semi-sync is enforced at orchestrator level, orchestrator does not set the primary node with
rpl_semi_sync_master_enabled=1
on primary restart (when failover doesn't happen).Orchestrator configuration for semi-sync:
"DetectSemiSyncEnforcedQuery": "SELECT @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000;"
All of our nodes have this enforced:
MariaDB [(none)]> SELECT @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000; +-------------------------------------------------------------------------------------------+ | @@global.rpl_semi_sync_slave_enabled AND @@global.rpl_semi_sync_master_timeout >= 1000000 | +-------------------------------------------------------------------------------------------+ | 1 | +-------------------------------------------------------------------------------------------+
We deploy our clusters with
rpl_semi_sync_master_enabled=0
as default and setrpl_semi_sync_master_enabled=1
at runtime in the current primary. Whenever there's a failover (manual or automatic), orchestrator takes care of settingrpl_semi_sync_master_enabled=1
at runtime in the new primary andrpl_semi_sync_master_enabled=0
to the old primary.However, if primary is restarted and there's no failover, orchestrator does not enforce
rpl_semi_sync_master_enabled=1
on the primary.Do you think it makes sense for orchestrator to be routinely enforcing
rpl_semi_sync_master_enabled=1
on the primary?Thanks,
Pedro.
The text was updated successfully, but these errors were encountered: