Hi all After discussing with Lari and Metteo, we get a conclusion: - 3.0, 3.3, 4.0: set default value of #9292 to `false` - `4.1`: set the default value of #9292 to `true`
I have cherry-picked #9292 into branch-3 and branch-3.3, and cherry-picked and #23759 into branch-3., branch-3.3 and branch-4.0 And I pushed a PR to set the default value of the feature to `true` to improve `branch-4.1` - https://github.com/apache/pulsar/pull/23888 On Mon, Dec 23, 2024 at 11:53 AM Yubiao Feng <yubiao.f...@streamnative.io> wrote: > Hi all > > ## Background > PR #9292 improved the serialization for cursor metadata, which reduces > Young GC and makes Pulsar persist more ack records of the cursor, but it > also caused two issues below > > **Issue-1: Downgrade compatibility issue** > - It changed the default implementation of cursor serialization. > - Users can not rollback to `3.0.x` once upgraded to `4.0.x` because > `release:3.0.x` does not contain the deserialization introduced by it, > > **Issue-2: It is in conflict with another config > unackedRangesOpenCacheSetEnabled** > - If users disabled `unackedRangesOpenCacheSetEnabled`, the cursor ack > records will always be lost. see details > https://github.com/apache/pulsar/pull/23759 > > ## Goal > > - Add an optional config to disable the feature that compresses cursor > metadata, which was contributed by #9292 > > ``` > cursorMetadataSerialization=V2 > ``` > > - Since it reduced Young GC, I want to cherry-pick it into branch-3.0 with > a disabled default value. > >