Chia-Ping Tsai created KAFKA-21100:
--------------------------------------

             Summary: Defer to materialize the record body until it is 
confirmed to be retained
                 Key: KAFKA-21100
                 URL: https://issues.apache.org/jira/browse/KAFKA-21100
             Project: Kafka
          Issue Type: Improvement
            Reporter: Chia-Ping Tsai
            Assignee: Chia-Ping Tsai


This is similar to KAFKA-21082. 

The other path, cleanInto / filterTo, could use a similar approach to defer 
loading the value until we know the record must be retained.

The only fallback is when the oversized record is the newest value of its key 
and so must be kept. In this case, we could just keep the whole batch as-is 
(writeOriginalBatch already does this) to avoid reading the full value. The 
side effect is that batch is not compacted, but it won't violate the compaction 
guarantee, since its key is already in the offset map and older values in other 
batches are still cleaned. The oversized record will be dropped if it is not 
the newest one :)



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

Reply via email to