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.