ijuma commented on code in PR #12096: URL: https://github.com/apache/kafka/pull/12096#discussion_r859784675
########## clients/src/main/java/org/apache/kafka/clients/producer/internals/TransactionManager.java: ########## @@ -175,11 +175,8 @@ private static class TopicPartitionEntry { // responses which are due to the retention period elapsing, and those which are due to actual lost data. private long lastAckedOffset; - private static final Comparator<ProducerBatch> PRODUCER_BATCH_COMPARATOR = (b1, b2) -> { - if (b1.baseSequence() < b2.baseSequence()) return -1; - else if (b1.baseSequence() > b2.baseSequence()) return 1; - else return Integer.compare(b1.hashCode(), b2.hashCode()); - }; + private static final Comparator<ProducerBatch> PRODUCER_BATCH_COMPARATOR = + Comparator.comparingInt(ProducerBatch::producerEpoch).thenComparingInt(ProducerBatch::baseSequence); Review Comment: Even though that's true from a performance perspective, it doesn't make sense conceptually. Conceptually, the ordering is defined by producer epoch and then sequence number. So, I think it's best to leave it as is. -- 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