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.

Reply via email to