OneSizeFitsQuorum opened a new pull request, #1564:
URL: https://github.com/apache/ratis/pull/1564

   ## What changes were proposed in this pull request?
   
   Persist the initial Raft configuration in a separate bootstrap metadata file 
before a newly added group is allowed to start successfully.
   
   During recovery, the persisted Raft configuration remains authoritative. 
When no Raft configuration entry has been persisted yet, the bootstrap 
configuration restores the initial membership so the division can start and 
elect a leader. The bootstrap file is removed after a formal configuration is 
persisted.
   
   The recovery path also rejects conflicting bootstrap membership, while 
allowing the same peer IDs and priorities to be supplied with updated peer 
metadata such as addresses. Invalid empty or transitional bootstrap 
configurations fail startup instead of silently recovering with an unsafe 
configuration.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/RATIS-2661
   
   ## How was this patch tested?
   
   - TestGroupManagementWithGrpc: 10 tests passed.
   - TestGroupManagementWithNetty: 10 tests passed.
   - TestGroupManagementWithSimulatedRpc: 10 tests passed.
   - TestRaftStorage: 16 tests passed.
   - Maven Checkstyle completed with 0 violations.
   
   The new regression test dynamically creates a three-peer group, blocks 
voting before the initial configuration entry is appended, restarts all peers 
through directory recovery, and verifies that the stored bootstrap membership 
allows the group to start and elect a leader.


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