-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[docs] Improve documentation about batching #5989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
jerrypeng
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gmethvin LGTM thanks for helping improve documentation around batching! Much appreciated!
| > Note | ||
| > Since batches are tracked as single units, a batch will only be considered acknowledged when all its messages are acknowledged by the consumer. This means unexpected failures, negative acknowledgements, and acknowledgement timeouts can result in redelivery of all messages in the batch, even if some of the messages have already been acknowledged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think just noting is not enough, it should be pointed out that this is a buggy behavior and should be fixed in future releases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That fix is only on the client side, so batches may still be fully redelivered if the consumer crashes or restarts, though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True. That fix improves the situation, but doesn't resolve it entirely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we agree it's definitely a bug, then let's get the fix and this documentation update in the next release, and I'll remove the part about negative acks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. This is a bug and fixes at the client side are not enough. Just fixing this at the client side is actually making the behavior much more confused. We need to get this documentation merged first and then fix the behavior fundamentally in the next release.
|
anyone know why is CI not running for this PR? |
|
it seems that closing the PR doesn't trigger CI. @tuteng can you help check why the CI doesn't run for this pull request? |
|
since the master is back to normal, trigger CI test via " retest this please " |
|
run java8 tests |
|
retest this please |
|
run java8 tests |
I noticed the documentation around batching didn't clarify some important details about how batching works in Pulsar, and particularly how it interacts with acknowledgements and redeliveries. This is my attempt to provide some clarity.
I noticed the documentation around batching didn't clarify some important details about how batching works in Pulsar, and particularly how it interacts with acknowledgements and redeliveries. This is my attempt to provide some clarity.