Kamal Chandraprakash created KAFKA-15168:
--------------------------------------------

             Summary: Handle overlapping remote log segments in 
RemoteLogMetadata cache
                 Key: KAFKA-15168
                 URL: https://issues.apache.org/jira/browse/KAFKA-15168
             Project: Kafka
          Issue Type: Sub-task
            Reporter: Kamal Chandraprakash
            Assignee: Kamal Chandraprakash


For a partition p0 and a given leader epoch, the remote log manager can upload 
duplicate segments due to leader change. RemoteLogMetadata cache should handle 
the duplicate segments which may affect the follower and consumer.

(eg)

L0 uploaded the segment PZyYVdsJQWeBAdBDPqkcVA at t0 for offset range 10 - 90
L1 uploads the segment L5Ufv71IToiZYKgsluzcyA at t1 for offset range 5 - 100

In the RemoteLogLeaderEpochState class, the {{offsetToId}} is a navigable map. 
It sorts the entries by start-offset which keeps the state as:
{code:java}
(5 - 100) -> L5Ufv71IToiZYKgsluzcyA (T1)
(10 - 90) -> PZyYVdsJQWeBAdBDPqkcVA (T0){code}

For a fetch request with fetch-offset as 92, the RemoteLogLeaderEpochState will 
return the segment PZyYVdsJQWeBAdBDPqkcVA instead of L5Ufv71IToiZYKgsluzcyA, 
which doesn't have the respective offset and throws error back to the caller.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to