raft-rs icon indicating copy to clipboard operation
raft-rs copied to clipboard

How to handle committed ConfChangeV2

Open haraldng opened this issue 3 years ago • 2 comments

Is it possible to provide an example on how to handle a committed ConfChangeV2 Entry? The example in single_mem_node is still a TODO and in five_mem_node still uses the old ConfChange.

Thanks in advance

haraldng avatar Jun 20 '21 14:06 haraldng

It depends on how would you like to exit joint state. If auto_leave is configured, then raft node should propose a leave joint command when enter join is applied, which is informed by apply_conf_change. All you need to do is maintaining the metadata according the the committed entries.

If auto_leave is set to false, then you need to propose a leave joint command, which is just an empty conf change, manually.

I hope tests code can help for now example is missing:

https://github.com/tikv/raft-rs/blob/7c21f8d12f2043c43004fca48861568db7c76bd9/harness/tests/integration_cases/test_raw_node.rs#L176-L462

BusyJay avatar Jun 21 '21 14:06 BusyJay

I don't understand how to auto leave the joint state. What metadata need to be maintained after performing apply_conf_change and what actions need to be performed?

haraldng avatar Jul 06 '21 10:07 haraldng