pulsar icon indicating copy to clipboard operation
pulsar copied to clipboard

[improve][pip] PIP-426: Enhanced Consumer Throttling and Unacknowledged Message Tracking for Exclusive and Failover Subscriptions

Open berg223 opened this issue 7 months ago • 0 comments

Fixes https://github.com/apache/pulsar/issues/24159

Main Issue: https://github.com/apache/pulsar/issues/24159

Motivation

  1. 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.
  2. 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

  1. Remove the Subscription.isIndividualAckMode() restriction that limits pendingAcks usage to shared subscriptions.
  2. Extend PendingAckHandleImpl for exclusive/failover consumers.
  3. 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:

berg223 avatar Jun 09 '25 12:06 berg223