kevin-wu24 commented on PR #20859: URL: https://github.com/apache/kafka/pull/20859#issuecomment-3594416314
> Then, we can easily check the log end offset == 0 in metadata log in kakfaRaftClient#initialize() in the client side. If LEO is 0, we know this node is a brand new node, we will auto-join it if auto-join is enabled. Otherwise, we won't do that. Is this much clear to resolve this issue? Here is a case where this client side implementation would run into poor UX. New ReplicaKey X formats and starts up. It is in the "auto-joining" mode, performs a fetch first, writes the records to disk, and then restarts. If the above occurs before the `UpdateVoterSetTimer` expires and the client polls, the client has no way of turning auto-join on during subsequent restarts. In this case, the user expects a node to auto-join but it doesn't because of the process restarting. I believe the server-side `ReplicaKey` idempotency approach is best. -- 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]
