[ 
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)

Reply via email to