[
https://issues.apache.org/jira/browse/IGNITE-18159?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Polovtcev updated IGNITE-18159:
-----------------------------------------
Description:
As described in IGNITE-18070, we need to implement one of the scenarios that
will allow us to have a single Ignite node hosting a follower and a learner
from the same Raft group. This ticket focuses on a case when a node gets
"split", that is, when after calculating the assignments, a follower (or a
learner) gets moved to a different Ignite node.
The algorithm looks like the following: after stable assignments have been
changes, we simply destroy the follower's (or learner's, whichever gets moved)
storage data (looks like a good place for that would be inside the
{{metaStorageMgr.registerWatchByPrefix(ByteArray.fromString(STABLE_ASSIGNMENTS_PREFIX)}}
listener in the {{TableManager}}) on the node that gets "split" . The other
node should simply start the corresponding Raft service as usual, its data
would be transferred by Raft replication.
> Implement splitting of an Ignite node hosting a learner and a follower from
> the same Raft group
> -----------------------------------------------------------------------------------------------
>
> Key: IGNITE-18159
> URL: https://issues.apache.org/jira/browse/IGNITE-18159
> Project: Ignite
> Issue Type: Task
> Reporter: Aleksandr Polovtcev
> Priority: Major
> Labels: ignite-3
>
> As described in IGNITE-18070, we need to implement one of the scenarios that
> will allow us to have a single Ignite node hosting a follower and a learner
> from the same Raft group. This ticket focuses on a case when a node gets
> "split", that is, when after calculating the assignments, a follower (or a
> learner) gets moved to a different Ignite node.
> The algorithm looks like the following: after stable assignments have been
> changes, we simply destroy the follower's (or learner's, whichever gets
> moved) storage data (looks like a good place for that would be inside the
> {{metaStorageMgr.registerWatchByPrefix(ByteArray.fromString(STABLE_ASSIGNMENTS_PREFIX)}}
> listener in the {{TableManager}}) on the node that gets "split" . The other
> node should simply start the corresponding Raft service as usual, its data
> would be transferred by Raft replication.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)