Current state: Under Discussion
Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
Author: Arpit Goyal
JIRA:
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
The remote log manager currently expects snapshot file to be mandatorily available. Missing snapshot files can happen Kafka is upgraded from any version prior to 2.8.0. When this is the case, The remote log Manager will break a contract with the RSM API and would result in failure.
Current
@InterfaceStability.Evolving public class LogSegmentData { private final Path logSegment; private final Path offsetIndex; private final Path timeIndex; private final Optional<Path> transactionIndex; private final Path producerSnapshotIndex; private final ByteBuffer leaderEpochIndex; } |
After the proposed change
@InterfaceStability.Evolving public class LogSegmentData { private final Path logSegment; private final Path offsetIndex; private final Path timeIndex; private final Optional<Path> transactionIndex; private final Optional<Path> producerSnapshotIndex; private final ByteBuffer leaderEpochIndex; } |
Making snapshot file to be an optional parameter similar to transactional index.
Will cover the patch with unit tests.
If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.