Skip to content

[bench] Replace pure-Rust snap with C++ snappy library for parquet (de)compression - #9528

Closed
Dandandan wants to merge 7 commits into
apache:mainfrom
Dandandan:snappy_cpp
Closed

[bench] Replace pure-Rust snap with C++ snappy library for parquet (de)compression#9528
Dandandan wants to merge 7 commits into
apache:mainfrom
Dandandan:snappy_cpp

Conversation

@Dandandan

@Dandandan Dandandan commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

#9530

Use snappy_src (C++ snappy bindings) for raw snappy compress/decompress instead of the pure-Rust snap crate, while keeping snap as a dependency for CLI framed format support.

Getting some good perf numbers here.

Which issue does this PR close?

  • Closes #NNN.

Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Use snappy_src (C++ snappy bindings) for raw snappy compress/decompress
instead of the pure-Rust snap crate, while keeping snap as a dependency
for CLI framed format support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench

@alamb-ghbot

Copy link
Copy Markdown

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing snappy_cpp (f2ae7e4) to 9d0e8be diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
BENCH_BRANCH_NAME=snappy_cpp
Results will be posted here when complete

@Dandandan Dandandan changed the title Replace pure-Rust snap with C++ snappy library for parquet compression Replace pure-Rust snap with C++ snappy library for parquet (de)compression Mar 10, 2026
@alamb-ghbot

Copy link
Copy Markdown

Benchmark script failed with exit code 101.

Last 10 lines of output:

Click to expand
   Compiling parquet v58.0.0 (/home/alamb/arrow-rs/parquet)
error: linking with `/usr/bin/clang` failed: exit status: 1
  |
  = note:  "/usr/bin/clang" "-m64" "/tmp/rustcFBtjnr/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/alamb/arrow-rs/target/release/deps/{libparquet-d8a3a1d8db2795a7,libbrotli-12e5fb0b579343d2,libbrotli_decompressor-baa0bbd9b140fb6b,liballoc_stdlib-2262b70ed38a841a,liballoc_no_stdlib-62bda47e289bb4c9,libflate2-7f972e4416baa07d,libzlib_rs-519ed842107eef73,libsnappy_src-0d9dd81f9b1c85bf,liblink_cplusplus-8f7f42fa9d0b79c2,libparquet_variant_compute-a325887c1ef4a4fd,libparquet_variant_json-0c1764a48747cf29,libparquet_variant-d3c4cea94a2e5356,libuuid-633acebe4dd39b56,libgetrandom-6fb4fa131d55e16e,libthrift-bd211c1a9990929e,libordered_float-52086a0908845e29,libinteger_encoding-18b1de7c624ae930,libbyteorder-a1217a6702b133f4,libobject_store-c80166888e208fdf,libquick_xml-75daaea5b91696c2,libhumantime-bf01b46c42501253,libthiserror-2752c84c27a56930,libparking_lot-7251d5f2d52a8bb1,libparking_lot_core-6f71c85c063d5167,liblock_api-e877d28516454a8a,libscopeguard-1e6b6f7983da7f43,libreqwest-adaa584328db370e,libserde_urlencoded-1f0701c39dcbe9bc,libhyper_rustls-c6205a8407f63f06,librustls_native_certs-e3d3fa56894546f6,libopenssl_probe-86c0cdea09ec189a,libtokio_rustls-2e84b24c021e82a4,librustls-63882e6b6ae11363,libsubtle-83b019dd42ca4f1d,libwebpki-1b69a7aa1c17dc3d,libring-9e5f1ad5613223cc,libgetrandom-79612e2f12609d7a,libuntrusted-1b7c03d6e086528a,librustls_pki_types-24f0fef10169b5d9,libzeroize-3390776000cf3817,libtower_http-67169435ec0407cd,libiri_string-fac605d5bdfba4b1,libtower-ac17b1b7c353d967,libtower_layer-b3ebbbd05b293d7f,libhyper_util-32eb797ad8c24c7a,libipnet-745abc103b360f9d,libtower_service-8b825a4f85e23710,libhyper-34defddd13be75ae,libwant-3165c3b2f4cede69,libtry_lock-668f4ec066733aa7,libhttparse-f9accd83452600c8,libh2-5b32073ab00b8ab5,libtracing-c61216d3d484b0d1,libtracing_core-5d894ea23672831b,libfnv-c0f39635cc6b435f,libpin_utils-55f5d0b234cc470c,libatomic_waker-acadaf710f276989,libhttpdate-acc1d1657caa6b09,libtokio_util-6ddc08a69d53949a,libtokio-c3c818193d0bfab4,libsocket2-33c67fc03946cb86,libmio-9338eef4408599a2,libhttp_body_util-048a17381e54072f,libhttp_body-88e95966ca62a294,liblog-6218895e653f1851,liburl-8a637189f130c7e3,libidna-454310176f5f5984,libutf8_iter-e80d13882f28c6fe,libidna_adapter-186fb2e6a8f8b5e5,libicu_properties-b6435bfef1dfa307,libicu_properties_data-a8992ce02c0ff2c7,libicu_normalizer-6b44328edabfbd02,libsmallvec-4af9372de779741a,libicu_normalizer_data-2ea5f812b769cc39,libicu_collections-bdfacd3b485d4b1b,libpotential_utf-0ecf10952d09596c,libicu_provider-d0cc4a0390b5b36a,libicu_locale_core-7d4e99d5797a7f57,libtinystr-adc938b143d88d15,liblitemap-985057942de1a744,libwriteable-62e8cabe10ae8e87,libzerovec-bd2fcb57865490c7,libzerotrie-a131d38420a9f9ca,libyoke-5d06e92c6a68a719,libstable_deref_trait-b9d7c8d5e29ce2e9,libzerofrom-fcd66bf14d93077e,libform_urlencoded-5b4a2672c381fa7a,libpercent_encoding-eb8e072b87add51f,libhttp-7593e209b98299e0,libsync_wrapper-08706437daba55ca,libcriterion-7d99a5da743cfd7b,libpage_size-dc2a05e269107d3f,liballoca-63b8c1a929a65bef,libciborium-6adc709311a8a5c4,libciborium_ll-bcd8ae310cbdd4ef,libciborium_io-9e406e44b5f502aa,libclap-d4c924006f504cc5,libclap_builder-94c142d29259f148,libclap_lex-c6511f8621dd88b2,libanstyle-f1306417cdfccadd,liboorandom-b52f4145e3c2c238,libanes-94572c31b1834294,libtinytemplate-effd0a15ce18afbd,libcriterion_plot-bbb3852e5b8953f0,libitertools-29621852c8f52ac3,libeither-5466612c90644134,libcast-91fb687a93bd874f,libwalkdir-abfabc28a61a2a42,libsame_file-20926664078ad268,libarrow-21f3a7a999fc0a5b,libarrow_row-ac410ae3ff5ff051,libarrow_json-bf6b0cddf4b2cfcc,libsimdutf8-b5a805bfbf3c2d98,libindexmap-3ea89e73bdf7046d,libequivalent-2e3dfff5b22d0c01,libarrow_ipc-c3a5215fb47c7723,liblz4_flex-9756105a11b22ffc,libtwox_hash-272a1caeccc19444,libzstd-0b85fd865441a681,libzstd_safe-e101e4aaf9b30f52,libzstd_sys-c26a5c8e7cede682,libflatbuffers-f53ca60316a21705,libarrow_csv-50aa425732297de1,libcsv-029d5d4e891e4c0a,libcsv_core-af26608cd100771c,libarrow_string-7b6c2f789084e4b7,libregex-ad1230e2b7302609,libregex_automata-ab5916c4a816ce98,libaho_corasick-d891cfffe42fc5ba,libregex_syntax-360bad80433c9df3,libarrow_cast-284044cc8bc8ffbf,libatoi-200ef851be556cf3,libryu-0735f59322c3f4dd,libbase64-7443869e87ab93bc,libcomfy_table-06b00759ac85f53d,libunicode_segmentation-64fbbef3c1227a9c,libunicode_width-fa14a3b62a7ec7f7,liblexical_core-82c3347f1eb7a9ad,liblexical_write_float-883a379db1e41cfd,liblexical_write_integer-1682f352881bf5cf,liblexical_parse_float-64fe6f930f0657f3,liblexical_parse_integer-0103e43ddc50f13a,liblexical_util-b261622fe8af7191,libarrow_arith-60e993e7b84ffee9,libarrow_ord-c14eb78ee5f387e1,libarrow_select-eda90797bbad1f07,libarrow_array-8eadb67fa4cd5892,libfutures-f6556793ce31104f,libfutures_executor-8ab2950bd5693b46,libfutures_util-adf8c498e3ca2d1c,libfutures_io-b14d175fab7de153,libslab-a2456913c0ba51f0,libfutures_channel-4cfb1461f051be40,libpin_project_lite-26656699ee326701,libfutures_sink-336b5a7bb84472e7,libfutures_task-147992c07fd025a0,libfutures_core-f5d836de68c2fcc6,libahash-d24602cf94839f47,libonce_cell-cf1006a21f78f273,libhashbrown-5b1f22d68b94b4c2,libnum_complex-1565e166ebc1aff0,libchrono-e884652b26200d47,libiana_time_zone-8c4048791fcb4d5b,libarrow_data-7d663b07b4014d27,libarrow_schema-bbcb06017e02dc81,libserde_json-9bb4a06d8a75ed0c,libmemchr-1d3d1ef9a6b1922d,libitoa-aa9ff90392e333e9,libzmij-714d32cd3aff6cd0,libbitflags-66fa5599aa8ced7e,libarrow_buffer-efc5c987afed176c,libbytes-4536b7bbee4a3aaa,libhalf-628ac419fbf34fd7,librand_distr-e9186fe1b7a9bec7,librand-95cf620bf8e7ca72,librand_chacha-64bc8fc9dad85659,libppv_lite86-69f705228cd13eb7,librand_core-7edc281d22897d7c,libgetrandom-1866965f04ea8265,liblibc-7782b8150ccb4f4f,libcfg_if-9f43721614bce0ef,libzerocopy-1bf55104b2b71a0b,libnum_bigint-f34df526b843dcd1,libserde-198c1d4911956344,libserde_core-e4cd2c13c00d061b,libnum_integer-42d26df496f5b5bf,libnum_traits-bc080c97b76a23a2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcFBtjnr/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/alamb/arrow-rs/target/release/build/zstd-sys-fbfc4ded5eaa5d3b/out" "-L" "/home/alamb/arrow-rs/target/release/build/alloca-98d44869933e2b73/out" "-L" "/home/alamb/arrow-rs/target/release/build/ring-abaafa288866f10f/out" "-L" "/home/alamb/arrow-rs/target/release/build/snappy_src-f49729b0027d7acb/out" "-L" "/home/alamb/arrow-rs/target/release/build/link-cplusplus-30691bd4f8146ac0/out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/alamb/arrow-rs/target/release/deps/arrow_reader_clickbench-3e19634e0aa0c6e9" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "--ld-path=/usr/bin/mold"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: mold: fatal: library not found: stdc++
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `parquet` (bench "arrow_reader_clickbench") due to 1 previous error

@Dandandan Dandandan changed the title Replace pure-Rust snap with C++ snappy library for parquet (de)compression [bench] Replace pure-Rust snap with C++ snappy library for parquet (de)compression Mar 10, 2026
Install g++ in CI setup-builder to provide libstdc++ needed by snappy_src.
Move snappy_src to non-wasm32 target dependency and add pure-Rust snap
fallback for wasm32 targets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench

@alamb-ghbot

Copy link
Copy Markdown

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing snappy_cpp (a2c33a1) to 9d0e8be diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
BENCH_BRANCH_NAME=snappy_cpp
Results will be posted here when complete

@alamb-ghbot

Copy link
Copy Markdown

Benchmark script failed with exit code 101.

Last 10 lines of output:

Click to expand
   Compiling parquet v58.0.0 (/home/alamb/arrow-rs/parquet)
error: linking with `/usr/bin/clang` failed: exit status: 1
  |
  = note:  "/usr/bin/clang" "-m64" "/tmp/rustctY8PyV/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/alamb/arrow-rs/target/release/deps/{libparquet-d8a3a1d8db2795a7,libbrotli-12e5fb0b579343d2,libbrotli_decompressor-baa0bbd9b140fb6b,liballoc_stdlib-2262b70ed38a841a,liballoc_no_stdlib-62bda47e289bb4c9,libflate2-7f972e4416baa07d,libzlib_rs-519ed842107eef73,libsnappy_src-0d9dd81f9b1c85bf,liblink_cplusplus-8f7f42fa9d0b79c2,libparquet_variant_compute-a325887c1ef4a4fd,libparquet_variant_json-0c1764a48747cf29,libparquet_variant-d3c4cea94a2e5356,libuuid-633acebe4dd39b56,libgetrandom-6fb4fa131d55e16e,libthrift-bd211c1a9990929e,libordered_float-52086a0908845e29,libinteger_encoding-18b1de7c624ae930,libbyteorder-a1217a6702b133f4,libobject_store-c80166888e208fdf,libquick_xml-75daaea5b91696c2,libhumantime-bf01b46c42501253,libthiserror-2752c84c27a56930,libparking_lot-7251d5f2d52a8bb1,libparking_lot_core-6f71c85c063d5167,liblock_api-e877d28516454a8a,libscopeguard-1e6b6f7983da7f43,libreqwest-adaa584328db370e,libserde_urlencoded-1f0701c39dcbe9bc,libhyper_rustls-c6205a8407f63f06,librustls_native_certs-e3d3fa56894546f6,libopenssl_probe-86c0cdea09ec189a,libtokio_rustls-2e84b24c021e82a4,librustls-63882e6b6ae11363,libsubtle-83b019dd42ca4f1d,libwebpki-1b69a7aa1c17dc3d,libring-9e5f1ad5613223cc,libgetrandom-79612e2f12609d7a,libuntrusted-1b7c03d6e086528a,librustls_pki_types-24f0fef10169b5d9,libzeroize-3390776000cf3817,libtower_http-67169435ec0407cd,libiri_string-fac605d5bdfba4b1,libtower-ac17b1b7c353d967,libtower_layer-b3ebbbd05b293d7f,libhyper_util-32eb797ad8c24c7a,libipnet-745abc103b360f9d,libtower_service-8b825a4f85e23710,libhyper-34defddd13be75ae,libwant-3165c3b2f4cede69,libtry_lock-668f4ec066733aa7,libhttparse-f9accd83452600c8,libh2-5b32073ab00b8ab5,libtracing-c61216d3d484b0d1,libtracing_core-5d894ea23672831b,libfnv-c0f39635cc6b435f,libpin_utils-55f5d0b234cc470c,libatomic_waker-acadaf710f276989,libhttpdate-acc1d1657caa6b09,libtokio_util-6ddc08a69d53949a,libtokio-c3c818193d0bfab4,libsocket2-33c67fc03946cb86,libmio-9338eef4408599a2,libhttp_body_util-048a17381e54072f,libhttp_body-88e95966ca62a294,liblog-6218895e653f1851,liburl-8a637189f130c7e3,libidna-454310176f5f5984,libutf8_iter-e80d13882f28c6fe,libidna_adapter-186fb2e6a8f8b5e5,libicu_properties-b6435bfef1dfa307,libicu_properties_data-a8992ce02c0ff2c7,libicu_normalizer-6b44328edabfbd02,libsmallvec-4af9372de779741a,libicu_normalizer_data-2ea5f812b769cc39,libicu_collections-bdfacd3b485d4b1b,libpotential_utf-0ecf10952d09596c,libicu_provider-d0cc4a0390b5b36a,libicu_locale_core-7d4e99d5797a7f57,libtinystr-adc938b143d88d15,liblitemap-985057942de1a744,libwriteable-62e8cabe10ae8e87,libzerovec-bd2fcb57865490c7,libzerotrie-a131d38420a9f9ca,libyoke-5d06e92c6a68a719,libstable_deref_trait-b9d7c8d5e29ce2e9,libzerofrom-fcd66bf14d93077e,libform_urlencoded-5b4a2672c381fa7a,libpercent_encoding-eb8e072b87add51f,libhttp-7593e209b98299e0,libsync_wrapper-08706437daba55ca,libcriterion-7d99a5da743cfd7b,libpage_size-dc2a05e269107d3f,liballoca-63b8c1a929a65bef,libciborium-6adc709311a8a5c4,libciborium_ll-bcd8ae310cbdd4ef,libciborium_io-9e406e44b5f502aa,libclap-d4c924006f504cc5,libclap_builder-94c142d29259f148,libclap_lex-c6511f8621dd88b2,libanstyle-f1306417cdfccadd,liboorandom-b52f4145e3c2c238,libanes-94572c31b1834294,libtinytemplate-effd0a15ce18afbd,libcriterion_plot-bbb3852e5b8953f0,libitertools-29621852c8f52ac3,libeither-5466612c90644134,libcast-91fb687a93bd874f,libwalkdir-abfabc28a61a2a42,libsame_file-20926664078ad268,libarrow-21f3a7a999fc0a5b,libarrow_row-ac410ae3ff5ff051,libarrow_json-bf6b0cddf4b2cfcc,libsimdutf8-b5a805bfbf3c2d98,libindexmap-3ea89e73bdf7046d,libequivalent-2e3dfff5b22d0c01,libarrow_ipc-c3a5215fb47c7723,liblz4_flex-9756105a11b22ffc,libtwox_hash-272a1caeccc19444,libzstd-0b85fd865441a681,libzstd_safe-e101e4aaf9b30f52,libzstd_sys-c26a5c8e7cede682,libflatbuffers-f53ca60316a21705,libarrow_csv-50aa425732297de1,libcsv-029d5d4e891e4c0a,libcsv_core-af26608cd100771c,libarrow_string-7b6c2f789084e4b7,libregex-ad1230e2b7302609,libregex_automata-ab5916c4a816ce98,libaho_corasick-d891cfffe42fc5ba,libregex_syntax-360bad80433c9df3,libarrow_cast-284044cc8bc8ffbf,libatoi-200ef851be556cf3,libryu-0735f59322c3f4dd,libbase64-7443869e87ab93bc,libcomfy_table-06b00759ac85f53d,libunicode_segmentation-64fbbef3c1227a9c,libunicode_width-fa14a3b62a7ec7f7,liblexical_core-82c3347f1eb7a9ad,liblexical_write_float-883a379db1e41cfd,liblexical_write_integer-1682f352881bf5cf,liblexical_parse_float-64fe6f930f0657f3,liblexical_parse_integer-0103e43ddc50f13a,liblexical_util-b261622fe8af7191,libarrow_arith-60e993e7b84ffee9,libarrow_ord-c14eb78ee5f387e1,libarrow_select-eda90797bbad1f07,libarrow_array-8eadb67fa4cd5892,libfutures-f6556793ce31104f,libfutures_executor-8ab2950bd5693b46,libfutures_util-adf8c498e3ca2d1c,libfutures_io-b14d175fab7de153,libslab-a2456913c0ba51f0,libfutures_channel-4cfb1461f051be40,libpin_project_lite-26656699ee326701,libfutures_sink-336b5a7bb84472e7,libfutures_task-147992c07fd025a0,libfutures_core-f5d836de68c2fcc6,libahash-d24602cf94839f47,libonce_cell-cf1006a21f78f273,libhashbrown-5b1f22d68b94b4c2,libnum_complex-1565e166ebc1aff0,libchrono-e884652b26200d47,libiana_time_zone-8c4048791fcb4d5b,libarrow_data-7d663b07b4014d27,libarrow_schema-bbcb06017e02dc81,libserde_json-9bb4a06d8a75ed0c,libmemchr-1d3d1ef9a6b1922d,libitoa-aa9ff90392e333e9,libzmij-714d32cd3aff6cd0,libbitflags-66fa5599aa8ced7e,libarrow_buffer-efc5c987afed176c,libbytes-4536b7bbee4a3aaa,libhalf-628ac419fbf34fd7,librand_distr-e9186fe1b7a9bec7,librand-95cf620bf8e7ca72,librand_chacha-64bc8fc9dad85659,libppv_lite86-69f705228cd13eb7,librand_core-7edc281d22897d7c,libgetrandom-1866965f04ea8265,liblibc-7782b8150ccb4f4f,libcfg_if-9f43721614bce0ef,libzerocopy-1bf55104b2b71a0b,libnum_bigint-f34df526b843dcd1,libserde-198c1d4911956344,libserde_core-e4cd2c13c00d061b,libnum_integer-42d26df496f5b5bf,libnum_traits-bc080c97b76a23a2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustctY8PyV/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/alamb/arrow-rs/target/release/build/zstd-sys-fbfc4ded5eaa5d3b/out" "-L" "/home/alamb/arrow-rs/target/release/build/alloca-98d44869933e2b73/out" "-L" "/home/alamb/arrow-rs/target/release/build/ring-abaafa288866f10f/out" "-L" "/home/alamb/arrow-rs/target/release/build/snappy_src-f49729b0027d7acb/out" "-L" "/home/alamb/arrow-rs/target/release/build/link-cplusplus-30691bd4f8146ac0/out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/alamb/arrow-rs/target/release/deps/arrow_reader_clickbench-3e19634e0aa0c6e9" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "--ld-path=/usr/bin/mold"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: mold: fatal: library not found: stdc++
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `parquet` (bench "arrow_reader_clickbench") due to 1 previous error

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Mar 10, 2026
@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench CXXSTDLIB=c++

@alamb-ghbot

Copy link
Copy Markdown

🤖 Hi @Dandandan, thanks for the request (#9528 (comment)).

scrape_comments.py only supports whitelisted benchmarks.

  • Standard: (none)
  • Criterion: array_from, array_iter, arrow_reader, arrow_reader_clickbench, arrow_reader_row_filter, arrow_statistics, arrow_writer, bitwise_kernel, boolean_kernels, buffer_bit_ops, builder, cast_kernels, coalesce_kernels, comparison_kernels, concatenate_kernel, csv_writer, encoding, filter_kernels, interleave_kernels, ipc_reader, json-reader, metadata, row_format, sort_kernel, take_kernels, union_array, variant_builder, variant_kernels, variant_validation, view_types, zip_kernels

Please choose one or more of these with run benchmark <name> or run benchmark <name1> <name2>...

You can also set environment variables on subsequent lines:

run benchmark tpch_mem
DATAFUSION_RUNTIME_MEMORY_LIMIT=1G

Unsupported benchmarks: CXXSTDLIB=c++.

@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench
CXXSTDLIB=c++

@alamb-ghbot

Copy link
Copy Markdown

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing snappy_cpp (a2c33a1) to 9d0e8be diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
BENCH_BRANCH_NAME=snappy_cpp
Results will be posted here when complete

@alamb-ghbot

Copy link
Copy Markdown

Benchmark script failed with exit code 101.

Last 10 lines of output:

Click to expand
   Compiling parquet v58.0.0 (/home/alamb/arrow-rs/parquet)
error: linking with `/usr/bin/clang` failed: exit status: 1
  |
  = note:  "/usr/bin/clang" "-m64" "/tmp/rustcH93tI1/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/alamb/arrow-rs/target/release/deps/{libparquet-d8a3a1d8db2795a7,libbrotli-12e5fb0b579343d2,libbrotli_decompressor-baa0bbd9b140fb6b,liballoc_stdlib-2262b70ed38a841a,liballoc_no_stdlib-62bda47e289bb4c9,libflate2-7f972e4416baa07d,libzlib_rs-519ed842107eef73,libsnappy_src-0d9dd81f9b1c85bf,liblink_cplusplus-8f7f42fa9d0b79c2,libparquet_variant_compute-a325887c1ef4a4fd,libparquet_variant_json-0c1764a48747cf29,libparquet_variant-d3c4cea94a2e5356,libuuid-633acebe4dd39b56,libgetrandom-6fb4fa131d55e16e,libthrift-bd211c1a9990929e,libordered_float-52086a0908845e29,libinteger_encoding-18b1de7c624ae930,libbyteorder-a1217a6702b133f4,libobject_store-c80166888e208fdf,libquick_xml-75daaea5b91696c2,libhumantime-bf01b46c42501253,libthiserror-2752c84c27a56930,libparking_lot-7251d5f2d52a8bb1,libparking_lot_core-6f71c85c063d5167,liblock_api-e877d28516454a8a,libscopeguard-1e6b6f7983da7f43,libreqwest-adaa584328db370e,libserde_urlencoded-1f0701c39dcbe9bc,libhyper_rustls-c6205a8407f63f06,librustls_native_certs-e3d3fa56894546f6,libopenssl_probe-86c0cdea09ec189a,libtokio_rustls-2e84b24c021e82a4,librustls-63882e6b6ae11363,libsubtle-83b019dd42ca4f1d,libwebpki-1b69a7aa1c17dc3d,libring-9e5f1ad5613223cc,libgetrandom-79612e2f12609d7a,libuntrusted-1b7c03d6e086528a,librustls_pki_types-24f0fef10169b5d9,libzeroize-3390776000cf3817,libtower_http-67169435ec0407cd,libiri_string-fac605d5bdfba4b1,libtower-ac17b1b7c353d967,libtower_layer-b3ebbbd05b293d7f,libhyper_util-32eb797ad8c24c7a,libipnet-745abc103b360f9d,libtower_service-8b825a4f85e23710,libhyper-34defddd13be75ae,libwant-3165c3b2f4cede69,libtry_lock-668f4ec066733aa7,libhttparse-f9accd83452600c8,libh2-5b32073ab00b8ab5,libtracing-c61216d3d484b0d1,libtracing_core-5d894ea23672831b,libfnv-c0f39635cc6b435f,libpin_utils-55f5d0b234cc470c,libatomic_waker-acadaf710f276989,libhttpdate-acc1d1657caa6b09,libtokio_util-6ddc08a69d53949a,libtokio-c3c818193d0bfab4,libsocket2-33c67fc03946cb86,libmio-9338eef4408599a2,libhttp_body_util-048a17381e54072f,libhttp_body-88e95966ca62a294,liblog-6218895e653f1851,liburl-8a637189f130c7e3,libidna-454310176f5f5984,libutf8_iter-e80d13882f28c6fe,libidna_adapter-186fb2e6a8f8b5e5,libicu_properties-b6435bfef1dfa307,libicu_properties_data-a8992ce02c0ff2c7,libicu_normalizer-6b44328edabfbd02,libsmallvec-4af9372de779741a,libicu_normalizer_data-2ea5f812b769cc39,libicu_collections-bdfacd3b485d4b1b,libpotential_utf-0ecf10952d09596c,libicu_provider-d0cc4a0390b5b36a,libicu_locale_core-7d4e99d5797a7f57,libtinystr-adc938b143d88d15,liblitemap-985057942de1a744,libwriteable-62e8cabe10ae8e87,libzerovec-bd2fcb57865490c7,libzerotrie-a131d38420a9f9ca,libyoke-5d06e92c6a68a719,libstable_deref_trait-b9d7c8d5e29ce2e9,libzerofrom-fcd66bf14d93077e,libform_urlencoded-5b4a2672c381fa7a,libpercent_encoding-eb8e072b87add51f,libhttp-7593e209b98299e0,libsync_wrapper-08706437daba55ca,libcriterion-7d99a5da743cfd7b,libpage_size-dc2a05e269107d3f,liballoca-63b8c1a929a65bef,libciborium-6adc709311a8a5c4,libciborium_ll-bcd8ae310cbdd4ef,libciborium_io-9e406e44b5f502aa,libclap-d4c924006f504cc5,libclap_builder-94c142d29259f148,libclap_lex-c6511f8621dd88b2,libanstyle-f1306417cdfccadd,liboorandom-b52f4145e3c2c238,libanes-94572c31b1834294,libtinytemplate-effd0a15ce18afbd,libcriterion_plot-bbb3852e5b8953f0,libitertools-29621852c8f52ac3,libeither-5466612c90644134,libcast-91fb687a93bd874f,libwalkdir-abfabc28a61a2a42,libsame_file-20926664078ad268,libarrow-21f3a7a999fc0a5b,libarrow_row-ac410ae3ff5ff051,libarrow_json-bf6b0cddf4b2cfcc,libsimdutf8-b5a805bfbf3c2d98,libindexmap-3ea89e73bdf7046d,libequivalent-2e3dfff5b22d0c01,libarrow_ipc-c3a5215fb47c7723,liblz4_flex-9756105a11b22ffc,libtwox_hash-272a1caeccc19444,libzstd-0b85fd865441a681,libzstd_safe-e101e4aaf9b30f52,libzstd_sys-c26a5c8e7cede682,libflatbuffers-f53ca60316a21705,libarrow_csv-50aa425732297de1,libcsv-029d5d4e891e4c0a,libcsv_core-af26608cd100771c,libarrow_string-7b6c2f789084e4b7,libregex-ad1230e2b7302609,libregex_automata-ab5916c4a816ce98,libaho_corasick-d891cfffe42fc5ba,libregex_syntax-360bad80433c9df3,libarrow_cast-284044cc8bc8ffbf,libatoi-200ef851be556cf3,libryu-0735f59322c3f4dd,libbase64-7443869e87ab93bc,libcomfy_table-06b00759ac85f53d,libunicode_segmentation-64fbbef3c1227a9c,libunicode_width-fa14a3b62a7ec7f7,liblexical_core-82c3347f1eb7a9ad,liblexical_write_float-883a379db1e41cfd,liblexical_write_integer-1682f352881bf5cf,liblexical_parse_float-64fe6f930f0657f3,liblexical_parse_integer-0103e43ddc50f13a,liblexical_util-b261622fe8af7191,libarrow_arith-60e993e7b84ffee9,libarrow_ord-c14eb78ee5f387e1,libarrow_select-eda90797bbad1f07,libarrow_array-8eadb67fa4cd5892,libfutures-f6556793ce31104f,libfutures_executor-8ab2950bd5693b46,libfutures_util-adf8c498e3ca2d1c,libfutures_io-b14d175fab7de153,libslab-a2456913c0ba51f0,libfutures_channel-4cfb1461f051be40,libpin_project_lite-26656699ee326701,libfutures_sink-336b5a7bb84472e7,libfutures_task-147992c07fd025a0,libfutures_core-f5d836de68c2fcc6,libahash-d24602cf94839f47,libonce_cell-cf1006a21f78f273,libhashbrown-5b1f22d68b94b4c2,libnum_complex-1565e166ebc1aff0,libchrono-e884652b26200d47,libiana_time_zone-8c4048791fcb4d5b,libarrow_data-7d663b07b4014d27,libarrow_schema-bbcb06017e02dc81,libserde_json-9bb4a06d8a75ed0c,libmemchr-1d3d1ef9a6b1922d,libitoa-aa9ff90392e333e9,libzmij-714d32cd3aff6cd0,libbitflags-66fa5599aa8ced7e,libarrow_buffer-efc5c987afed176c,libbytes-4536b7bbee4a3aaa,libhalf-628ac419fbf34fd7,librand_distr-e9186fe1b7a9bec7,librand-95cf620bf8e7ca72,librand_chacha-64bc8fc9dad85659,libppv_lite86-69f705228cd13eb7,librand_core-7edc281d22897d7c,libgetrandom-1866965f04ea8265,liblibc-7782b8150ccb4f4f,libcfg_if-9f43721614bce0ef,libzerocopy-1bf55104b2b71a0b,libnum_bigint-f34df526b843dcd1,libserde-198c1d4911956344,libserde_core-e4cd2c13c00d061b,libnum_integer-42d26df496f5b5bf,libnum_traits-bc080c97b76a23a2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcH93tI1/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/alamb/arrow-rs/target/release/build/zstd-sys-fbfc4ded5eaa5d3b/out" "-L" "/home/alamb/arrow-rs/target/release/build/alloca-98d44869933e2b73/out" "-L" "/home/alamb/arrow-rs/target/release/build/ring-abaafa288866f10f/out" "-L" "/home/alamb/arrow-rs/target/release/build/snappy_src-f49729b0027d7acb/out" "-L" "/home/alamb/arrow-rs/target/release/build/link-cplusplus-30691bd4f8146ac0/out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/alamb/arrow-rs/target/release/deps/arrow_reader_clickbench-3e19634e0aa0c6e9" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "--ld-path=/usr/bin/mold"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: mold: fatal: library not found: stdc++
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `parquet` (bench "arrow_reader_clickbench") due to 1 previous error

@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench

@alamb-ghbot

Copy link
Copy Markdown

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing snappy_cpp (a4e68ff) to 9d0e8be diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
BENCH_BRANCH_NAME=snappy_cpp
Results will be posted here when complete

@alamb-ghbot

Copy link
Copy Markdown

Benchmark script failed with exit code 101.

Last 10 lines of output:

Click to expand
   Compiling parquet v58.0.0 (/home/alamb/arrow-rs/parquet)
error: linking with `/usr/bin/clang` failed: exit status: 1
  |
  = note:  "/usr/bin/clang" "-m64" "/tmp/rustcMTxkvE/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/alamb/arrow-rs/target/release/deps/{libparquet-d81c8942c6e154de,libbrotli-12e5fb0b579343d2,libbrotli_decompressor-baa0bbd9b140fb6b,liballoc_stdlib-2262b70ed38a841a,liballoc_no_stdlib-62bda47e289bb4c9,libflate2-7f972e4416baa07d,libzlib_rs-519ed842107eef73,libsnappy_src-0d9dd81f9b1c85bf,liblink_cplusplus-8f7f42fa9d0b79c2,libparquet_variant_compute-a325887c1ef4a4fd,libparquet_variant_json-0c1764a48747cf29,libparquet_variant-d3c4cea94a2e5356,libuuid-633acebe4dd39b56,libgetrandom-6fb4fa131d55e16e,libthrift-bd211c1a9990929e,libordered_float-52086a0908845e29,libinteger_encoding-18b1de7c624ae930,libbyteorder-a1217a6702b133f4,libobject_store-c80166888e208fdf,libquick_xml-75daaea5b91696c2,libhumantime-bf01b46c42501253,libthiserror-2752c84c27a56930,libparking_lot-7251d5f2d52a8bb1,libparking_lot_core-6f71c85c063d5167,liblock_api-e877d28516454a8a,libscopeguard-1e6b6f7983da7f43,libreqwest-adaa584328db370e,libserde_urlencoded-1f0701c39dcbe9bc,libhyper_rustls-c6205a8407f63f06,librustls_native_certs-e3d3fa56894546f6,libopenssl_probe-86c0cdea09ec189a,libtokio_rustls-2e84b24c021e82a4,librustls-63882e6b6ae11363,libsubtle-83b019dd42ca4f1d,libwebpki-1b69a7aa1c17dc3d,libring-9e5f1ad5613223cc,libgetrandom-79612e2f12609d7a,libuntrusted-1b7c03d6e086528a,librustls_pki_types-24f0fef10169b5d9,libzeroize-3390776000cf3817,libtower_http-67169435ec0407cd,libiri_string-fac605d5bdfba4b1,libtower-ac17b1b7c353d967,libtower_layer-b3ebbbd05b293d7f,libhyper_util-32eb797ad8c24c7a,libipnet-745abc103b360f9d,libtower_service-8b825a4f85e23710,libhyper-34defddd13be75ae,libwant-3165c3b2f4cede69,libtry_lock-668f4ec066733aa7,libhttparse-f9accd83452600c8,libh2-5b32073ab00b8ab5,libtracing-c61216d3d484b0d1,libtracing_core-5d894ea23672831b,libfnv-c0f39635cc6b435f,libpin_utils-55f5d0b234cc470c,libatomic_waker-acadaf710f276989,libhttpdate-acc1d1657caa6b09,libtokio_util-6ddc08a69d53949a,libtokio-c3c818193d0bfab4,libsocket2-33c67fc03946cb86,libmio-9338eef4408599a2,libhttp_body_util-048a17381e54072f,libhttp_body-88e95966ca62a294,liblog-6218895e653f1851,liburl-8a637189f130c7e3,libidna-454310176f5f5984,libutf8_iter-e80d13882f28c6fe,libidna_adapter-186fb2e6a8f8b5e5,libicu_properties-b6435bfef1dfa307,libicu_properties_data-a8992ce02c0ff2c7,libicu_normalizer-6b44328edabfbd02,libsmallvec-4af9372de779741a,libicu_normalizer_data-2ea5f812b769cc39,libicu_collections-bdfacd3b485d4b1b,libpotential_utf-0ecf10952d09596c,libicu_provider-d0cc4a0390b5b36a,libicu_locale_core-7d4e99d5797a7f57,libtinystr-adc938b143d88d15,liblitemap-985057942de1a744,libwriteable-62e8cabe10ae8e87,libzerovec-bd2fcb57865490c7,libzerotrie-a131d38420a9f9ca,libyoke-5d06e92c6a68a719,libstable_deref_trait-b9d7c8d5e29ce2e9,libzerofrom-fcd66bf14d93077e,libform_urlencoded-5b4a2672c381fa7a,libpercent_encoding-eb8e072b87add51f,libhttp-7593e209b98299e0,libsync_wrapper-08706437daba55ca,libcriterion-7d99a5da743cfd7b,libpage_size-dc2a05e269107d3f,liballoca-63b8c1a929a65bef,libciborium-6adc709311a8a5c4,libciborium_ll-bcd8ae310cbdd4ef,libciborium_io-9e406e44b5f502aa,libclap-d4c924006f504cc5,libclap_builder-94c142d29259f148,libclap_lex-c6511f8621dd88b2,libanstyle-f1306417cdfccadd,liboorandom-b52f4145e3c2c238,libanes-94572c31b1834294,libtinytemplate-effd0a15ce18afbd,libcriterion_plot-bbb3852e5b8953f0,libitertools-29621852c8f52ac3,libeither-5466612c90644134,libcast-91fb687a93bd874f,libwalkdir-abfabc28a61a2a42,libsame_file-20926664078ad268,libarrow-21f3a7a999fc0a5b,libarrow_row-ac410ae3ff5ff051,libarrow_json-bf6b0cddf4b2cfcc,libsimdutf8-b5a805bfbf3c2d98,libindexmap-3ea89e73bdf7046d,libequivalent-2e3dfff5b22d0c01,libarrow_ipc-c3a5215fb47c7723,liblz4_flex-9756105a11b22ffc,libtwox_hash-272a1caeccc19444,libzstd-0b85fd865441a681,libzstd_safe-e101e4aaf9b30f52,libzstd_sys-c26a5c8e7cede682,libflatbuffers-f53ca60316a21705,libarrow_csv-50aa425732297de1,libcsv-029d5d4e891e4c0a,libcsv_core-af26608cd100771c,libarrow_string-7b6c2f789084e4b7,libregex-ad1230e2b7302609,libregex_automata-ab5916c4a816ce98,libaho_corasick-d891cfffe42fc5ba,libregex_syntax-360bad80433c9df3,libarrow_cast-284044cc8bc8ffbf,libatoi-200ef851be556cf3,libryu-0735f59322c3f4dd,libbase64-7443869e87ab93bc,libcomfy_table-06b00759ac85f53d,libunicode_segmentation-64fbbef3c1227a9c,libunicode_width-fa14a3b62a7ec7f7,liblexical_core-82c3347f1eb7a9ad,liblexical_write_float-883a379db1e41cfd,liblexical_write_integer-1682f352881bf5cf,liblexical_parse_float-64fe6f930f0657f3,liblexical_parse_integer-0103e43ddc50f13a,liblexical_util-b261622fe8af7191,libarrow_arith-60e993e7b84ffee9,libarrow_ord-c14eb78ee5f387e1,libarrow_select-eda90797bbad1f07,libarrow_array-8eadb67fa4cd5892,libfutures-f6556793ce31104f,libfutures_executor-8ab2950bd5693b46,libfutures_util-adf8c498e3ca2d1c,libfutures_io-b14d175fab7de153,libslab-a2456913c0ba51f0,libfutures_channel-4cfb1461f051be40,libpin_project_lite-26656699ee326701,libfutures_sink-336b5a7bb84472e7,libfutures_task-147992c07fd025a0,libfutures_core-f5d836de68c2fcc6,libahash-d24602cf94839f47,libonce_cell-cf1006a21f78f273,libhashbrown-5b1f22d68b94b4c2,libnum_complex-1565e166ebc1aff0,libchrono-e884652b26200d47,libiana_time_zone-8c4048791fcb4d5b,libarrow_data-7d663b07b4014d27,libarrow_schema-bbcb06017e02dc81,libserde_json-9bb4a06d8a75ed0c,libmemchr-1d3d1ef9a6b1922d,libitoa-aa9ff90392e333e9,libzmij-714d32cd3aff6cd0,libbitflags-66fa5599aa8ced7e,libarrow_buffer-efc5c987afed176c,libbytes-4536b7bbee4a3aaa,libhalf-628ac419fbf34fd7,librand_distr-e9186fe1b7a9bec7,librand-95cf620bf8e7ca72,librand_chacha-64bc8fc9dad85659,libppv_lite86-69f705228cd13eb7,librand_core-7edc281d22897d7c,libgetrandom-1866965f04ea8265,liblibc-7782b8150ccb4f4f,libcfg_if-9f43721614bce0ef,libzerocopy-1bf55104b2b71a0b,libnum_bigint-f34df526b843dcd1,libserde-198c1d4911956344,libserde_core-e4cd2c13c00d061b,libnum_integer-42d26df496f5b5bf,libnum_traits-bc080c97b76a23a2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcMTxkvE/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/alamb/arrow-rs/target/release/build/zstd-sys-fbfc4ded5eaa5d3b/out" "-L" "/home/alamb/arrow-rs/target/release/build/alloca-98d44869933e2b73/out" "-L" "/home/alamb/arrow-rs/target/release/build/link-cplusplus-30691bd4f8146ac0/out" "-L" "/home/alamb/arrow-rs/target/release/build/ring-abaafa288866f10f/out" "-L" "/home/alamb/arrow-rs/target/release/build/snappy_src-f49729b0027d7acb/out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/alamb/arrow-rs/target/release/deps/arrow_reader_clickbench-a191605b0bc9b462" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "--ld-path=/usr/bin/mold"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: mold: fatal: library not found: stdc++
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `parquet` (bench "arrow_reader_clickbench") due to 1 previous error

@alamb

alamb commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

I will install libstdc++ on the runner

@alamb

alamb commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

run benchmark arrow_reader_clickbench

@alamb-ghbot

Copy link
Copy Markdown

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing snappy_cpp (a4e68ff) to 9d0e8be diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
BENCH_BRANCH_NAME=snappy_cpp
Results will be posted here when complete

@alamb-ghbot

Copy link
Copy Markdown

Benchmark script failed with exit code 101.

Last 10 lines of output:

Click to expand
   Compiling parquet v58.0.0 (/home/alamb/arrow-rs/parquet)
error: linking with `/usr/bin/clang` failed: exit status: 1
  |
  = note:  "/usr/bin/clang" "-m64" "/tmp/rustceXnEKk/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/alamb/arrow-rs/target/release/deps/{libparquet-d81c8942c6e154de,libbrotli-12e5fb0b579343d2,libbrotli_decompressor-baa0bbd9b140fb6b,liballoc_stdlib-2262b70ed38a841a,liballoc_no_stdlib-62bda47e289bb4c9,libflate2-7f972e4416baa07d,libzlib_rs-519ed842107eef73,libsnappy_src-0d9dd81f9b1c85bf,liblink_cplusplus-8f7f42fa9d0b79c2,libparquet_variant_compute-a325887c1ef4a4fd,libparquet_variant_json-0c1764a48747cf29,libparquet_variant-d3c4cea94a2e5356,libuuid-633acebe4dd39b56,libgetrandom-6fb4fa131d55e16e,libthrift-bd211c1a9990929e,libordered_float-52086a0908845e29,libinteger_encoding-18b1de7c624ae930,libbyteorder-a1217a6702b133f4,libobject_store-c80166888e208fdf,libquick_xml-75daaea5b91696c2,libhumantime-bf01b46c42501253,libthiserror-2752c84c27a56930,libparking_lot-7251d5f2d52a8bb1,libparking_lot_core-6f71c85c063d5167,liblock_api-e877d28516454a8a,libscopeguard-1e6b6f7983da7f43,libreqwest-adaa584328db370e,libserde_urlencoded-1f0701c39dcbe9bc,libhyper_rustls-c6205a8407f63f06,librustls_native_certs-e3d3fa56894546f6,libopenssl_probe-86c0cdea09ec189a,libtokio_rustls-2e84b24c021e82a4,librustls-63882e6b6ae11363,libsubtle-83b019dd42ca4f1d,libwebpki-1b69a7aa1c17dc3d,libring-9e5f1ad5613223cc,libgetrandom-79612e2f12609d7a,libuntrusted-1b7c03d6e086528a,librustls_pki_types-24f0fef10169b5d9,libzeroize-3390776000cf3817,libtower_http-67169435ec0407cd,libiri_string-fac605d5bdfba4b1,libtower-ac17b1b7c353d967,libtower_layer-b3ebbbd05b293d7f,libhyper_util-32eb797ad8c24c7a,libipnet-745abc103b360f9d,libtower_service-8b825a4f85e23710,libhyper-34defddd13be75ae,libwant-3165c3b2f4cede69,libtry_lock-668f4ec066733aa7,libhttparse-f9accd83452600c8,libh2-5b32073ab00b8ab5,libtracing-c61216d3d484b0d1,libtracing_core-5d894ea23672831b,libfnv-c0f39635cc6b435f,libpin_utils-55f5d0b234cc470c,libatomic_waker-acadaf710f276989,libhttpdate-acc1d1657caa6b09,libtokio_util-6ddc08a69d53949a,libtokio-c3c818193d0bfab4,libsocket2-33c67fc03946cb86,libmio-9338eef4408599a2,libhttp_body_util-048a17381e54072f,libhttp_body-88e95966ca62a294,liblog-6218895e653f1851,liburl-8a637189f130c7e3,libidna-454310176f5f5984,libutf8_iter-e80d13882f28c6fe,libidna_adapter-186fb2e6a8f8b5e5,libicu_properties-b6435bfef1dfa307,libicu_properties_data-a8992ce02c0ff2c7,libicu_normalizer-6b44328edabfbd02,libsmallvec-4af9372de779741a,libicu_normalizer_data-2ea5f812b769cc39,libicu_collections-bdfacd3b485d4b1b,libpotential_utf-0ecf10952d09596c,libicu_provider-d0cc4a0390b5b36a,libicu_locale_core-7d4e99d5797a7f57,libtinystr-adc938b143d88d15,liblitemap-985057942de1a744,libwriteable-62e8cabe10ae8e87,libzerovec-bd2fcb57865490c7,libzerotrie-a131d38420a9f9ca,libyoke-5d06e92c6a68a719,libstable_deref_trait-b9d7c8d5e29ce2e9,libzerofrom-fcd66bf14d93077e,libform_urlencoded-5b4a2672c381fa7a,libpercent_encoding-eb8e072b87add51f,libhttp-7593e209b98299e0,libsync_wrapper-08706437daba55ca,libcriterion-7d99a5da743cfd7b,libpage_size-dc2a05e269107d3f,liballoca-63b8c1a929a65bef,libciborium-6adc709311a8a5c4,libciborium_ll-bcd8ae310cbdd4ef,libciborium_io-9e406e44b5f502aa,libclap-d4c924006f504cc5,libclap_builder-94c142d29259f148,libclap_lex-c6511f8621dd88b2,libanstyle-f1306417cdfccadd,liboorandom-b52f4145e3c2c238,libanes-94572c31b1834294,libtinytemplate-effd0a15ce18afbd,libcriterion_plot-bbb3852e5b8953f0,libitertools-29621852c8f52ac3,libeither-5466612c90644134,libcast-91fb687a93bd874f,libwalkdir-abfabc28a61a2a42,libsame_file-20926664078ad268,libarrow-21f3a7a999fc0a5b,libarrow_row-ac410ae3ff5ff051,libarrow_json-bf6b0cddf4b2cfcc,libsimdutf8-b5a805bfbf3c2d98,libindexmap-3ea89e73bdf7046d,libequivalent-2e3dfff5b22d0c01,libarrow_ipc-c3a5215fb47c7723,liblz4_flex-9756105a11b22ffc,libtwox_hash-272a1caeccc19444,libzstd-0b85fd865441a681,libzstd_safe-e101e4aaf9b30f52,libzstd_sys-c26a5c8e7cede682,libflatbuffers-f53ca60316a21705,libarrow_csv-50aa425732297de1,libcsv-029d5d4e891e4c0a,libcsv_core-af26608cd100771c,libarrow_string-7b6c2f789084e4b7,libregex-ad1230e2b7302609,libregex_automata-ab5916c4a816ce98,libaho_corasick-d891cfffe42fc5ba,libregex_syntax-360bad80433c9df3,libarrow_cast-284044cc8bc8ffbf,libatoi-200ef851be556cf3,libryu-0735f59322c3f4dd,libbase64-7443869e87ab93bc,libcomfy_table-06b00759ac85f53d,libunicode_segmentation-64fbbef3c1227a9c,libunicode_width-fa14a3b62a7ec7f7,liblexical_core-82c3347f1eb7a9ad,liblexical_write_float-883a379db1e41cfd,liblexical_write_integer-1682f352881bf5cf,liblexical_parse_float-64fe6f930f0657f3,liblexical_parse_integer-0103e43ddc50f13a,liblexical_util-b261622fe8af7191,libarrow_arith-60e993e7b84ffee9,libarrow_ord-c14eb78ee5f387e1,libarrow_select-eda90797bbad1f07,libarrow_array-8eadb67fa4cd5892,libfutures-f6556793ce31104f,libfutures_executor-8ab2950bd5693b46,libfutures_util-adf8c498e3ca2d1c,libfutures_io-b14d175fab7de153,libslab-a2456913c0ba51f0,libfutures_channel-4cfb1461f051be40,libpin_project_lite-26656699ee326701,libfutures_sink-336b5a7bb84472e7,libfutures_task-147992c07fd025a0,libfutures_core-f5d836de68c2fcc6,libahash-d24602cf94839f47,libonce_cell-cf1006a21f78f273,libhashbrown-5b1f22d68b94b4c2,libnum_complex-1565e166ebc1aff0,libchrono-e884652b26200d47,libiana_time_zone-8c4048791fcb4d5b,libarrow_data-7d663b07b4014d27,libarrow_schema-bbcb06017e02dc81,libserde_json-9bb4a06d8a75ed0c,libmemchr-1d3d1ef9a6b1922d,libitoa-aa9ff90392e333e9,libzmij-714d32cd3aff6cd0,libbitflags-66fa5599aa8ced7e,libarrow_buffer-efc5c987afed176c,libbytes-4536b7bbee4a3aaa,libhalf-628ac419fbf34fd7,librand_distr-e9186fe1b7a9bec7,librand-95cf620bf8e7ca72,librand_chacha-64bc8fc9dad85659,libppv_lite86-69f705228cd13eb7,librand_core-7edc281d22897d7c,libgetrandom-1866965f04ea8265,liblibc-7782b8150ccb4f4f,libcfg_if-9f43721614bce0ef,libzerocopy-1bf55104b2b71a0b,libnum_bigint-f34df526b843dcd1,libserde-198c1d4911956344,libserde_core-e4cd2c13c00d061b,libnum_integer-42d26df496f5b5bf,libnum_traits-bc080c97b76a23a2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustceXnEKk/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/alamb/arrow-rs/target/release/build/zstd-sys-fbfc4ded5eaa5d3b/out" "-L" "/home/alamb/arrow-rs/target/release/build/alloca-98d44869933e2b73/out" "-L" "/home/alamb/arrow-rs/target/release/build/link-cplusplus-30691bd4f8146ac0/out" "-L" "/home/alamb/arrow-rs/target/release/build/ring-abaafa288866f10f/out" "-L" "/home/alamb/arrow-rs/target/release/build/snappy_src-f49729b0027d7acb/out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/alamb/arrow-rs/target/release/deps/arrow_reader_clickbench-a191605b0bc9b462" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "--ld-path=/usr/bin/mold"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: mold: fatal: library not found: stdc++
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `parquet` (bench "arrow_reader_clickbench") due to 1 previous error

@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmarks

@adriangbot

Copy link
Copy Markdown

Benchmark job started for this request (job bench-c4056888571-212). Results will be posted here when complete.

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Linux bench-c4056888571-212-pw4b7 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing snappy_cpp (55df03f) to 9d0e8be (merge-base) diff using:
Results will be posted here when complete

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
snappy_cpp
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/9528/head -> snappy_cpp
 * branch            main                -> FETCH_HEAD
Switched to branch 'snappy_cpp'
9d0e8beae74fedb362d88cbc6e32d9760657c9de
Cloning into '/workspace/datafusion-base'...
HEAD is now at 9d0e8be Update version to 58.0.0 and add CHANGELOG (#9420)
rustc 1.94.0 (4a4ef493e 2026-03-02)
55df03f2e2513830b3592ac5cf4680ff3f1d3cb4
9d0e8beae74fedb362d88cbc6e32d9760657c9de

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Linux bench-c4056888571-212-qsqsm 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing snappy_cpp (55df03f) to 9d0e8be (merge-base) diff using:
Results will be posted here when complete

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
snappy_cpp
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/9528/head -> snappy_cpp
 * branch            main                -> FETCH_HEAD
Switched to branch 'snappy_cpp'
9d0e8beae74fedb362d88cbc6e32d9760657c9de
Cloning into '/workspace/datafusion-base'...
HEAD is now at 9d0e8be Update version to 58.0.0 and add CHANGELOG (#9420)
rustc 1.94.0 (4a4ef493e 2026-03-02)
55df03f2e2513830b3592ac5cf4680ff3f1d3cb4
9d0e8beae74fedb362d88cbc6e32d9760657c9de

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Linux bench-c4056888571-212-2mvzd 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing snappy_cpp (55df03f) to 9d0e8be (merge-base) diff using:
Results will be posted here when complete

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
snappy_cpp
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/9528/head -> snappy_cpp
 * branch            main                -> FETCH_HEAD
Switched to branch 'snappy_cpp'
9d0e8beae74fedb362d88cbc6e32d9760657c9de
Cloning into '/workspace/datafusion-base'...
HEAD is now at 9d0e8be Update version to 58.0.0 and add CHANGELOG (#9420)
rustc 1.94.0 (4a4ef493e 2026-03-02)
55df03f2e2513830b3592ac5cf4680ff3f1d3cb4
9d0e8beae74fedb362d88cbc6e32d9760657c9de

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Linux bench-c4056888571-212-f48wv 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing snappy_cpp (55df03f) to 9d0e8be (merge-base) diff using:
Results will be posted here when complete

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
snappy_cpp
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/9528/head -> snappy_cpp
 * branch            main                -> FETCH_HEAD
Switched to branch 'snappy_cpp'
9d0e8beae74fedb362d88cbc6e32d9760657c9de
Cloning into '/workspace/datafusion-base'...
HEAD is now at 9d0e8be Update version to 58.0.0 and add CHANGELOG (#9420)
rustc 1.94.0 (4a4ef493e 2026-03-02)
55df03f2e2513830b3592ac5cf4680ff3f1d3cb4
9d0e8beae74fedb362d88cbc6e32d9760657c9de

Removed link-cplusplus dependency from Cargo.toml.
@Dandandan Dandandan closed this Mar 17, 2026
@Dandandan Dandandan reopened this Mar 29, 2026
@Dandandan

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_reader_clickbench

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4150609770-601-rjsfb 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing snappy_cpp (c07c455) to c194e54 (merge-base) diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

group                                             main                                   snappy_cpp
-----                                             ----                                   ----------
arrow_reader_clickbench/async/Q1                  1.00   1088.0±5.41µs        ? ?/sec    1.01   1096.2±6.39µs        ? ?/sec
arrow_reader_clickbench/async/Q10                 1.00      6.7±0.33ms        ? ?/sec    1.08      7.2±0.37ms        ? ?/sec
arrow_reader_clickbench/async/Q11                 1.00      7.8±0.36ms        ? ?/sec    1.08      8.4±0.41ms        ? ?/sec
arrow_reader_clickbench/async/Q12                 1.00     14.6±0.35ms        ? ?/sec    1.16     16.9±0.25ms        ? ?/sec
arrow_reader_clickbench/async/Q13                 1.00     17.8±0.35ms        ? ?/sec    1.15     20.5±0.19ms        ? ?/sec
arrow_reader_clickbench/async/Q14                 1.00     16.4±0.28ms        ? ?/sec    1.14     18.7±0.40ms        ? ?/sec
arrow_reader_clickbench/async/Q19                 1.00      3.2±0.10ms        ? ?/sec    1.12      3.5±0.08ms        ? ?/sec
arrow_reader_clickbench/async/Q20                 1.18     94.4±1.77ms        ? ?/sec    1.00     80.0±0.68ms        ? ?/sec
arrow_reader_clickbench/async/Q21                 1.10    108.5±1.91ms        ? ?/sec    1.00     98.7±4.01ms        ? ?/sec
arrow_reader_clickbench/async/Q22                 1.00    135.8±1.71ms        ? ?/sec    1.07    145.2±7.56ms        ? ?/sec
arrow_reader_clickbench/async/Q23                 1.00    249.8±3.35ms        ? ?/sec    1.17   292.5±27.42ms        ? ?/sec
arrow_reader_clickbench/async/Q24                 1.00     19.8±0.57ms        ? ?/sec    1.20     23.6±0.45ms        ? ?/sec
arrow_reader_clickbench/async/Q27                 1.00     58.6±0.51ms        ? ?/sec    1.13     66.0±0.51ms        ? ?/sec
arrow_reader_clickbench/async/Q28                 1.00     59.5±0.33ms        ? ?/sec    1.13     67.0±0.85ms        ? ?/sec
arrow_reader_clickbench/async/Q30                 1.00     18.8±0.24ms        ? ?/sec    1.16     21.8±0.46ms        ? ?/sec
arrow_reader_clickbench/async/Q36                 1.00     15.5±0.57ms        ? ?/sec    1.09     17.0±0.54ms        ? ?/sec
arrow_reader_clickbench/async/Q37                 1.00      5.4±0.10ms        ? ?/sec    1.06      5.8±0.08ms        ? ?/sec
arrow_reader_clickbench/async/Q38                 1.00     13.4±0.38ms        ? ?/sec    1.21     16.3±1.47ms        ? ?/sec
arrow_reader_clickbench/async/Q39                 1.00     24.9±0.53ms        ? ?/sec    1.13     28.1±0.58ms        ? ?/sec
arrow_reader_clickbench/async/Q40                 1.00      5.9±0.11ms        ? ?/sec    1.03      6.0±0.17ms        ? ?/sec
arrow_reader_clickbench/async/Q41                 1.00      5.1±0.10ms        ? ?/sec    1.02      5.2±0.11ms        ? ?/sec
arrow_reader_clickbench/async/Q42                 1.00      3.6±0.05ms        ? ?/sec    1.11      4.0±0.07ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q1     1.00   1063.9±3.99µs        ? ?/sec    1.01   1070.5±7.33µs        ? ?/sec
arrow_reader_clickbench/async_object_store/Q10    1.00      6.6±0.34ms        ? ?/sec    1.12      7.4±0.09ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q11    1.00      7.6±0.24ms        ? ?/sec    1.06      8.1±0.34ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q12    1.00     14.9±0.06ms        ? ?/sec    1.13     16.9±0.39ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q13    1.00     17.3±0.48ms        ? ?/sec    1.14     19.8±0.51ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q14    1.00     16.1±0.44ms        ? ?/sec    1.14     18.4±0.41ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q19    1.00      3.0±0.08ms        ? ?/sec    1.15      3.5±0.06ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q20    1.00     72.4±0.81ms        ? ?/sec    1.12     80.8±0.67ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q21    1.00     81.8±0.95ms        ? ?/sec    1.11     90.8±0.84ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q22    1.00    100.9±1.18ms        ? ?/sec    1.14    114.8±1.41ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q23    1.00    218.2±2.95ms        ? ?/sec    1.21    263.4±7.62ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q24    1.00     19.7±0.54ms        ? ?/sec    1.19     23.5±0.51ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q27    1.00     58.0±0.67ms        ? ?/sec    1.13     65.4±0.94ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q28    1.00     58.6±0.41ms        ? ?/sec    1.14     66.5±0.91ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q30    1.00     18.5±0.26ms        ? ?/sec    1.16     21.4±0.18ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q36    1.00     14.9±0.62ms        ? ?/sec    1.13     16.9±0.50ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q37    1.00      5.3±0.10ms        ? ?/sec    1.08      5.7±0.10ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q38    1.00     13.1±0.52ms        ? ?/sec    1.12     14.7±0.51ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q39    1.00     23.7±0.42ms        ? ?/sec    1.13     26.8±0.70ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q40    1.00      5.7±0.10ms        ? ?/sec    1.01      5.8±0.16ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q41    1.00      4.9±0.10ms        ? ?/sec    1.02      5.0±0.09ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q42    1.00      3.4±0.05ms        ? ?/sec    1.14      3.9±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q1                   1.00    871.3±3.00µs        ? ?/sec    1.04    909.7±4.38µs        ? ?/sec
arrow_reader_clickbench/sync/Q10                  1.00      5.2±0.09ms        ? ?/sec    1.08      5.6±0.06ms        ? ?/sec
arrow_reader_clickbench/sync/Q11                  1.00      6.1±0.10ms        ? ?/sec    1.09      6.7±0.04ms        ? ?/sec
arrow_reader_clickbench/sync/Q12                  1.00     22.2±0.06ms        ? ?/sec    1.19     26.5±0.26ms        ? ?/sec
arrow_reader_clickbench/sync/Q13                  1.00     30.3±0.74ms        ? ?/sec    1.17     35.3±0.90ms        ? ?/sec
arrow_reader_clickbench/sync/Q14                  1.00     23.2±0.36ms        ? ?/sec    1.20     28.0±0.32ms        ? ?/sec
arrow_reader_clickbench/sync/Q19                  1.00      2.8±0.09ms        ? ?/sec    1.14      3.2±0.09ms        ? ?/sec
arrow_reader_clickbench/sync/Q20                  1.00    123.4±1.22ms        ? ?/sec    1.10    135.7±1.71ms        ? ?/sec
arrow_reader_clickbench/sync/Q21                  1.00     94.7±0.77ms        ? ?/sec    1.12    106.3±0.66ms        ? ?/sec
arrow_reader_clickbench/sync/Q22                  1.00    141.5±3.45ms        ? ?/sec    1.13    159.5±1.64ms        ? ?/sec
arrow_reader_clickbench/sync/Q23                  1.00   282.8±14.04ms        ? ?/sec    1.13   319.0±13.18ms        ? ?/sec
arrow_reader_clickbench/sync/Q24                  1.00     27.9±0.45ms        ? ?/sec    1.20     33.5±0.56ms        ? ?/sec
arrow_reader_clickbench/sync/Q27                  1.00    110.0±1.31ms        ? ?/sec    1.13    123.9±1.15ms        ? ?/sec
arrow_reader_clickbench/sync/Q28                  1.00    107.0±1.29ms        ? ?/sec    1.15    123.3±0.80ms        ? ?/sec
arrow_reader_clickbench/sync/Q30                  1.00     19.1±0.23ms        ? ?/sec    1.17     22.3±0.11ms        ? ?/sec
arrow_reader_clickbench/sync/Q36                  1.00     22.8±0.08ms        ? ?/sec    1.12     25.6±0.47ms        ? ?/sec
arrow_reader_clickbench/sync/Q37                  1.00      6.9±0.09ms        ? ?/sec    1.09      7.5±0.10ms        ? ?/sec
arrow_reader_clickbench/sync/Q38                  1.00     11.5±0.23ms        ? ?/sec    1.14     13.1±0.24ms        ? ?/sec
arrow_reader_clickbench/sync/Q39                  1.00     21.2±0.41ms        ? ?/sec    1.14     24.3±0.47ms        ? ?/sec
arrow_reader_clickbench/sync/Q40                  1.00      5.3±0.13ms        ? ?/sec    1.05      5.6±0.12ms        ? ?/sec
arrow_reader_clickbench/sync/Q41                  1.00      5.7±0.09ms        ? ?/sec    1.03      5.9±0.03ms        ? ?/sec
arrow_reader_clickbench/sync/Q42                  1.00      4.5±0.03ms        ? ?/sec    1.07      4.8±0.08ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 790.9s
Peak memory 3.1 GiB
Avg memory 3.0 GiB
CPU user 708.6s
CPU sys 82.2s
Disk read 0 B
Disk write 819.7 MiB

branch

Metric Value
Wall time 812.6s
Peak memory 3.3 GiB
Avg memory 3.1 GiB
CPU user 745.6s
CPU sys 67.2s
Disk read 0 B
Disk write 171.4 MiB

File an issue against this benchmark runner

- Add `snappy_cpp` feature flag that enables C++ snappy via snappy_src
- Default `snap` feature uses pure-Rust snap crate (no C++ compiler needed)
- Revert parquet-testing submodule to match master
- Fix clippy uninit_vec warnings in C++ snappy codec

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alamb

alamb commented Mar 31, 2026

Copy link
Copy Markdown
Contributor

That 15-20% is pretty compelling

@alamb

alamb commented Mar 31, 2026

Copy link
Copy Markdown
Contributor

run benchmark arrow_reader_clickbench

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4165643955-640-zqp2h 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing snappy_cpp (226f5fb) to 9d0e8be (merge-base) diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
      Adding generic-array v0.14.7 (available: v0.14.9)
      Adding lz4_flex v0.12.1 (available: v0.13.0)
      Adding matchit v0.8.4 (available: v0.8.6)
      Adding rand v0.9.2 (available: v0.10.0)
      Adding sha2 v0.10.9 (available: v0.11.0)
      Adding strum_macros v0.27.2 (available: v0.28.0)
rustc 1.94.1 (e408947bf 2026-03-25)
226f5fbb893934a5639a86cea8468bff912c19c0
9d0e8beae74fedb362d88cbc6e32d9760657c9de
Looking for ClickBench files starting in current_dir and all parent directories: "/workspace/arrow-rs-base/parquet"
    Finished `bench` profile [optimized] target(s) in 0.14s
     Running benches/arrow_reader_clickbench.rs (target/release/deps/arrow_reader_clickbench-72bb0bbdd27cb3c2)
Could not find hits_1.parquet in directory or parents: "/workspace/arrow-rs-base/parquet". Download it via

wget --continue https://datasets.clickhouse.com/hits_compatible/athena_partitioned/hits_1.parquet

thread 'main' (16882) panicked at parquet/benches/arrow_reader_clickbench.rs:618:9:
Stopping
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: bench failed, to rerun pass `-p parquet --bench arrow_reader_clickbench`

File an issue against this benchmark runner

@Dandandan

Dandandan commented Apr 7, 2026

Copy link
Copy Markdown
Contributor Author

That 15-20% is pretty compelling

Somehow snappy_cpp seemed to be worse on the runner compared to rust, so it's mixed.

I did some AI-guided optimization here BurntSushi/rust-snappy#64 which yielded ~30% improvements on the benchmarks (both locally and in runner) 🤯

@github-actions

Copy link
Copy Markdown

Thank you for your contribution. Unfortunately, this pull request is stale because it has been open 60 days with no activity. Please remove the stale label or comment or this will be closed in 7 days.

@github-actions github-actions Bot added the Stale label Jun 24, 2026
@github-actions github-actions Bot closed this Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parquet Changes to the parquet crate Stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants