[
https://issues.apache.org/jira/browse/IGNITE-22899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-22899:
---------------------------------------
Labels: iep-128 ignite-3 (was: ignite-3)
> Repair MG on node start
> -----------------------
>
> Key: IGNITE-22899
> URL: https://issues.apache.org/jira/browse/IGNITE-22899
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: iep-128, ignite-3
>
> When a node starts and finds a ClusterResetMessage in its Vault, it executes
> the CMG reset routine described in IGNITE-22807. If the message contains
> fields related to the Metastorage (which means that MG repair is requested),
> the following has to be done:
> # Pause node startup before starting Metastorage
> # On the repair conductor (that is, the node whose consistentId is the same
> as the value of 'conductor' in the message), the following is done:
> ## Wait till all nodes specified in the 'nodes' field of the message pass
> basic validation on the CMG
> ## Send a MetastorageRepairStartMessage to those nodes (see IGNITE-22900)
> ## After receiving responses from all the nodes (if a node leaves the
> ‘basically validated’ node set (or a higher set), the procedure ends with an
> error and ‘cluster reset’ has to be repeated), the Conductor chooses new MG
> nodes from those that successfully returned responses [the set of nodes that
> returned successful responses is U] (by choosing top N ordering them by
> index+term; N is metastorageReplicationFactor from the ClusterResetMessage)
> ## The Conductor submits CmgChangeMgNodesCommand (containing new MG nodes)
> to the CMG (see IGNITE-22902)
> ## The Conductor then chooses one of the new MG nodes having the highest
> index+term as the new leader and sends it a BecomeMetastorageLeaderMessage
> (see IGNITE-22903)
> ## After getting a successful response to BecomeMetastorageLeaderMessage,
> the Conductor forms a new Raft configuration including all new MG nodes as
> the voting set and other nodes from U as learners. It then does changePeers
> via the new leader to switch to this configuration. After the leader elected
> on the previous step (the sole leader) gets reelected (or ceases to be a
> leader), the prohibition for it to send idle safe time commands and manage
> learners is lifted
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)