storage: Generalize position tracking in LogManager
For #6528 (closed)
This MR refactors LogManager
to decouple position tracking from
consumer acknowledgment, addressing the limitations in the existing
interface. The changes simplify LogManager
by removing awareness of specific
position types and standardizing the acknowledgment interface. In details:
- Centralize TransactionManager creation via partition.Factory.
- A dedicated
PositionTracker
is introduced to manage tracking positions universally, enabling future extensibility for additional consumers. - Setup position tracker in partition.Factory. This tracker is then passed into log.Manager.
- Remove all direct access to positions through log.Manager.
This is a prerequisite for #6303. In that issue, we'll introduce a new type of position tracking to the log manager: Raft committed LSN.
Edited by Quang-Minh Nguyen