[
https://issues.apache.org/jira/browse/KAFKA-20603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Bejeck resolved KAFKA-20603.
---------------------------------
Resolution: Fixed
> Replace MemoryLRUCache restoring flag with restore lifecycle hooks
> ------------------------------------------------------------------
>
> Key: KAFKA-20603
> URL: https://issues.apache.org/jira/browse/KAFKA-20603
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: Muralidhar Basani
> Assignee: Muralidhar Basani
> Priority: Minor
> Fix For: 4.5.0
>
>
> MemoryLRUCache
> (https://github.com/apache/kafka/blob/edcada2a4848b9456f7a025581c777f92f7683b4/streams/src/main/java/org/apache/kafka/streams/state/internals/MemoryLRUCache.java#L53)
> carries a stateful boolean restoring field that is flipped on/off inside
> RecordBatchingStateRestoreCallback
> Fix the TODO comment :
> {code:java}
> private boolean restoring = false; // TODO: this is a sub-optimal solution to
> avoid logging during restoration.
> // in the future we should augment the StateRestoreCallback with onComplete
> etc to better resolve this.{code}
> Add lifecycle hooks to the internal RecordBatchingStateRestoreCallback and
> let ProcessorStateManager and GlobalStateManagerImpl invoke them around each
> restore batch.
>
> {code:java}
> private boolean restoring;
> @Override public void onRestoreStart() { restoring = true; }
> @Override public void onRestoreEnd() { restoring = false; }
> {code}
>
> And replace the restore flag in MemoryLRUCache with a callback.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)