Hi,
4
I read about the Kafka replication protocol. I found that Kafka maintains
LEO and HW. As I understood,
LEO: Offset of latest message a replica has seen.
HW: Offset of the latest message which is guaranteed that each replica has
persisted into their local log.
We can set the following acknowledgement methods in Kafka producers
configurations.
1. acks = 0 (Leader replica sends an acknowledgement to the producer
once it has seen the message)
2. acks = 1 (Leader replica sends an acknowledgement to the producer
once it has persisted the message to its local log)
3. acks = all (Leader replica sends an acknowledgement to the
producer once every in-sync replica has persisted the message to
its local
log)
So my question is how the leader advances the HW depending on the
acknowledgement method message producer uses.
What I think is,
1.
for acks = 0, Leader advances the HW when it sees a new message.
2.
for acks = 1, Leader advances the HW when it has written the new message
to its local log.
3.
for acks = all, Leader advances HW when each an every follower sent ack
that they persisted the message.
Is this correct? Can anyone clarify this?
Thanks