[
https://issues.apache.org/jira/browse/KAFKA-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14714505#comment-14714505
]
Jason Gustafson commented on KAFKA-2478:
----------------------------------------
[~devstr] I agree that the example seems incorrect. Probably we should only be
committing the max offset stored in the buffer.
> KafkaConsumer javadoc example seems wrong
> -----------------------------------------
>
> Key: KAFKA-2478
> URL: https://issues.apache.org/jira/browse/KAFKA-2478
> Project: Kafka
> Issue Type: Bug
> Components: consumer
> Affects Versions: 0.8.3
> Reporter: Dmitry Stratiychuk
> Assignee: Neha Narkhede
>
> I was looking at this KafkaConsumer example in the javadoc:
> https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java#L199
> As I understand, commit() method commits the maximum offsets returned by the
> most recent invocation of poll() method.
> In this example, there's a danger of losing the data.
> Imagine the case where 300 records are returned by consumer.poll()
> The commit will happen after inserting 200 records into the database.
> But it will also commit the offsets for 100 records that are still
> unprocessed.
> So if consumer fails before buffer is dumped into the database again,
> then those 100 records will never be processed.
> If I'm wrong, could you please clarify the behaviour of commit() method?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)