[
https://issues.apache.org/jira/browse/KAFKA-4545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15750154#comment-15750154
]
Jun Rao commented on KAFKA-4545:
--------------------------------
One potential way to fix this is when cleaning a segment after the dirty
marker, we don't inherit the last modified time of the original segment. If we
clean a segment before the dirty marker, we inherit the last modified time.
This way, the last modified time of a cleaned segment is the time when it first
gets cleaned. Not sure if this completely address this issue though.
> tombstone needs to be removed after delete.retention.ms has passed after it
> has been cleaned
> --------------------------------------------------------------------------------------------
>
> Key: KAFKA-4545
> URL: https://issues.apache.org/jira/browse/KAFKA-4545
> Project: Kafka
> Issue Type: Bug
> Affects Versions: 0.8.2.0
> Reporter: Jun Rao
>
> The algorithm for removing the tombstone in a compacted is supposed to be the
> following.
> 1. Tombstone is never removed when it's still in the dirty portion of the log.
> 2. After the tombstone is in the cleaned portion of the log, we further delay
> the removal of the tombstone by delete.retention.ms since the time the
> tombstone is in the cleaned portion.
> Once the tombstone is in the cleaned portion, we know there can't be any
> message with the same key before the tombstone. Therefore, for any consumer,
> if it reads a non-tombstone message before the tombstone, but can read to the
> end of the log within delete.retention.ms, it's guaranteed to see the
> tombstone.
> However, the current implementation doesn't seem correct. We delay the
> removal of the tombstone by delete.retention.ms since the last modified time
> of the last cleaned segment. However, the last modified time is inherited
> from the original segment, which could be arbitrarily old. So, the tombstone
> may not be preserved as long as it needs to be.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)