Hi, In case of partial failures while implementing Replicated Log, there are few requirements which need to be fulfilled to sync logs on multiple nodes in case of node failure. e.g. In RAFT, if a node fails, there is a sync up that happens with communication from leader to push all the entries and truncation in case of some conflicting entries. Same happens with with Kafka when followers start re pulling data after startup. Consistency need to be maintained, by maintaining something like commitIndex or highwater mark to have the index till which the majority of the servers have acknowledged write.
In Apache BookKeeper I see that the consistency part is described well with last add confirmed description in below documentation, https://bookkeeper.apache.org/archives/docs/r4.4.0/bookkeeperProtocol.html But who takes care of updating a particular Bookie in case it crashses (or temporarily partitioned) and rejoins the cluster? Is there any initialization protocol that is run at startup? In Kafka, we have something like Controller which managers this initialization, (or in RAFT its the current leader which will manage it) I am going through the code to understand, but any pointers or hints will be very helpful Thanks, Unmesh