In Zab, assume we have a cluster consists of 3-servers. To deliver a write 
request, it must run 3 communication steps proposal, acknowledgement and commit.
As Zab uses reliable FIFO, it is possible to remove commit round. As soon as a 
follower receives a proposal, it logs, sends an ACK and commits locally. Upon 
receiving ACK from any follower, leader commits a proposal locally, no COMMIT 
message need to be sent to followers. In this case, all servers commit a 
proposal in two round-trips, resulting in reducing latency particularly in 
followers.

Note that this optimization can only work in 3-servers cluster (follower 
reaches a majority as soon as it acks).
Does anyone see any problems with such (small) optimization?
Ibrahim

Reply via email to