[
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)