pulsar
pulsar copied to clipboard
[improve][pip] PIP-426: Enhanced Consumer Throttling and Unacknowledged Message Tracking for Exclusive and Failover Subscriptions
Fixes https://github.com/apache/pulsar/issues/24159
Main Issue: https://github.com/apache/pulsar/issues/24159
Motivation
- I have tried to fix the issue by https://github.com/apache/pulsar/pull/24376. However, that PR doesn't support features about cumulative ack, batching mode, and transaction. So I want to improve it further.
- I have found another issue that flowcontrol of exclusive or failover consumer is not work. Since the issues are highly correlated, I want to fix them at the same time.
Modifications
- Remove the
Subscription.isIndividualAckMode()restriction that limitspendingAcksusage to shared subscriptions. - Extend
PendingAckHandleImplfor exclusive/failover consumers. - Enhance flow control in
PersistentDispatcherSingleActiveConsumer
Verifying this change
- [X] Make sure that the change passes the CI checks.
Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
- [ ] Dependencies (add or upgrade a dependency)
- [ ] The public API
- [ ] The schema
- [ ] The default values of configurations
- [ ] The threading model
- [ ] The binary protocol
- [ ] The REST endpoints
- [ ] The admin CLI options
- [ ] The metrics
- [ ] Anything that affects deployment
Documentation
- [ ]
doc - [ ]
doc-required - [X]
doc-not-needed - [ ]
doc-complete
Matching PR in forked repository
PR in forked repository: