[ 
https://issues.apache.org/jira/browse/KAFKA-1546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14065806#comment-14065806
 ] 

Jay Kreps commented on KAFKA-1546:
----------------------------------

I think this is actually a really important thing to get right to make 
replication reliable. There are some subtleties. It would be good to work out 
the basics of how this could work on this JIRA.

For example the throughput on a partition might be 1 msg/sec. But that is 
because only 1 msg/sec is being written by the producer. However if someone 
writes a batch of 1000 messages, that doesn't mean we are necessarily 1000 
seconds behind. 

We already track the time since the last fetch request. So if the fetcher stops 
entirely for too long it will be caught.

I think the other condition we want to be able to catch is one where the 
fetcher is still fetching but it is behind and likely won't catch up. One way 
to make "caught-up" concrete is to say that the last fetch went to the end of 
the log. We potentially reduce this to one config and just have 
replica.lag.time.ms which would both be the maximum time since a fetch or the 
maximum amount of time without catching up to the leader. The implementation 
would be that every time a fetch didn't go to the logEndOffset we would set the 
lag clock and it would only reset when a fetch request finally went all the way 
to the logEndOffset.



> Automate replica lag tuning
> ---------------------------
>
>                 Key: KAFKA-1546
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1546
>             Project: Kafka
>          Issue Type: Improvement
>          Components: replication
>    Affects Versions: 0.8.0, 0.8.1, 0.8.1.1
>            Reporter: Neha Narkhede
>              Labels: newbie++
>
> Currently, there is no good way to tune the replica lag configs to 
> automatically account for high and low volume topics on the same cluster. 
> For the low-volume topic it will take a very long time to detect a lagging
> replica, and for the high-volume topic it will have false-positives.
> One approach to making this easier would be to have the configuration
> be something like replica.lag.max.ms and translate this into a number
> of messages dynamically based on the throughput of the partition.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to