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

Apurva Mehta updated KAFKA-5913:
--------------------------------
    Description: 
One of the changes in KIP-192 is to send a {{DUPLICATE_SEQUENCE}} error code 
with a {{ProduceResponse}} when we detect a duplicate on the broker but don't 
have the batch metadata for the sequence in question in memory.

To handle this on the client, we mark the batch as successful, but cannot 
return the offset and timestamp information in the {{RecordMetadata}} returned 
in the produce future. Thus we add {{RecordMetadata.hasOffset}} and 
{{RecordMetadata.hasTimestamp}} methods to enable applications to discover 
whether the broker returned valid metadata which can be used.

  was:
One of the changes in KIP-192 is to send a {{DUPLICATE_SEQUENCE}} error code 
with a {{ProduceResponse}} when we detect a duplicate on the broker but don't 
have the batch metadata for the sequence in question in memory.

To handle this on the client, we mark the batch as successful, but cannot 
return the offset and timestamp information in the {{RecordMetadata}} returned 
in the produce future. Instead of returning implicit invalid values (like -1), 
we should throw a {{RecordMetadataNotAvailableException}} to ensure that 
applications don't suffer from faulty processing.


> Add `hasOffset` and `hasTimestamp` methods to RecordMetadata to indicate 
> whether metadata is available
> ------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-5913
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5913
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Apurva Mehta
>            Assignee: Apurva Mehta
>             Fix For: 1.0.0
>
>
> One of the changes in KIP-192 is to send a {{DUPLICATE_SEQUENCE}} error code 
> with a {{ProduceResponse}} when we detect a duplicate on the broker but don't 
> have the batch metadata for the sequence in question in memory.
> To handle this on the client, we mark the batch as successful, but cannot 
> return the offset and timestamp information in the {{RecordMetadata}} 
> returned in the produce future. Thus we add {{RecordMetadata.hasOffset}} and 
> {{RecordMetadata.hasTimestamp}} methods to enable applications to discover 
> whether the broker returned valid metadata which can be used.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to