Hi Lari, Thank you for your work but I have a simple question about why we should rush for specific PR and why it's necessary to keep a particular PR part of ongoing release. I know multiple PRs that tried to address critical bugs on this similar issue and they were again blocked without solid reasons and I still have a few concerns about this approach but I don't want to block this proposal as this is addressing a long list of issues that can be useful for key-shared sub, But if we rush and release a new Pulsar release soon with these changes then there is a high chance of regression bugs in the release.
I know we should actively work to address such critical issues because I know many other critical PRs that are solving fundamental and performance problems are just sitting for years because they were blocked due to unknown/personal reasons by reviewers, But I also wish to have this critical PRs in the master branch for testing before releasing a new Pulsar-Release because I am not sure if it's worth to release in rush at the cost of unstable release. Thanks, Rajan On Fri, Oct 4, 2024 at 3:21 PM Lari Hotari <lhot...@apache.org> wrote: > This is a friendly reminder about the urgent need for review of PR #23352, > the first part of implementing "PIP-379: Key_Shared Draining Hashes for > Improved Message Ordering". > > PR: https://github.com/apache/pulsar/pull/23352 > Target: 4.0.0-preview.2 release, scheduled for Monday Oct 7th. > > Your prompt review would be greatly appreciated, ideally by end of day > today. This will allow time for addressing feedback over the weekend. > Thank you for your attention to this matter. > > -Lari > > On 2024/10/02 21:43:53 Lari Hotari wrote: > > Dear Pulsar Community, > > > > I am excited to announce that the first PR implementing "PIP-379: > > Key_Shared Draining Hashes for Improved Message Ordering" is now ready > > for review. This PR contains the core implementation as described in > > the PIP-379 document. PIP-379 is currently in voting. > > > > Since there is a goal to include this implementation in the > > 4.0.0-preview.2 release of 4.0.0, there is urgency to get the review > > started so that we can complete it by EOD on Monday, October 7th. I > > hope to receive review feedback as soon as possible so that I will > > have time to address the review comments. > > > > PR for review: https://github.com/apache/pulsar/pull/23352 > > Please read the PIP-379 document to get the context. The link is in > > the PR description. > > > > Some notable details: > > > > 1. The implementation focuses on maintaining the key invariant for > > Key_Shared subscriptions: "Messages with the same key are delivered > > and allowed to be in an unacknowledged state to only one consumer at a > > time." > > > > 2. More tests will be added to cover the new logic in classes such as > > DrainingHashesTracker, HashRanges (utility class), and PendingAcksMap. > > These tests will be added to the current PR asap. > > > > 3. Observability features will be implemented in a subsequent PR after > > this one is completed. > > > > 4. The vote for PIP-379 is currently open at: > > https://lists.apache.org/thread/z1kgo34qfkkvdnn3l007bdvjr3qqf4rw > > > > Important implementation notes: > > > > - While working on this solution, I discovered a potential memory leak > > in the current pending ack implementations. I do not think that the > > current implementation in Pulsar contains a solution for removing > > pending acks if the mark delete position moves forward as a result of > > cursor reset (or any other reason where it moves forward without > > individual acks). The PIP-379 implementation addresses this issue in > > the PendingAcksMap.removeAllUpTo method, which gets called from the > > PersistentDispatcherMultipleConsumers.readMoreEntries method. > > > > - Significant improvements have been made to ensure the consistency of > > pending acks, which is crucial for maintaining the Key_Shared > > subscription invariant. > > > > I kindly request the community to review the first implementation PR: > > https://github.com/apache/pulsar/pull/23352. Your feedback and > > suggestions are crucial for ensuring the quality and correctness of > > this important improvement to Pulsar's Key_Shared subscriptions. > > > > Thank you for your time and feedback, > > > > Lari > > >