[ 
https://issues.apache.org/jira/browse/KAFKA-12977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kowshik Prakasam reassigned KAFKA-12977:
----------------------------------------

    Assignee: Kowshik Prakasam

> Eliminate temporary ProducerStateManager in Log recovery logic
> --------------------------------------------------------------
>
>                 Key: KAFKA-12977
>                 URL: https://issues.apache.org/jira/browse/KAFKA-12977
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: Kowshik Prakasam
>            Assignee: Kowshik Prakasam
>            Priority: Major
>
> The temporary ProducerStateManager (PSM) instance created in the Log recovery 
> logic (inside LogLoader) is a source of complexity and confusion. For 
> example, when fixing KAFKA-12964 (see [PR# 
> 10896|https://github.com/apache/kafka/pull/10896]) we figured that there are 
> cases where the temporary PSM instance's state goes out of sync with the real 
> PSM instance (within LoadLogParams). And we need to adjust the code suitably 
> to handle for the consequences of these 2 instances being out of sync. To fix 
> this, we should just get rid of the temporary PSM instance which is used in 
> the following places:
>  # In LogLoader.recoverLog(), we could just pass in the real PSM.
>  # In LogLoader.completeSwapOperations(), we try to avoid recovering segment 
> here in  [PR #10763|https://github.com/apache/kafka/pull/10763].
>  # In LogLoader.loadSegmentFiles(), we probably need to clean this part of 
> the logic a bit. If we are missing index file or the index file is corrupted, 
> typically we can just rebuild the index without changing PSM. If the segment 
> is truncated while rebuilding the index, we actually want to follow the 
> process in step 1, by just removing the rest of the segments. So, we could 
> also get rid of the temporary PSM in this case.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to