Module cartridge.failover
Gather information regarding instances leadership.
Failover can operate in two modes:
- In
disabled
mode the leader is the first server configured intopology.replicasets[].master
array. - In
eventual
mode the leader isn't elected consistently. Instead, every instance in cluster thinks the leader is the first healthy server in replicaset, while instance health is determined according to membership status (the SWIM protocol). - In
stateful
mode leaders appointments are polled from the external storage. (Added in v2.0.2-2)
This module behavior depends on the instance state.
From the very beginning it reports is_rw() == false
,
is_leader() == false
, get_active_leaders() == {}
.
The module is configured when the instance enters ConfiguringRoles
state for the first time. From that moment it reports actual values
according to the mode set in clusterwide config.
(Added in v1.2.0-17)
Functions
get_coordinator () | Get current stateful failover coordinator |
Local Functions
_get_appointments_disabled_mode () | Generate appointments according to clusterwide configuration. |
_get_appointments_eventual_mode () | Generate appointments according to membership status. |
_get_appointments_stateful_mode () | Get appointments from external storage. |
accept_appointments (replicaset_uuid) | Accept new appointments. |
failover_loop () | Repeatedly fetch new appointments and reconfigure roles. |
cfg () | Initialize the failover module. |
get_active_leaders () | Get map of replicaset leaders. |
is_leader () | Check current instance leadership. |
is_rw () | Check current instance writability. |
Functions
- get_coordinator ()
-
Get current stateful failover coordinator
Returns:
-
table
coordinator
Or
- nil
- table Error description
Local Functions
- _get_appointments_disabled_mode ()
- Generate appointments according to clusterwide configuration. Used in 'disabled' failover mode.
- _get_appointments_eventual_mode ()
- Generate appointments according to membership status. Used in 'eventual' failover mode.
- _get_appointments_stateful_mode ()
- Get appointments from external storage. Used in 'stateful' failover mode.
- accept_appointments (replicaset_uuid)
-
Accept new appointments.
Get appointments wherever they come from and put them into cache.
Parameters:
- replicaset_uuid {[string]=string} to leader_uuid map
Returns:
-
boolean
Whether leadership map has changed
- failover_loop ()
- Repeatedly fetch new appointments and reconfigure roles.
- cfg ()
- Initialize the failover module.
- get_active_leaders ()
-
Get map of replicaset leaders.
Returns:
-
{[replicasetuuid] = instanceuuid,...}
- is_leader ()
-
Check current instance leadership.
Returns:
-
boolean
true / false
- is_rw ()
-
Check current instance writability.
Returns:
-
boolean
true / false