TaiJuWu commented on PR #20859: URL: https://github.com/apache/kafka/pull/20859#issuecomment-3585878159
> Thanks for the changes @TaiJuWu. Leaving a review of the current approach in `src/main`, but please consider the below as an alternative approach (I think the below is simpler, but I would like @jsancio and @showuon 's input on it). In the interest of not duplicating effort, I think we should all agree on a design first. We agree that we need to reach a design consensus first. > > Sorry for the back and forth, but I think another, potentially easier way to go about this is actually to make the `ADD_RAFT_VOTER` sent by auto-join idempotent for the lifetime of the controller process. Basically, the leader will look through its voter set history and return a successful response if the requested node + incarnation ID was ever part of its voter set history. > > This approach requires a KIP, because we need to send the incarnation ID as part of the request, and the VotersRecord schema needs to be updated (meaning we need a kraft.version=2 as well I think), but it is much easier to prove this approach's correctness. If we want to do this change, I think using epoch is more reasonable. When the voter set change , we bump epoch but not to elect new leader, is it a possible solution? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
