[
https://issues.apache.org/jira/browse/KAFKA-657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13542540#comment-13542540
]
Jun Rao commented on KAFKA-657:
-------------------------------
Thanks for patch v7. Some more comments:
70. OffsetFetchResponse: requestInfo can be defined as Map[TopicAndPartition,
(Long, Short)] without referencing Tuple2 directly.
71. KafkaApis.handle():
case (topicAndPartition) => (topicAndPartition, Tuple2(-1L,
ErrorMapping.codeFor(e.getClass.asInstanceOf[Class[Throwable]]))) can be
case (topicAndPartition) => (topicAndPartition, (-1L,
ErrorMapping.codeFor(e.getClass.asInstanceOf[Class[Throwable]])))
Also, instead of using -1, can we define a constant like InvalidOffset? Use
that constant in handleOffsetFetchRequest() too.
72. javaapi.OffsetCommitResponse and javaapi.OffsetFetchResponse: Remove
unused import ByteBuffer.
73. javaapi.OffsetFetchResponse: Tuple2 is a scala thing. It would be weird to
return that directly to the java caller. One way is to change the type of
requestInfo in the scala version of OffsetFetchResponse to
Map[TopicAndPartition, OffsetAndError]. This also follows our convention of
limiting the usage of Tuple.
74. java version of OffsetCommit{Request/Response} and
OffsetFetch{Request/Response}: We don't really need the methods sizeInBytes()
and writeTo(). They are only used for serialization and we don't serialize the
java version of the request/response. This issue seems to already exist in the
java version of OffsetRequest and FetchRequest. Could you remove these two
methods there too?
75. OffsetCommitTest:
75.1 Remove unused imports.
75.2 Wrong spelling non-existant.
75.3 When handling OffsetCommitRequests, we do exactly the same thing whether a
topic/partition exists in KafkaApis. So, it doesn't seem that we need to test
unknown topic/partition separately.
> Add an API to commit offsets
> ----------------------------
>
> Key: KAFKA-657
> URL: https://issues.apache.org/jira/browse/KAFKA-657
> Project: Kafka
> Issue Type: New Feature
> Reporter: Jay Kreps
> Labels: project
> Attachments: KAFKA-657v1.patch, KAFKA-657v2.patch, KAFKA-657v3.patch,
> KAFKA-657v4.patch, KAFKA-657v5.patch, KAFKA-657v6.patch, KAFKA-657v7.patch
>
>
> Currently the consumer directly writes their offsets to zookeeper. Two
> problems with this: (1) This is a poor use of zookeeper, and we need to
> replace it with a more scalable offset store, and (2) it makes it hard to
> carry over to clients in other languages. A first step towards accomplishing
> that is to add a proper Kafka API for committing offsets. The initial version
> of this would just write to zookeeper as we do today, but in the future we
> would then have the option of changing this.
> This api likely needs to take a sequence of
> consumer-group/topic/partition/offset entries and commit them all.
> It would be good to do a wiki design on how this would work and consensus on
> that first.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira