You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Kowshik Prakasam (Jira)" <ji...@apache.org> on 2021/06/22 02:09:00 UTC

[jira] [Assigned] (KAFKA-12977) Eliminate temporary ProducerStateManager in Log recovery logic

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