kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juho Autio (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (KAFKA-4299) Consumer offsets reset for all topics after increasing partitions for one topic
Date Mon, 17 Oct 2016 10:25:58 GMT

     [ https://issues.apache.org/jira/browse/KAFKA-4299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Juho Autio resolved KAFKA-4299.
    Resolution: Cannot Reproduce

I did another partition modification in production and this time it succeeded without any
consumer offsets being reset. I hope reset never happens again.

> Consumer offsets reset for all topics after increasing partitions for one topic
> -------------------------------------------------------------------------------
>                 Key: KAFKA-4299
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4299
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions:
>            Reporter: Juho Autio
> I increased partitions for one existing topic (2->10), but was surprised to see that
it entirely reset the committed offsets of my consumer group.
> All topics & partitions were reset to the earliest offset available, and the consumer
read everything again.
> Documentation doesn't mention anything like this. Is this how it's supposed to work,
or a bug?
> I would've expected the consumer offsets to not decrease at all, especially for the topics
that I didn't even touch.
> For the altered topic I would've expected that consuming the previously existing partitions
0 and 1 would've continued from the position where they were, and naturally starting to read
the new added partitions from 0.
> I added partitions according to the "Modifying topics" section of Kafka 0.10.0 Documentation:
> {quote}
> To add partitions you can do
> {code}
>  > bin/kafka-topics.sh --zookeeper $ZOOKEEPER_HOST --alter --topic altered_topic --partitions
> {code}
> {quote}
> Previously this topic had 2 partitions.
> For the consumer I'm using {{kafka.javaapi.consumer.ConsumerConnector.createMessageStreamsByFilter()}}.
> And version is:
> {code}
> <groupId>org.apache.kafka</groupId>
> <artifactId>kafka_2.11</artifactId>
> <version></version>
> {code}
> Kafka cluster itself is {{kafka_2.11-}}.
> This is quite problematic because we can't afford waiting for consumers to read the full
buffer from the beginning (for all topics!) when increasing partitions for a topic.
> Some possibly relevant settings we have for the consumer:
> {code}
> kafka.partition.assignment.strategy = "range"
> kafka.auto.offset.reset = "smallest"
> kafka.auto.commit.enable = "false"
> kafka.offsets.storage = "kafka"
> kafka.dual.commit.enabled = false
> kafka.consumer.timeout.ms = "2000"
> kafka.auto.create.topics.enable = true
> {code}

This message was sent by Atlassian JIRA

View raw message