[ https://issues.apache.org/jira/browse/KAFKA-7380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16605089#comment-16605089 ]
Guozhang Wang commented on KAFKA-7380: -------------------------------------- Some initial thoughts about how to do it: 1. Whenever a thread transited to PARTITION_ASSIGNED state, check if the global store's restoration has completed; if not, halt on further transiting to RUNNING, and tries to start restoring global stores. 2. Only start a task after its corresponding stores changelog has been restored, IN ADDITION, the global stores being restored as well. > Global thread restore blocks KafkaStreams#start() > ------------------------------------------------- > > Key: KAFKA-7380 > URL: https://issues.apache.org/jira/browse/KAFKA-7380 > Project: Kafka > Issue Type: Bug > Components: streams > Reporter: Matthias J. Sax > Priority: Minor > > KafkaStreams#start() is documented to be non-blocking and should return > immediately. However, if global stores are used, `start()` blocks until all > global stores are restored. > We should change this and start all threads at the same time while all > StreamThread would to go `wait()` state on startup immediately, and only > resume after global thread restore finishes and `wakeup()` all StreamThreads. -- This message was sent by Atlassian JIRA (v7.6.3#76005)