Skip to content

Conversation

@syslucas
Copy link
Contributor

Motivation

The main content of this PR is to implement the Pulsar Java community's PIP-393 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

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: The Windows 2019 Actions runner image will begin deprecation on 2025-06-01 and will be fully unsupported by 2025-06-30 actions/runner-images#12045).
  2. Updated debian 10 in the Dockerfile to debian 11, as it no longer works with GitHub images (ref: "docker build" on ubuntu image cannot connect to http://deb.debian.org actions/runner-images#12627).

Verifying this change

  • 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

  • doc-required

  • doc-not-needed

  • doc

  • doc-complete

@BewareMyPower BewareMyPower added this to the 3.8.0 milestone Jul 31, 2025
@BewareMyPower
Copy link
Contributor

Could you fix the .github/workflows/codeql-analysis.yml?

@syslucas
Copy link
Contributor Author

Could you fix the .github/workflows/codeql-analysis.yml?

Of course, I'll deal with this.

@BewareMyPower BewareMyPower merged commit 9b86f9e into apache:main Aug 4, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants