Lagrang opened a new issue, #13980: URL: https://github.com/apache/arrow/issues/13980
Hi I'm trying to understand difference in performance of Arrow Flight for C++ and Java. I run benchmarks for both languages and got the ~20x throughput difference. Benchmark parameters: - threads/streams: `16/16` - batch size: `8192` - records per stream: `10_000_000` - network: `localhost` Hardware: CPU: 2x Intel(R) Xeon(R) Platinum 8352Y CPU @ 2.20GHz RAM: 512GB C++(`arrow/flight/flight_benchmark.cc`) ``` Testing method: DoGet Using spawned TCP server Server running with pid 382642 Server host: localhost Server port: 31337 Server host: localhost Server port: 31337 Number of perf runs: 10 Number of concurrent gets/puts: 16 Batch size: 262080 Batches read: 195360 Bytes read: 51200000000 Nanos: 2453011703 Speed: 19905.4 MB/s Throughput: 79640.9 batches/s Latency mean: 174 us Latency quantile=0.5: 95 us Latency quantile=0.95: 546 us Latency quantile=0.99: 1920 us Latency max: 147827 us ``` Java(`flight-core/src/test/java/org/apache/arrow/flight/perf/TestPerf.java`) ``` Transferred 160000000 records totaling 5120000000 bytes at 641.102193 MiB/s. 21007636.651566 record/s. 2565.032435 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 582.299625 MiB/s. 19080794.111082 record/s. 2329.764961 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 848.258903 MiB/s. 27795747.747999 record/s. 3393.860800 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 896.877756 MiB/s. 29388890.295311 record/s. 3588.383505 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1292.493243 MiB/s. 42352418.587486 record/s. 5171.230310 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1003.844027 MiB/s. 32893961.061297 record/s. 4016.352646 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1065.951924 MiB/s. 34929112.654969 record/s. 4264.844655 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1463.970739 MiB/s. 47971393.190316 record/s. 5857.307109 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1229.642808 MiB/s. 40292935.524028 record/s. 4919.767427 batch/s. Transferred 160000000 records totaling 5120000000 bytes at 1297.904113 MiB/s. 42529721.971291 record/s. 5192.879053 batch/s. Summary: Average throughput: 1032.234533 MiB/s, standard deviation: 278.068050 MiB/s ``` Is it expected throughput difference? Can Java Flight server somehow be tuned in order to be more close to C++ version? -- 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: github-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org