[ https://issues.apache.org/jira/browse/KAFKA-1546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14328427#comment-14328427 ]
Aditya Auradkar commented on KAFKA-1546: ---------------------------------------- I agree we should model this in terms of time and not in terms of messages. While I think it is a bit more natural to model replication lag in terms of "will take more than N ms to catch up.", I also agree it is tricky to implement correctly. One possible way to model it is to associate an offset with a commit timestamp at the source. For example, assume that a message with offset O is produced on the leader for partition X at timestamp T1. If the time now is T2 and a replica's log end offset is O (i.e. it is has consumed till O), then the lag can be (T2-T1). Is there any easy way to obtain the source timestamp given an offset? If this isn't feasible, then I do think that the originally proposed heuristic is a good one.. and I will submit a patch for it. Also, there are currently 2 checks for replica lag (in ISR). a. keepInSyncMessages - This tracks replica lag as a function of the number of messages it is trailing behind. I believe we will remove this entirely regardless of the approach we choose. b. keepInSyncTimeMs - This tracks the amount of time between fetch requests. I think we can remove this as well. > 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 > Assignee: Aditya Auradkar > 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.3.4#6332)