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]

Reply via email to