Skip to content

Conversation

@gmethvin
Copy link
Member

@gmethvin gmethvin commented Jan 3, 2020

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.

Copy link
Contributor

@jerrypeng jerrypeng left a 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!

Comment on lines +58 to +59
> 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.
Copy link
Contributor

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #5990 for a fix for this from @zzzming.

Copy link
Member Author

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.

Copy link
Contributor

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.

Copy link
Member Author

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.

Copy link
Member

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.

@gmethvin
Copy link
Member Author

gmethvin commented Jan 5, 2020

anyone know why is CI not running for this PR?

@sijie sijie closed this Jan 6, 2020
@sijie sijie reopened this Jan 6, 2020
@sijie
Copy link
Member

sijie commented Jan 6, 2020

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?

@sijie sijie added the doc Your PR contains doc changes, no matter whether the changes are in markdown or code files. label Jan 6, 2020
@sijie sijie added this to the 2.6.0 milestone Jan 6, 2020
@sijie
Copy link
Member

sijie commented Jan 8, 2020

since the master is back to normal, trigger CI test via " retest this please "

@jiazhai
Copy link
Member

jiazhai commented Jan 9, 2020

run java8 tests

@sijie
Copy link
Member

sijie commented Jan 18, 2020

retest this please

@sijie
Copy link
Member

sijie commented Jan 22, 2020

run java8 tests
run cpp tests

@sijie sijie merged commit f4ad1e8 into apache:master Jan 23, 2020
@gmethvin gmethvin deleted the batching-docs branch January 25, 2020 02:57
huangdx0726 pushed a commit to huangdx0726/pulsar that referenced this pull request Aug 24, 2020
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Your PR contains doc changes, no matter whether the changes are in markdown or code files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants