Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Log retention will continue to work as it is today except for one case, where If a LogSegment is in the process of getting copied over and it doesn't have associated "copy-done" file, LogCleaner will skips these LogSegments until it has the marker to denote its copied over to remote and its safe to delete.

Consumer Fetch Requests

For any fetch requests, ReplicaManager will proceed with making a call to readFromLocalLog, if this method returns OffsetOutOfRange exception it will delegate the read call to RemoteLogManager.readFromRemoteLog and returns the LogReadResult. If the fetch request is from a consumer, RLM will read the data from remote storage, and return the result to the consumer.


Follower Requests/Replication

For follower fetch, the leader only returns the data that is still in the leader's local storage. If a local LogSegment copied into Remote Storage by a Leader Broker and updated its RemoteOffsetIndex, it's not necessary for Follower to copy this segment which is already present in Remote Storage. Instead a follower will sync RemoteOffsetIndex for a given Topic-Partition from the Leader broker.  If retrieve the information of the segment from remote storage. If a Replica becomes a Leader, It can still locate and serve data from Remote storage.

...