[ https://issues.apache.org/jira/browse/KAFKA-1093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Swapnil Ghike updated KAFKA-1093: --------------------------------- Comment: was deleted (was: Created reviewboard ) > Log.getOffsetsBefore(t, …) does not return the last confirmed offset before t > ----------------------------------------------------------------------------- > > Key: KAFKA-1093 > URL: https://issues.apache.org/jira/browse/KAFKA-1093 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8 > Reporter: Swapnil Ghike > Assignee: Swapnil Ghike > Attachments: KAFKA-1093.patch > > > Let's say there are three log segments s1, s2, s3. > In Log.getoffsetsBefore(t, …), the offsetTimeArray will look like - > [(s1.start, s1.lastModified), (s2.start, s2.lastModified), (s3.start, > s3.lastModified), (logEndOffset, currentTimeMs)]. > Let's say s2.lastModified < t < s3.lastModified. getOffsetsBefore(t, 1) will > return Seq(s2.start). > However, we already know s3.firstAppendTime (s3.created in trunk). So, if > s3.firstAppendTime < t < s3.lastModified, we should rather return s3.start. > This also resolves another bug wherein the log has only one segment and > getOffsetsBefore() returns an empty Seq if the timestamp provided is less > than the lastModified of the only segment. We should rather return the > startOffset of the segment if the timestamp is greater than the > firstAppendTime of the segment. -- This message was sent by Atlassian JIRA (v6.1#6144)