ocadaruma commented on code in PR #19972:
URL: https://github.com/apache/kafka/pull/19972#discussion_r2159867183


##########
storage/src/main/java/org/apache/kafka/storage/internals/log/LogSegment.java:
##########
@@ -192,8 +192,13 @@ public void sanityCheck(boolean timeIndexFileNewlyCreated) 
throws IOException {
      * the time index).
      */
     public TimestampOffset readMaxTimestampAndOffsetSoFar() throws IOException 
{
-        if (maxTimestampAndOffsetSoFar == TimestampOffset.UNKNOWN)

Review Comment:
   > We can pre-load the maxTimestampAndOffsetSoFar at startup for the active 
segment
   
   That's right, but there are multiple paths which adds new segment to the 
segments (e.g. in LocalLog#roll, LocalLog#createAndDeleteSegment) and we need 
to do pre-load carefully in all possible paths (including future code changes), 
which is error-prone.
   
   As commented in 
https://github.com/apache/kafka/pull/19972#issuecomment-2979526801, the lock 
introduced in this PR might not cause new lock contention because 
potentially-blocking timeIndex materialization already has a lock.
   
   So IMO lock-approach might be better.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to