Pankraz76 commented on PR #23996: URL: https://github.com/apache/kafka/pull/23996#issuecomment-6465302115
Thanks in advance for taking a look! Some details for reviewers: **Benchmark** – `CompletedFetchBenchmark`, 500 records (5 batches × 100), 8 B key / 32 B value, no headers. `java -jar jmh-benchmarks/build/libs/kafka-jmh-benchmarks-*-all.jar CompletedFetchBenchmark -f 3 -wi 5 -i 5 -w 5s -r 5s -t 1 -prof gc` Environment: OpenJDK 21.0.12.1, Linux 6.18 (cloud VM), Xeon @ 2.10GHz, 4 vCPU, 15 GiB, JMH 1.37. Before and after ran back-to-back on the same VM. | leader epoch | before µs/op | after µs/op | before B/op | after B/op | Δ alloc | |---|---|---|---|---|---| | 5 | 54.216 ± 11.531 | 47.118 ± 2.025 | 216,096.1 | 208,096.1 | −16 B/record (−3.7 %) | | 1000 | 49.508 ± 1.252 | 46.757 ± 1.745 | 224,176.1 | 208,176.1 | −32 B/record (−7.1 %) | Errors are 99.9 % CIs. The allocation drop is significant for both params. Time is significant only for epoch 1000 (−5.6 %). CompletedFetch is package-private, so the benchmark reaches it through reflection resolved once in `@Setup`. Happy to drop or restructure it. **Testing** - New `testLeaderEpochIsSetPerBatch` in `CompletedFetchTest` and `ShareCompletedFetchTest`: epochs 5 / none / 1000, reads resume mid-batch. They pass on trunk and on this branch. - `./gradlew clients:test --tests 'org.apache.kafka.clients.consumer.*'` passes (3,245 tests). - `./gradlew clients:clients-integration-tests:test --tests ConsumerIntegrationTest` passes (14 tests, incl. `testLeaderEpoch`). - checkstyle, spotless and spotbugs (clients, jmh-benchmarks) pass. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
