You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pulsar.apache.org by Sijie Guo <gu...@gmail.com> on 2018/07/30 17:50:28 UTC

Re: Is every message has status for acknowledge in ack way of individually

+ users@pulsar.incubator.apache.org

A short answer is: yes, every message has the status for acknowledgement.
pulsar uses a bookkeeper ledger for storing the changes for message
acknowledgements.

for cumulative acknowledgment, pulsar stores the updates for the acked
message id (you can think it as an offset in the log) in the bookkeeper
ledger. that says if pulsar receives a cumulative ack, it stores the ack as
an entry to the ledger.
for ack individually, pulsar broker maintains range set of message ids, it
contains a pointer of message id where all the messages before this pointer
are acked and a range set of individual acks.

since pulsar uses bookkeeper ledgers for storing acks, it is able to
achieve very high throughput acks.

Ivan wrote a good blog post about how pulsar uses bookkeeper for storing
acks - https://streaml.io/blog/cursors-in-pulsar/

Hope this helsp.

- Sijie

On Mon, Jul 30, 2018 at 3:47 AM li.penghui <li...@zhaopin.com.cn>
wrote:

> After read the blog of pulsar-streaming-queuing
> https://streaml.io/blog/pulsar-streaming-queuing/
> I have questions in Message Acknowledgment
> How pulsar support the ack way of individually.  Is every message has
> status for acknowledge?
>