gy-deng opened a new pull request, #497: URL: https://github.com/apache/pulsar-client-cpp/pull/497
<!-- ### Contribution Checklist - PR title format should be *[type][component] summary*. For details, see *[Guideline - Pulsar PR Naming Convention](https://docs.google.com/document/d/1d8Pw6ZbWk-_pCKdOmdvx9rnhPiyuxwq60_TrD68d7BA/edit#heading=h.trs9rsex3xom)*. - Fill out the template below to describe the changes contributed by the pull request. That will give reviewers the context they need to do the review. - Each pull request should address only one issue, not mix up code from multiple issues. - Each commit in the pull request has a meaningful commit message - Once all items of the checklist are addressed, remove the above text and this checklist, leaving only the filled out template below. --> <!-- Either this PR fixes an issue, --> <!-- or this PR is one task of an issue --> ### Motivation <!-- Explain here the context, and why you're making that change. What is the problem you're trying to solve. --> The main content of this PR is to implement the Pulsar Java community's [PIP-393](https://github.com/apache/pulsar/pull/23601) proposal in the CPP client. Negative acknowledgement handling in now Pulsar CPP client exhibits inefficiencies related to memory usage, timing precision, and batch-level contention. This effort aims to bring parity with the refinements implemented in the Java client, notably around memory usage and redelivery coordination. ### Modifications <!-- Describe the modifications you've done. --> Refactor the `NegativeAcksTracker` to solve the above problems. Updated outdated images in CI: 1. Updated windows-2019 to 2022, as windows-2019 was deprecated on June 30, 2025 (ref: https://github.com/actions/runner-images/issues/12045). 2. Updated debian 10 in the Dockerfile to debian 11, as it no longer works with GitHub images (ref: https://github.com/actions/runner-images/issues/12627). ### Verifying this change - [x] Make sure that the change passes the CI checks. This change added tests and can be verified as follows: - *Functional testing of negative acks is covered by existing tests (e.g., `testNegativeAcks`)* - *Extended integration test for evaluating redelivery precision across varying negative acknowledgement bit-widths (i.e., `testNegativeAckPrecisionBitCnt`.* ### Documentation <!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. --> - [ ] `doc-required` - [x] `doc-not-needed` - [ ] `doc` - [ ] `doc-complete` -- 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: commits-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org