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]

Reply via email to