[ 
https://issues.apache.org/jira/browse/KAFKA-6555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16367875#comment-16367875
 ] 

Matthias J. Sax commented on KAFKA-6555:
----------------------------------------

That makes sense to me. We need to figure out a way, to compute `latest(...)` – 
we could add information about the latest restored offset per task/StandbyTask 
in the consumer group rebalance metadata – or if we assume that StandbyTasks 
don't lag behind, just pick a random one until restore is finished.

Changing the metadata would require a complex upgrade path. It's not a trivial 
change (but we might need to do it at some point anyway...). Thus, maybe it's 
good enough to pick a random one?

I am still not sure, if allowing querying restoring tasks if there are no 
StandbyTasks is something we should allow. If one needs high availably for IQ, 
we can just require that those apps need to be configured with StandbyTasks.

> Making state store queryable during restoration
> -----------------------------------------------
>
>                 Key: KAFKA-6555
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6555
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Ashish Surana
>            Assignee: Ashish Surana
>            Priority: Major
>
> State store in Kafka streams are currently only queryable when StreamTask is 
> in RUNNING state. The idea is to make it queryable even in the RESTORATION 
> (PARTITION_ASSIGNED) state as the time spend on restoration can be huge and 
> making the data inaccessible during this time could be downtime not suitable 
> for many applications.
> When the active partition goes down then one of the following occurs:
>  # One of the standby replica partition gets promoted to active: Replica task 
> has to restore the remaining state from the changelog topic before it can 
> become RUNNING. The time taken for this depends on how much the replica is 
> lagging behind. During this restoration time the state store for that 
> partition is currently not queryable resulting in the partition downtime. We 
> can make the state store partition queryable for the data already present in 
> the state store.
>  # When there is no replica or standby task, then active task will be started 
> in one of the existing node. That node has to build the entire state from the 
> changelog topic which can take lot of time depending on how big is the 
> changelog topic, and keeping state store not queryable during this time is 
> the downtime for the parition.
> It's very important improvement as it could simply improve the availability 
> of microservices developed using kafka streams.
> I am working on a patch for this change. Any feedback or comments are welcome.
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to