[
https://issues.apache.org/jira/browse/KAFKA-9638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Levani Kokhreidze updated KAFKA-9638:
-------------------------------------
Description:
As of now, when StreamThread encounters exception in Kafka Streams application,
it will result in REBALANCING of all the tasks that were responsibility of the
given thread. Problem with that is, if the exception was, lets say some logical
exception, like NPE, REBALANCING is pretty much useless, cause all other
threads will also die with the same NPE. This kind of mute rebalancing gives
extra costs in terms of network traffic, IOPS, etc in case of large stateful
applications.
In addition, this behaviour causes global outage of the Kafka Streams
application, instead of localized outage of the certain tasks. Would be great
if Kafka Streams users could specify through some interface exceptions that
must not trigger rebalancing of the tasks. StreamThread may still die, but in
this case, we would have isolated incident.
was:
As of now, when StreamThread encounters exception in Kafka Streams application,
it will result in REBALANCING on all the tasks that were responsibility of the
given thread. Problem with that is, if the exception was, lets say some logical
exception, like NPE, REBALANCING is pretty much useless cause all other threads
will also die with the same NPE. This kind of mute rebalancing gives extra
costs in terms of network traffic, IOPS, etc in case of large stateful
applications.
In addition, this behaviour causes global outage of the Kafka Streams
application, instead of localized outage of the certain tasks. Would be great
if Kafka Streams users could specify through some interface exceptions that
must not trigger rebalancing of the tasks. StreamThread may still die, but in
this case, we would have isolated incident.
> Do not trigger REBALANCING when specific exceptions occur in Kafka Streams
> ---------------------------------------------------------------------------
>
> Key: KAFKA-9638
> URL: https://issues.apache.org/jira/browse/KAFKA-9638
> Project: Kafka
> Issue Type: New Feature
> Reporter: Levani Kokhreidze
> Priority: Major
>
> As of now, when StreamThread encounters exception in Kafka Streams
> application, it will result in REBALANCING of all the tasks that were
> responsibility of the given thread. Problem with that is, if the exception
> was, lets say some logical exception, like NPE, REBALANCING is pretty much
> useless, cause all other threads will also die with the same NPE. This kind
> of mute rebalancing gives extra costs in terms of network traffic, IOPS, etc
> in case of large stateful applications.
> In addition, this behaviour causes global outage of the Kafka Streams
> application, instead of localized outage of the certain tasks. Would be great
> if Kafka Streams users could specify through some interface exceptions that
> must not trigger rebalancing of the tasks. StreamThread may still die, but in
> this case, we would have isolated incident.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)