BewareMyPower opened a new pull request, #19031:
URL: https://github.com/apache/pulsar/pull/19031

   Fixes https://github.com/apache/pulsar/issues/19030
   
   ### Motivation
   
   When a `BatchMessageIdImpl` is created from a deserialization, the 
`BatchMessageAcker` object cannot be shared by all instances in the same batch, 
which leads to an acknowledgment failure when batch index ACK is disabled (by 
default).
   
   ### Modifications
   
   Maintain a map from the `(ledger id, entry id)` pair to the 
`BatchMessageAcker` in `ConsumerImpl`. If the `BatchMessageIdImpl` doesn't 
carry a valid `BatchMessageAcker`, create and cache a `BatchMessageAcker` 
instance and remove it when all messages in the batch are acknowledged.
   
   It requires a change in `MessageIdImpl#fromByteArray` that a 
`BatchMessageAckerDisabled` will be created to indicate there is no shared 
acker.
   
   To avoid making code more complicated, this patch refactors the existing 
code that many logics about consumer are moved from the ACK tracker to the 
consumer. It also removes the `AckType` parameter when acknowledging a list of 
messages.
   
   ### Documentation
   
   <!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. -->
   
   - [ ] `doc` <!-- Your PR contains doc changes. Please attach the local 
preview screenshots (run `sh start.sh` at `pulsar/site2/website`) to your PR 
description, or else your PR might not get merged. -->
   - [ ] `doc-required` <!-- Your PR changes impact docs and you will update 
later -->
   - [x] `doc-not-needed` <!-- Your PR changes do not impact docs -->
   - [ ] `doc-complete` <!-- Docs have been already added -->
   
   ### Matching PR in forked repository
   
   PR in forked repository: https://github.com/BewareMyPower/pulsar/pull/15


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to