You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Currently, pulsar provides <LedgerId, EntryId> to locate an Entry, and provides BatchIndex for the inner message of Entry.
But there is not a continuous offset for each Message in Entry and we could not use the offset to search an Entry.
For protocol handler like KOP, the map between kakfa offset and pulsar position is implenment by split 64 bits to three parts which represents ledgerId, entryId and batchIndex seperatelly. This way makes the max range of ledgerId much lower than Long.MAX_VALUE and ledgerId space will used up quickly, see streamnative/kop#175.
Describe the solution you'd like
We should introduce continuous offset for pulsar, which can be achieved by broker entry metadata introduced in PIP-70.
Additional context
We can introduce offset for each message first, and with this feature, we can more things futher
implement a more stable offset manager for KOP
provide more preceise metrics on message level like backlog
...
The text was updated successfully, but these errors were encountered:
Fixes#9038
### Motivation
As described in [PIP-70](https://github.com/apache/pulsar/wiki/PIP-70%3A-Introduce-lightweight-broker-entry-metadata).
One of the use case for Broker entry metadata is providing continuous message sequence-Id for messages in one topic-partition which is useful for Protocol Hanlder like KOP.
This PR enable Pulsar to support continuous offset for message based on Broker entry metadata.
### Modifications
Introduce a new field for broker entry metadta named `offset`;
Introduce a new interceptor type `ManagedLedgerInterceptor` which intercept entry in `ManagedLedger`;
Each partition will be assigned a `ManagedLedgerInterceptor` when `ManagedLedger` created;
Each Entry will be intercept for adding a monotone increasing offset in Broker entry metadata and the offet is added by batchSize of entry;
Support find position by a given offset.
Is your feature request related to a problem? Please describe.
Currently, pulsar provides <LedgerId, EntryId> to locate an Entry, and provides
BatchIndex
for the inner message of Entry.But there is not a continuous offset for each Message in Entry and we could not use the offset to search an Entry.
For protocol handler like KOP, the map between kakfa offset and pulsar position is implenment by split 64 bits to three parts which represents ledgerId, entryId and batchIndex seperatelly. This way makes the max range of ledgerId much lower than Long.MAX_VALUE and ledgerId space will used up quickly, see streamnative/kop#175.
Describe the solution you'd like
We should introduce continuous offset for pulsar, which can be achieved by broker entry metadata introduced in PIP-70.
Additional context
We can introduce offset for each message first, and with this feature, we can more things futher
The text was updated successfully, but these errors were encountered: