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

Luke Chen commented on KAFKA-16385:
-----------------------------------

Thanks Chia-Ping.

I admin my original understanding of `retention.ms` is it only take affects to 
the inactive segments. So, in my example of `segment.ms=7days`, 
`retention.ms=1sec`, my expectaion is the segment will be rolled after 7 days 
or size > segment.bytes, and then, the segment will be eligible for deletion. 
But from Divij's explanation, I agree the definition of `retention.ms` is more 
like "the oldest record allowed to appear in the log". If that's the case, then 
I could be wrong and we should improve the doc. Otherwise, this should be a bug 
that the active (idle) segment should not be rolled even though the 
maxTimestamp is expired (retention.ms). 

> Segment is rolled before segment.ms or segment.bytes breached
> -------------------------------------------------------------
>
>                 Key: KAFKA-16385
>                 URL: https://issues.apache.org/jira/browse/KAFKA-16385
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 3.5.1, 3.7.0
>            Reporter: Luke Chen
>            Assignee: Kuan Po Tseng
>            Priority: Major
>
> Steps to reproduce:
> 0. Startup a broker with `log.retention.check.interval.ms=1000` to speed up 
> the test.
> 1. Creating a topic with the config: segment.ms=7days , retention.ms=1sec .
> 2. Send a record "aaa" to the topic
> 3. Wait for 1 second
> Will this segment will rolled? I thought no.
> But what I have tested is it will roll:
> {code:java}
> [2024-03-19 15:23:13,924] INFO [LocalLog partition=t2-1, 
> dir=/tmp/kafka-logs_jbod] Rolled new log segment at offset 1 in 3 ms. 
> (kafka.log.LocalLog)
> [2024-03-19 15:23:13,925] INFO [ProducerStateManager partition=t2-1] Wrote 
> producer snapshot at offset 1 with 1 producer ids in 1 ms. 
> (org.apache.kafka.storage.internals.log.ProducerStateManager)
> [2024-03-19 15:23:13,925] INFO [UnifiedLog partition=t2-1, 
> dir=/tmp/kafka-logs_jbod] Deleting segment LogSegment(baseOffset=0, size=71, 
> lastModifiedTime=1710832993131, largestRecordTimestamp=1710832992125) due to 
> log retention time 1000ms breach based on the largest record timestamp in the 
> segment (kafka.log.UnifiedLog)
> {code}
> The segment is rolled due to log retention time 1000ms breached, which is 
> unexpected.
> Tested in v3.5.1, it has the same issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to