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