[
https://issues.apache.org/jira/browse/KAFKA-501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joel Koshy updated KAFKA-501:
-----------------------------
Attachment: KAFKA-501-v1.patch
Overview of changes:
1 - For non-followers, collapse any offsets > hw into a single entry == hw.
2 - I think the returned offsets are reverse sorted, but I did that again
anyway, for the above collapsing to work correctly. I could just as well
use Seq.span.
3 - Made the offsetrequest batched, using a map. So this is very similar to
what was done for KAFKA-391. So I also needed to provide javaapi versions
of the OffsetRequest and OffsetResponse.
4 - One side-effect of batching was I was forced to clean up the layering
issue. i.e., I prevent log from taking offsetrequest.
5 - Switched from Array to Seq in the scala version (and got rid of the
equals).
6 - For consistency, made simple-consumer's getOffsetsBefore take a request
and return a response.
Other points:
7 - I'm not very sure we should be providing the OffsetRequest directly to
clients - i.e., maybe we should only have a request builder (like we have
for FetchRequest). This would make it easier to use from the Java side and
also we can hide the replicaId option - maybe it shouldn't be exposed to
clients (especially on the Java-side)
8 - Code in getOffsetsBefore can be cleaned up quite a bit I think, but I left
it as is for now.
9 - I was thinking of nesting PartitionOffsetRequestInfo inside the
OffsetRequest object - that would make the code clearer, but only if users
always fully qualify the reference.
10 - Previously getOffsetsBefore could through an exception on Error. Now, the
client will need to explicitly check the errorCode. We may need to go
through all usages and assess whether we want to throw an exception or
not.
> getOfffset Api needs to return different latest offset to regular and
> follower consumers
> ----------------------------------------------------------------------------------------
>
> Key: KAFKA-501
> URL: https://issues.apache.org/jira/browse/KAFKA-501
> Project: Kafka
> Issue Type: Bug
> Reporter: Jun Rao
> Assignee: Joel Koshy
> Priority: Blocker
> Labels: bugs
> Fix For: 0.8
>
> Attachments: KAFKA-501-v1.patch
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> For follower consumers, getOffset should return logEndOffset as the latest
> offset. For regular consumers, getOffset should return highWatermark as the
> latest offset.
--
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