Skip to content

Conversation

@a10y
Copy link
Contributor

@a10y a10y commented Jul 16, 2025

Fixes #3546

MSRV is 1.87.0.

Stable is far ahead of the February 2025 nightly we've been pegged to, so on top of the regular changes there were a ton of new lints to go whack-a-mole.

I left rustfmt with its unstable options, which means that you'll need to continue to run rustfmt on the nightly channel but the project will be on the stable channel. You can run formatting from CLI like this

cargo +nightly fmt

For RustRover you can configure rustfmt to execute with nightly in settings:

image

For VSCode and others you'll need to figure that one out.

Signed-off-by: Andrew Duffy andrew@a10y.dev

a10y added 2 commits July 15, 2025 21:04
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@codspeed-hq
Copy link

codspeed-hq bot commented Jul 16, 2025

CodSpeed Performance Report

Merging #3881 will improve performances by 38.39%

Comparing aduffy/stable-rust (afc822f) with develop (ced09d9)

Summary

⚡ 1 improvements
✅ 792 untouched benchmarks

Benchmarks breakdown

Benchmark BASE HEAD Change
map_each[BufferMut<i32>, 1] 210.3 ns 151.9 ns +38.39%

a10y added 2 commits July 16, 2025 09:30
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@a10y a10y force-pushed the aduffy/stable-rust branch from 40fd2f6 to bc09918 Compare July 16, 2025 14:33
@a10y a10y added the feature Release label indicating a new feature or request label Jul 16, 2025

/// Trait for all types which have a known upper-bound.
///
/// Functions that receive a `TrustedLen` iterator can assume that it's `size_hint` is exact,
Copy link
Contributor Author

@a10y a10y Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically this is a stricter bound than the std TrustedLen, which just guarantees that the upper bound is either Some(exact) or None if unknown. This is what we want for our extend_trusted though.

The nice part about defining our version of this trait is that we can leave extend_trusted as a safe method on BufferMut, which should never fail at runtime. If we ever wanna add a new case we just add a new impl here. But I don't expect many more if any.

macro_rules! impl_for_range {
($($typ:ty),*) => {
$(
unsafe impl TrustedLen for std::ops::Range<$typ> {}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't just do impl<T> for Range<T> because they introduce a type-bound on another unstable TrustedStep trait...which is really just implemented for the integer types anyway

Comment on lines +71 to +73
const _: () = {
assert!(size_of::<VortexError>() < 128);
};
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One lint that popped off when I switched to stable was that apparently with all features activated, VortexError was a whopping 140 bytes, which was tripping the large_err check.

I boxed the Backtraces to keep the size down, now it's around ~88B. Still large but better.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should aggressively trim it down

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes but this is not new, the lint is just new.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Filed #3892 as a follow up

Comment on lines -1 to -4
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors

#[rustversion::nightly]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is now superfluous, instead I opted to do what Tokio does when you wanna unlock unstable nightly-only things and just add a new cfg vortex_nightly that gates all of the portable_simd stuff.

To run it, you can use a nigthly compiler and pass the flags, e.g.

RUSTFLAGS="--cfg vortex_nightly" cargo +nightly build -p vortex-array --all-features

/// Returns an iterator over the buffer of elements of type T.
pub fn iter(&self) -> impl Iterator<Item = &T> + '_ {
self.as_slice().iter()
pub fn iter(&self) -> Iter<'_, T> {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this technically isn't a breaking change actually, b/c we're going from unnamed -> named type.

But the idea is that we have to impl TrustedLen for this, so you can BufferMut::extend_trusted from another Buffer.

So I just defined a concrete type that wraps std::slice::Iter and delegates the important methods to it.

}
}

impl<T> BufferMut<T> {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't change any logic here, this is just moving methods around

Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@coveralls
Copy link

coveralls commented Jul 16, 2025

Coverage Status

coverage: 80.702% (-0.9%) from 81.557%
when pulling afc822f on aduffy/stable-rust
into ced09d9 on develop.

Signed-off-by: Andrew Duffy <andrew@a10y.dev>
a10y added 4 commits July 16, 2025 11:35
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@a10y a10y marked this pull request as ready for review July 16, 2025 16:11
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@lwwmanning lwwmanning added the benchmark Run benchmarks on this branch label Jul 16, 2025
@github-actions github-actions bot removed the benchmark Run benchmarks on this branch label Jul 16, 2025
@github-actions
Copy link
Contributor

Benchmarks: random_access

Table of Results
name PR afc822f base 649f70a ratio (PR/base) unit
random-access/vortex-tokio-local-disk 2419581 2.21695e+06 1.0914 ns
random-access/parquet-tokio-local-disk 188953510 1.77934e+08 1.06193 ns

@github-actions
Copy link
Contributor

Benchmarks: TPC-H on NVME

Table of Results
name PR afc822f base 649f70a ratio (PR/base) unit
tpch_q01/DataFusion:arrow 61706161 6.0477e+07 1.02032 ns
tpch_q02/DataFusion:arrow 16726035 1.65961e+07 1.00783 ns
tpch_q03/DataFusion:arrow 22085098 2.16974e+07 1.01787 ns
tpch_q04/DataFusion:arrow 12166573 1.24469e+07 0.977475 ns
tpch_q05/DataFusion:arrow 30897776 3.25228e+07 0.950035 ns
tpch_q06/DataFusion:arrow 7340471 7.37418e+06 0.995429 ns
tpch_q07/DataFusion:arrow 56414025 5.55998e+07 1.01465 ns
tpch_q08/DataFusion:arrow 18154408 1.86767e+07 0.972033 ns
tpch_q09/DataFusion:arrow 32055337 3.36568e+07 0.952418 ns
tpch_q10/DataFusion:arrow 29002748 3.07921e+07 0.94189 ns
tpch_q11/DataFusion:arrow 7821770 7.88736e+06 0.991684 ns
tpch_q12/DataFusion:arrow 23918366 2.37442e+07 1.00734 ns
tpch_q13/DataFusion:arrow 14767029 1.5341e+07 0.962588 ns
tpch_q14/DataFusion:arrow 6736191 7.11053e+06 0.947354 ns
tpch_q15/DataFusion:arrow 13922555 1.38196e+07 1.00745 ns
tpch_q16/DataFusion:arrow 15263351 1.55547e+07 0.981267 ns
tpch_q17/DataFusion:arrow 53192063 5.30272e+07 1.00311 ns
tpch_q18/DataFusion:arrow 111939388 1.1109e+08 1.00764 ns
tpch_q19/DataFusion:arrow 15673354 2.01727e+07 0.776958 ns
tpch_q20/DataFusion:arrow 19912052 2.03257e+07 0.979649 ns
tpch_q21/DataFusion:arrow 79685810 8.32219e+07 0.95751 ns
tpch_q22/DataFusion:arrow 10510862 1.05177e+07 0.999348 ns
tpch_q01/DataFusion:parquet 157111737 1.58364e+08 0.992094 ns
tpch_q02/DataFusion:parquet 80089940 8.32175e+07 0.962418 ns
tpch_q03/DataFusion:parquet 84764077 8.40633e+07 1.00834 ns
tpch_q04/DataFusion:parquet 61677197 5.91266e+07 1.04314 ns
tpch_q05/DataFusion:parquet 97992334 1.02743e+08 0.953761 ns
tpch_q06/DataFusion:parquet 34723365 3.57275e+07 0.971896 ns
tpch_q07/DataFusion:parquet 122302281 1.20072e+08 1.01858 ns
tpch_q08/DataFusion:parquet 93765971 9.42719e+07 0.994633 ns
tpch_q09/DataFusion:parquet 130320178 1.37102e+08 0.950536 ns
tpch_q10/DataFusion:parquet 122636437 1.21074e+08 1.0129 ns
tpch_q11/DataFusion:parquet 64177234 6.50381e+07 0.986763 ns
tpch_q12/DataFusion:parquet 87793401 8.59114e+07 1.02191 ns
tpch_q13/DataFusion:parquet 167545391 1.70612e+08 0.982028 ns
tpch_q14/DataFusion:parquet 45133651 4.44405e+07 1.0156 ns
tpch_q15/DataFusion:parquet 60266884 6.29951e+07 0.956692 ns
tpch_q16/DataFusion:parquet 46787546 4.74796e+07 0.985423 ns
tpch_q17/DataFusion:parquet 142556016 1.26874e+08 1.1236 ns
tpch_q18/DataFusion:parquet 177587446 1.80271e+08 0.985111 ns
tpch_q19/DataFusion:parquet 84113486 8.4143e+07 0.999649 ns
tpch_q20/DataFusion:parquet 73394946 7.06121e+07 1.03941 ns
tpch_q21/DataFusion:parquet 151590007 1.56546e+08 0.96834 ns
tpch_q22/DataFusion:parquet 74966580 7.74038e+07 0.968513 ns
tpch_q01/DataFusion:vortex-file-compressed 56638486 5.19529e+07 1.09019 ns
tpch_q02/DataFusion:vortex-file-compressed 31885126 3.22632e+07 0.988283 ns
tpch_q03/DataFusion:vortex-file-compressed 21501533 2.3004e+07 0.934687 ns
tpch_q04/DataFusion:vortex-file-compressed 16114427 1.64026e+07 0.982434 ns
tpch_q05/DataFusion:vortex-file-compressed 47201352 4.92715e+07 0.957984 ns
tpch_q06/DataFusion:vortex-file-compressed 7771737 7.81243e+06 0.994792 ns
tpch_q07/DataFusion:vortex-file-compressed 71365887 7.19782e+07 0.991494 ns
tpch_q08/DataFusion:vortex-file-compressed 35727965 3.57064e+07 1.00061 ns
tpch_q09/DataFusion:vortex-file-compressed 51991837 5.45785e+07 0.952606 ns
tpch_q10/DataFusion:vortex-file-compressed 42171838 4.24549e+07 0.993333 ns
tpch_q11/DataFusion:vortex-file-compressed 19522343 2.01009e+07 0.971219 ns
tpch_q12/DataFusion:vortex-file-compressed 17069852 1.72196e+07 0.991303 ns
tpch_q13/DataFusion:vortex-file-compressed 20739904 2.13112e+07 0.973195 ns
tpch_q14/DataFusion:vortex-file-compressed 10474605 1.10533e+07 0.947645 ns
tpch_q15/DataFusion:vortex-file-compressed 18863401 1.88957e+07 0.998291 ns
tpch_q16/DataFusion:vortex-file-compressed 23957764 2.46336e+07 0.972566 ns
tpch_q17/DataFusion:vortex-file-compressed 60310209 5.88085e+07 1.02553 ns
tpch_q18/DataFusion:vortex-file-compressed 92817489 9.38218e+07 0.989295 ns
tpch_q19/DataFusion:vortex-file-compressed 15181620 1.58215e+07 0.959557 ns
tpch_q20/DataFusion:vortex-file-compressed 23675957 2.44056e+07 0.970102 ns
tpch_q21/DataFusion:vortex-file-compressed 72428160 7.33131e+07 0.987929 ns
tpch_q22/DataFusion:vortex-file-compressed 15193174 1.52224e+07 0.99808 ns
tpch_q01/DuckDB:parquet 101059585 1.01233e+08 0.998284 ns
tpch_q02/DuckDB:parquet 43180316 4.29223e+07 1.00601 ns
tpch_q03/DuckDB:parquet 68695056 7.09945e+07 0.967612 ns
tpch_q04/DuckDB:parquet 56544782 5.79114e+07 0.976402 ns
tpch_q05/DuckDB:parquet 67891605 7.0331e+07 0.965316 ns
tpch_q06/DuckDB:parquet 19737374 2.02475e+07 0.974806 ns
tpch_q07/DuckDB:parquet 77303310 7.90189e+07 0.978289 ns
tpch_q08/DuckDB:parquet 88847228 9.02566e+07 0.984384 ns
tpch_q09/DuckDB:parquet 136549733 1.38841e+08 0.983494 ns
tpch_q10/DuckDB:parquet 123912992 1.26806e+08 0.977187 ns
tpch_q11/DuckDB:parquet 22996098 2.36047e+07 0.974219 ns
tpch_q12/DuckDB:parquet 56363535 5.68798e+07 0.990924 ns
tpch_q13/DuckDB:parquet 242489185 2.45956e+08 0.985906 ns
tpch_q14/DuckDB:parquet 45909399 4.59915e+07 0.998214 ns
tpch_q15/DuckDB:parquet 26962316 2.7385e+07 0.984567 ns
tpch_q16/DuckDB:parquet 47984672 4.90083e+07 0.979113 ns
tpch_q17/DuckDB:parquet 53243926 5.46539e+07 0.974202 ns
tpch_q18/DuckDB:parquet 118853196 1.17719e+08 1.00963 ns
tpch_q19/DuckDB:parquet 70434618 7.01023e+07 1.00474 ns
tpch_q20/DuckDB:parquet 60039986 6.10758e+07 0.98304 ns
tpch_q21/DuckDB:parquet 167477220 1.70449e+08 0.982567 ns
tpch_q22/DuckDB:parquet 50150734 5.02835e+07 0.997359 ns
tpch_q01/DuckDB:vortex-file-compressed 201457203 1.97572e+08 1.01966 ns
tpch_q02/DuckDB:vortex-file-compressed 80089353 8.424e+07 0.950729 ns
tpch_q03/DuckDB:vortex-file-compressed 136880893 1.27122e+08 1.07677 ns
tpch_q04/DuckDB:vortex-file-compressed 65349545 6.46358e+07 1.01104 ns
tpch_q05/DuckDB:vortex-file-compressed 197055250 2.04738e+08 0.962474 ns
tpch_q06/DuckDB:vortex-file-compressed 19430652 1.99975e+07 0.971653 ns
tpch_q07/DuckDB:vortex-file-compressed 118038050 1.12525e+08 1.04899 ns
tpch_q08/DuckDB:vortex-file-compressed 150924218 1.32925e+08 1.13541 ns
tpch_q09/DuckDB:vortex-file-compressed 421818342 4.08348e+08 1.03299 ns
tpch_q10/DuckDB:vortex-file-compressed 114321587 1.35367e+08 0.844534 ns
tpch_q11/DuckDB:vortex-file-compressed 40369995 4.78569e+07 0.843557 ns
tpch_q12/DuckDB:vortex-file-compressed 90290602 8.63613e+07 1.0455 ns
tpch_q13/DuckDB:vortex-file-compressed 253864431 2.67145e+08 0.950288 ns
tpch_q14/DuckDB:vortex-file-compressed 24482201 2.52129e+07 0.97102 ns
tpch_q15/DuckDB:vortex-file-compressed 24417285 2.62318e+07 0.930829 ns
tpch_q16/DuckDB:vortex-file-compressed 70397160 6.70036e+07 1.05065 ns
tpch_q17/DuckDB:vortex-file-compressed 201305783 1.9205e+08 1.04819 ns
tpch_q18/DuckDB:vortex-file-compressed 171022239 1.77861e+08 0.961548 ns
tpch_q19/DuckDB:vortex-file-compressed 53559589 5.70418e+07 0.938953 ns
tpch_q20/DuckDB:vortex-file-compressed 87074975 8.81219e+07 0.988119 ns
tpch_q21/DuckDB:vortex-file-compressed 560460357 5.52331e+08 1.01472 ns
tpch_q22/DuckDB:vortex-file-compressed 51261405 5.16768e+07 0.991961 ns
tpch_q01/DuckDB:duckdb 14211243 1.42576e+07 0.996751 ns
tpch_q02/DuckDB:duckdb 10508624 1.16143e+07 0.904799 ns
tpch_q03/DuckDB:duckdb 14363343 1.53124e+07 0.938021 ns
tpch_q04/DuckDB:duckdb 16413467 1.65929e+07 0.989184 ns
tpch_q05/DuckDB:duckdb 16177455 1.62525e+07 0.995385 ns
tpch_q06/DuckDB:duckdb 3365719 3.40459e+06 0.988582 ns
tpch_q07/DuckDB:duckdb 18637201 1.85659e+07 1.00384 ns
tpch_q08/DuckDB:duckdb 18181836 1.82212e+07 0.997841 ns
tpch_q09/DuckDB:duckdb 49582626 5.25673e+07 0.943222 ns
tpch_q10/DuckDB:duckdb 43704581 4.00859e+07 1.09027 ns
tpch_q11/DuckDB:duckdb 7327291 6.18687e+06 1.18433 ns
tpch_q12/DuckDB:duckdb 12570548 1.28346e+07 0.979429 ns
tpch_q13/DuckDB:duckdb 47489123 4.1975e+07 1.13137 ns
tpch_q14/DuckDB:duckdb 12080371 1.28747e+07 0.938305 ns
tpch_q15/DuckDB:duckdb 7820452 7.6364e+06 1.0241 ns
tpch_q16/DuckDB:duckdb 18983026 1.88648e+07 1.00627 ns
tpch_q17/DuckDB:duckdb 14261517 1.41334e+07 1.00907 ns
tpch_q18/DuckDB:duckdb 34838830 3.48492e+07 0.999701 ns
tpch_q19/DuckDB:duckdb 21112625 2.10564e+07 1.00267 ns
tpch_q20/DuckDB:duckdb 17024701 1.67836e+07 1.01437 ns
tpch_q21/DuckDB:duckdb 50581421 5.17011e+07 0.978343 ns
tpch_q22/DuckDB:duckdb 23529166 2.4271e+07 0.969435 ns

@github-actions
Copy link
Contributor

Benchmarks: TPC-H on S3

Table of Results
name PR afc822f base 649f70a ratio (PR/base) unit
tpch_q01/DataFusion:parquet 375806938 3.68578e+08 1.01961 ns
tpch_q02/DataFusion:parquet 744723589 7.52669e+08 0.989443 ns
tpch_q03/DataFusion:parquet 548477241 6.15587e+08 0.890983 ns
tpch_q04/DataFusion:parquet 286276615 2.77699e+08 1.03089 ns
tpch_q05/DataFusion:parquet 706687432 7.06693e+08 0.999992 ns
tpch_q06/DataFusion:parquet 262430135 2.58294e+08 1.01601 ns
tpch_q07/DataFusion:parquet 727708469 7.33448e+08 0.992174 ns
tpch_q08/DataFusion:parquet 821804023 7.90065e+08 1.04017 ns
tpch_q09/DataFusion:parquet 699308939 7.25949e+08 0.963304 ns
tpch_q10/DataFusion:parquet 722292442 7.2648e+08 0.994236 ns
tpch_q11/DataFusion:parquet 547196266 5.27715e+08 1.03692 ns
tpch_q12/DataFusion:parquet 406082700 3.81834e+08 1.06351 ns
tpch_q13/DataFusion:parquet 493467943 4.88657e+08 1.00984 ns
tpch_q14/DataFusion:parquet 335189162 3.36467e+08 0.996203 ns
tpch_q15/DataFusion:parquet 546421372 5.58338e+08 0.978656 ns
tpch_q16/DataFusion:parquet 346615781 3.35185e+08 1.0341 ns
tpch_q17/DataFusion:parquet 568822936 5.41625e+08 1.05021 ns
tpch_q18/DataFusion:parquet 662931950 6.9768e+08 0.950195 ns
tpch_q19/DataFusion:parquet 459015254 4.50885e+08 1.01803 ns
tpch_q20/DataFusion:parquet 555859443 5.60295e+08 0.992083 ns
tpch_q21/DataFusion:parquet 841985288 8.53364e+08 0.986666 ns
tpch_q22/DataFusion:parquet 336255725 3.44259e+08 0.976753 ns
tpch_q01/DataFusion:vortex-file-compressed 167119557 1.62601e+08 1.02779 ns
tpch_q02/DataFusion:vortex-file-compressed 133216663 1.28953e+08 1.03306 ns
tpch_q03/DataFusion:vortex-file-compressed 203088888 2.08193e+08 0.975486 ns
tpch_q04/DataFusion:vortex-file-compressed 139361952 1.36591e+08 1.02028 ns
tpch_q05/DataFusion:vortex-file-compressed 210270533 2.17064e+08 0.968705 ns
tpch_q06/DataFusion:vortex-file-compressed 113975778 1.23825e+08 0.920458 ns
tpch_q07/DataFusion:vortex-file-compressed 255882022 2.51096e+08 1.01906 ns
tpch_q08/DataFusion:vortex-file-compressed 247970334 2.46084e+08 1.00767 ns
tpch_q09/DataFusion:vortex-file-compressed 278545600 2.70311e+08 1.03046 ns
tpch_q10/DataFusion:vortex-file-compressed 236559950 2.58613e+08 0.914727 ns
tpch_q11/DataFusion:vortex-file-compressed 128427223 1.23821e+08 1.0372 ns
tpch_q12/DataFusion:vortex-file-compressed 177189481 1.76253e+08 1.00531 ns
tpch_q13/DataFusion:vortex-file-compressed 128026583 1.25095e+08 1.02343 ns
tpch_q14/DataFusion:vortex-file-compressed 130947305 1.27896e+08 1.02385 ns
tpch_q15/DataFusion:vortex-file-compressed 220143010 2.07178e+08 1.06258 ns
tpch_q16/DataFusion:vortex-file-compressed 80894042 8.09704e+07 0.999057 ns
tpch_q17/DataFusion:vortex-file-compressed 211721096 2.16288e+08 0.978884 ns
tpch_q18/DataFusion:vortex-file-compressed 290165385 2.90424e+08 0.999111 ns
tpch_q19/DataFusion:vortex-file-compressed 154459145 1.50343e+08 1.02738 ns
tpch_q20/DataFusion:vortex-file-compressed 229140528 2.06464e+08 1.10984 ns
tpch_q21/DataFusion:vortex-file-compressed 370255470 3.79384e+08 0.975938 ns
tpch_q22/DataFusion:vortex-file-compressed 102805249 1.01981e+08 1.00809 ns
tpch_q01/DuckDB:parquet 121900254 1.19016e+08 1.02424 ns
tpch_q02/DuckDB:parquet 367191214 3.08897e+08 1.18872 ns
tpch_q03/DuckDB:parquet 148637424 1.8765e+08 0.7921 ns
tpch_q04/DuckDB:parquet 105830933 1.10298e+08 0.9595 ns
tpch_q05/DuckDB:parquet 285299164 2.4584e+08 1.16051 ns
tpch_q06/DuckDB:parquet 37870073 5.74027e+07 0.659726 ns
tpch_q07/DuckDB:parquet 267070472 2.67897e+08 0.996916 ns
tpch_q08/DuckDB:parquet 352659456 3.18452e+08 1.10742 ns
tpch_q09/DuckDB:parquet 385805785 3.53381e+08 1.09176 ns
tpch_q10/DuckDB:parquet 254060972 2.70234e+08 0.940152 ns
tpch_q11/DuckDB:parquet 228353985 1.95128e+08 1.17028 ns
tpch_q12/DuckDB:parquet 124813739 1.16119e+08 1.07488 ns
tpch_q13/DuckDB:parquet 330637127 3.07188e+08 1.07633 ns
tpch_q14/DuckDB:parquet 139136737 9.63019e+07 1.4448 ns
tpch_q15/DuckDB:parquet 88873450 9.45334e+07 0.940127 ns
tpch_q16/DuckDB:parquet 131371687 1.37849e+08 0.953012 ns
tpch_q17/DuckDB:parquet 160786829 1.69245e+08 0.950022 ns
tpch_q18/DuckDB:parquet 270683127 2.70788e+08 0.999613 ns
tpch_q19/DuckDB:parquet 149629521 1.40162e+08 1.06755 ns
tpch_q20/DuckDB:parquet 237553668 2.39868e+08 0.990353 ns
tpch_q21/DuckDB:parquet 368956192 4.12319e+08 0.894832 ns
tpch_q22/DuckDB:parquet 128934883 1.50129e+08 0.858829 ns

@github-actions
Copy link
Contributor

github-actions bot commented Jul 16, 2025

Benchmarks: compress

Table of Results
name PR afc822f base 649f70a ratio (PR/base) unit
compress time/taxi 2.15784e+08 2.00878e+08 1.07421 ns
parquet_rs-zstd compress time/taxi 1.69714e+09 1.65926e+09 1.02283 ns
decompress time/taxi 1.27423e+08 1.2319e+08 1.03436 ns
parquet_rs-zstd decompress time/taxi 2.9256e+08 2.85916e+08 1.02324 ns
compress time/Arade 4.70536e+08 4.17845e+08 1.1261 ns
parquet_rs-zstd compress time/Arade 2.84712e+09 2.77415e+09 1.0263 ns
decompress time/Arade 2.88568e+08 2.77212e+08 1.04097 ns
parquet_rs-zstd decompress time/Arade 6.46101e+08 5.96544e+08 1.08307 ns
compress time/Bimbo 1.6681e+09 1.53596e+09 1.08603 ns
parquet_rs-zstd compress time/Bimbo 1.89921e+10 1.83141e+10 1.03702 ns
decompress time/Bimbo 1.0199e+09 9.48776e+08 1.07496 ns
parquet_rs-zstd decompress time/Bimbo 2.41538e+09 2.31226e+09 1.0446 ns
compress time/CMSprovider 1.15264e+09 1.02568e+09 1.12378 ns
parquet_rs-zstd compress time/CMSprovider 8.5162e+09 8.20704e+09 1.03767 ns
decompress time/CMSprovider 7.46364e+08 7.05921e+08 1.05729 ns
parquet_rs-zstd decompress time/CMSprovider 1.57157e+09 1.49327e+09 1.05244 ns
compress time/Euro2016 2.51237e+08 2.42793e+08 1.03478 ns
parquet_rs-zstd compress time/Euro2016 1.55417e+09 1.4684e+09 1.05841 ns
decompress time/Euro2016 2.33688e+08 2.20171e+08 1.06139 ns
parquet_rs-zstd decompress time/Euro2016 4.39358e+08 4.0502e+08 1.08478 ns
compress time/Food 2.0473e+08 1.72961e+08 1.18368 ns
parquet_rs-zstd compress time/Food 1.0176e+09 9.73498e+08 1.0453 ns
decompress time/Food 9.47743e+07 8.83761e+07 1.0724 ns
parquet_rs-zstd decompress time/Food 2.00699e+08 1.92374e+08 1.04327 ns
compress time/HashTags 2.64373e+09 2.50191e+09 1.05669 ns
parquet_rs-zstd compress time/HashTags 2.85107e+09 2.61053e+09 1.09214 ns
decompress time/HashTags 2.60882e+09 2.4976e+09 1.04453 ns
parquet_rs-zstd decompress time/HashTags 7.00698e+08 6.12566e+08 1.14387 ns
compress time/TPC-H l_comment chunked 2.50705e+08 2.3753e+08 1.05547 ns
parquet_rs-zstd compress time/TPC-H l_comment chunked 8.78525e+08 8.45018e+08 1.03965 ns
decompress time/TPC-H l_comment chunked 1.03113e+08 1.03075e+08 1.00037 ns
parquet_rs-zstd decompress time/TPC-H l_comment chunked 2.47417e+08 2.22144e+08 1.11377 ns
compress time/TPC-H l_comment canonical 1.5833e+09 1.61961e+09 0.977582 ns
parquet_rs-zstd compress time/TPC-H l_comment canonical 8.89176e+08 8.57623e+08 1.03679 ns
decompress time/TPC-H l_comment canonical 1.08034e+08 1.06168e+08 1.01758 ns
parquet_rs-zstd decompress time/TPC-H l_comment canonical 2.48499e+08 2.24881e+08 1.10503 ns
compress time/wide table cols=10 chunks=1 rows=1000 722253 659182 1.09568 ns
parquet_rs-zstd compress time/wide table cols=10 chunks=1 rows=1000 791628 756558 1.04635 ns
decompress time/wide table cols=10 chunks=1 rows=1000 276651 254482 1.08711 ns
parquet_rs-zstd decompress time/wide table cols=10 chunks=1 rows=1000 282938 276824 1.02209 ns
compress time/wide table cols=100 chunks=1 rows=1000 5.09007e+06 4.26208e+06 1.19427 ns
parquet_rs-zstd compress time/wide table cols=100 chunks=1 rows=1000 8.26333e+06 7.19733e+06 1.14811 ns
decompress time/wide table cols=100 chunks=1 rows=1000 2.1462e+06 1.99152e+06 1.07767 ns
parquet_rs-zstd decompress time/wide table cols=100 chunks=1 rows=1000 2.74932e+06 2.67453e+06 1.02796 ns
compress time/wide table cols=1000 chunks=1 rows=1000 5.72302e+07 5.07132e+07 1.12851 ns
parquet_rs-zstd compress time/wide table cols=1000 chunks=1 rows=1000 9.27314e+07 8.42204e+07 1.10106 ns
decompress time/wide table cols=1000 chunks=1 rows=1000 4.04509e+07 3.63001e+07 1.11435 ns
parquet_rs-zstd decompress time/wide table cols=1000 chunks=1 rows=1000 3.07994e+07 2.73872e+07 1.12459 ns
compress time/wide table cols=10 chunks=50 rows=1000 3.16943e+06 2.98549e+06 1.06161 ns
parquet_rs-zstd compress time/wide table cols=10 chunks=50 rows=1000 1.08345e+06 1.06266e+06 1.01957 ns
decompress time/wide table cols=10 chunks=50 rows=1000 256584 253435 1.01243 ns
parquet_rs-zstd decompress time/wide table cols=10 chunks=50 rows=1000 270969 266902 1.01524 ns
compress time/wide table cols=100 chunks=50 rows=1000 3.14369e+07 2.80414e+07 1.12109 ns
parquet_rs-zstd compress time/wide table cols=100 chunks=50 rows=1000 1.3069e+07 1.02117e+07 1.27981 ns
decompress time/wide table cols=100 chunks=50 rows=1000 2.15472e+06 2.06166e+06 1.04514 ns
parquet_rs-zstd decompress time/wide table cols=100 chunks=50 rows=1000 2.76503e+06 2.68636e+06 1.02929 ns
compress time/wide table cols=1000 chunks=50 rows=1000 3.5268e+08 3.30808e+08 1.06612 ns
parquet_rs-zstd compress time/wide table cols=1000 chunks=50 rows=1000 1.62854e+08 1.42614e+08 1.14192 ns
decompress time/wide table cols=1000 chunks=50 rows=1000 4.08773e+07 3.60936e+07 1.13254 ns
parquet_rs-zstd decompress time/wide table cols=1000 chunks=50 rows=1000 3.11492e+07 2.80351e+07 1.11108 ns
vortex size/taxi 5.54821e+07 5.54821e+07 1 bytes
parquet-zstd size/taxi 5.59542e+07 5.59542e+07 1 bytes
vortex:parquet-zstd size/taxi 0.991563 0.991563 1 ratio
vortex:parquet-zstd ratio compress time/taxi 0.127145 0.121065 1.05023 ratio
vortex:parquet-zstd ratio decompress time/taxi 0.435544 0.430862 1.01087 ratio
vortex size/Arade 1.42473e+08 1.42473e+08 1 bytes
parquet-zstd size/Arade 3.0538e+08 3.0538e+08 1 bytes
vortex:parquet-zstd size/Arade 0.466543 0.466543 1 ratio
vortex:parquet-zstd ratio compress time/Arade 0.165267 0.150621 1.09724 ratio
vortex:parquet-zstd ratio decompress time/Arade 0.44663 0.464696 0.961125 ratio
vortex size/Bimbo 5.19886e+08 5.19886e+08 1 bytes
parquet-zstd size/Bimbo 3.89789e+08 3.89789e+08 1 bytes
vortex:parquet-zstd size/Bimbo 1.33376 1.33376 1 ratio
vortex:parquet-zstd ratio compress time/Bimbo 0.0878315 0.0838678 1.04726 ratio
vortex:parquet-zstd ratio decompress time/Bimbo 0.422253 0.410324 1.02907 ratio
vortex size/CMSprovider 5.04744e+08 5.04744e+08 1 bytes
parquet-zstd size/CMSprovider 3.84908e+08 3.84908e+08 1 bytes
vortex:parquet-zstd size/CMSprovider 1.31134 1.31134 1 ratio
vortex:parquet-zstd ratio compress time/CMSprovider 0.135347 0.124976 1.08299 ratio
vortex:parquet-zstd ratio decompress time/CMSprovider 0.474916 0.472737 1.00461 ratio
vortex size/Euro2016 1.71734e+08 1.71734e+08 1 bytes
parquet-zstd size/Euro2016 1.23121e+08 1.23121e+08 1 bytes
vortex:parquet-zstd size/Euro2016 1.39485 1.39485 1 ratio
vortex:parquet-zstd ratio compress time/Euro2016 0.161653 0.165346 0.977669 ratio
vortex:parquet-zstd ratio decompress time/Euro2016 0.531884 0.543606 0.978438 ratio
vortex size/Food 4.47057e+07 4.47057e+07 1 bytes
parquet-zstd size/Food 3.62159e+07 3.62159e+07 1 bytes
vortex:parquet-zstd size/Food 1.23442 1.23442 1 ratio
vortex:parquet-zstd ratio compress time/Food 0.201189 0.177669 1.13238 ratio
vortex:parquet-zstd ratio decompress time/Food 0.472222 0.459396 1.02792 ratio
vortex size/HashTags 2.11569e+08 2.11569e+08 1 bytes
parquet-zstd size/HashTags 1.34024e+08 1.34024e+08 1 bytes
vortex:parquet-zstd size/HashTags 1.5786 1.5786 1 ratio
vortex:parquet-zstd ratio compress time/HashTags 0.927279 0.958393 0.967535 ratio
vortex:parquet-zstd ratio decompress time/HashTags 3.72318 4.07728 0.913153 ratio
vortex size/TPC-H l_comment chunked 8.45961e+07 8.41728e+07 1.00503 bytes
parquet-zstd size/TPC-H l_comment chunked 5.69212e+07 5.69183e+07 1.00005 bytes
vortex:parquet-zstd size/TPC-H l_comment chunked 1.4862 1.47884 1.00498 ratio
vortex:parquet-zstd ratio compress time/TPC-H l_comment chunked 0.28537 0.281094 1.01521 ratio
vortex:parquet-zstd ratio decompress time/TPC-H l_comment chunked 0.416758 0.464002 0.898182 ratio
vortex size/TPC-H l_comment canonical 7.67259e+07 7.67323e+07 0.999915 bytes
parquet-zstd size/TPC-H l_comment canonical 5.69196e+07 5.69208e+07 0.999979 bytes
vortex:parquet-zstd size/TPC-H l_comment canonical 1.34797 1.34806 0.999936 ratio
vortex:parquet-zstd ratio compress time/TPC-H l_comment canonical 1.78064 1.88849 0.942892 ratio
vortex:parquet-zstd ratio decompress time/TPC-H l_comment canonical 0.434747 0.472108 0.920864 ratio
vortex size/wide table cols=10 chunks=1 rows=1000 88432 88432 1 bytes
parquet-zstd size/wide table cols=10 chunks=1 rows=1000 93484 93484 1 bytes
vortex:parquet-zstd size/wide table cols=10 chunks=1 rows=1000 0.945959 0.945959 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=10 chunks=1 rows=1000 0.912364 0.871291 1.04714 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=10 chunks=1 rows=1000 0.97778 0.919292 1.06362 ratio
vortex size/wide table cols=100 chunks=1 rows=1000 877912 877912 1 bytes
parquet-zstd size/wide table cols=100 chunks=1 rows=1000 934804 934804 1 bytes
vortex:parquet-zstd size/wide table cols=100 chunks=1 rows=1000 0.93914 0.93914 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=1 rows=1000 0.615983 0.592175 1.0402 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=1 rows=1000 0.780631 0.744623 1.04836 ratio
vortex size/wide table cols=1000 chunks=1 rows=1000 8.77271e+06 8.77271e+06 1 bytes
parquet-zstd size/wide table cols=1000 chunks=1 rows=1000 9.348e+06 9.348e+06 1 bytes
vortex:parquet-zstd size/wide table cols=1000 chunks=1 rows=1000 0.938458 0.938458 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=1 rows=1000 0.617161 0.602148 1.02493 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=1 rows=1000 1.31337 1.32544 0.990891 ratio
vortex size/wide table cols=10 chunks=50 rows=1000 88432 88432 1 bytes
parquet-zstd size/wide table cols=10 chunks=50 rows=1000 93484 93484 1 bytes
vortex:parquet-zstd size/wide table cols=10 chunks=50 rows=1000 0.945959 0.945959 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=10 chunks=50 rows=1000 2.9253 2.80945 1.04124 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=10 chunks=50 rows=1000 0.946913 0.949543 0.99723 ratio
vortex size/wide table cols=100 chunks=50 rows=1000 877912 877912 1 bytes
parquet-zstd size/wide table cols=100 chunks=50 rows=1000 934804 934804 1 bytes
vortex:parquet-zstd size/wide table cols=100 chunks=50 rows=1000 0.93914 0.93914 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=50 rows=1000 2.40546 2.74601 0.875981 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=50 rows=1000 0.779275 0.767456 1.0154 ratio
vortex size/wide table cols=1000 chunks=50 rows=1000 8.77271e+06 8.77271e+06 1 bytes
parquet-zstd size/wide table cols=1000 chunks=50 rows=1000 9.348e+06 9.348e+06 1 bytes
vortex:parquet-zstd size/wide table cols=1000 chunks=50 rows=1000 0.938458 0.938458 1 ratio
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=50 rows=1000 2.16563 2.31961 0.933619 ratio
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=50 rows=1000 1.31231 1.28744 1.01931 ratio

@github-actions
Copy link
Contributor

Benchmarks: Clickbench on NVME

Table of Results
name PR afc822f base 649f70a ratio (PR/base) unit
clickbench_q00/DataFusion:parquet 1585114 1.64437e+06 0.963964 ns
clickbench_q01/DataFusion:parquet 28756575 3.00459e+07 0.957088 ns
clickbench_q02/DataFusion:parquet 62621463 6.3637e+07 0.984041 ns
clickbench_q03/DataFusion:parquet 57739352 6.0324e+07 0.957154 ns
clickbench_q04/DataFusion:parquet 372690055 3.41364e+08 1.09177 ns
clickbench_q05/DataFusion:parquet 381408608 3.79107e+08 1.00607 ns
clickbench_q06/DataFusion:parquet 1605613 1.62595e+06 0.987494 ns
clickbench_q07/DataFusion:parquet 31050573 3.22748e+07 0.962069 ns
clickbench_q08/DataFusion:parquet 466233704 4.79807e+08 0.971712 ns
clickbench_q09/DataFusion:parquet 676972312 6.86426e+08 0.986228 ns
clickbench_q10/DataFusion:parquet 146043367 1.51447e+08 0.964319 ns
clickbench_q11/DataFusion:parquet 176905776 1.77209e+08 0.998286 ns
clickbench_q12/DataFusion:parquet 411213244 4.16919e+08 0.986314 ns
clickbench_q13/DataFusion:parquet 590333241 5.96608e+08 0.989482 ns
clickbench_q14/DataFusion:parquet 402719958 4.07498e+08 0.988275 ns
clickbench_q15/DataFusion:parquet 455708623 4.28236e+08 1.06415 ns
clickbench_q16/DataFusion:parquet 835945806 8.42876e+08 0.991778 ns
clickbench_q17/DataFusion:parquet 792418229 8.07948e+08 0.980778 ns
clickbench_q18/DataFusion:parquet 1580140380 1.55567e+09 1.01573 ns
clickbench_q19/DataFusion:parquet 46976525 4.47285e+07 1.05026 ns
clickbench_q20/DataFusion:parquet 664273786 6.60323e+08 1.00598 ns
clickbench_q21/DataFusion:parquet 739236939 7.53055e+08 0.98165 ns
clickbench_q22/DataFusion:parquet 1085547329 1.10988e+09 0.978076 ns
clickbench_q23/DataFusion:parquet 4920185144 4.87545e+09 1.00918 ns
clickbench_q24/DataFusion:parquet 258161601 2.62002e+08 0.985342 ns
clickbench_q25/DataFusion:parquet 219855093 2.26011e+08 0.972761 ns
clickbench_q26/DataFusion:parquet 288264880 2.90293e+08 0.993014 ns
clickbench_q27/DataFusion:parquet 1097761090 1.09585e+09 1.00175 ns
clickbench_q28/DataFusion:parquet 5853349804 6.08943e+09 0.961232 ns
clickbench_q29/DataFusion:parquet 247869958 2.41969e+08 1.02439 ns
clickbench_q30/DataFusion:parquet 387745529 4.08086e+08 0.950156 ns
clickbench_q31/DataFusion:parquet 437925019 4.48238e+08 0.976992 ns
clickbench_q32/DataFusion:parquet 1352216971 1.39117e+09 0.972002 ns
clickbench_q33/DataFusion:parquet 1696210668 1.74091e+09 0.974325 ns
clickbench_q34/DataFusion:parquet 1719131724 1.75894e+09 0.977368 ns
clickbench_q35/DataFusion:parquet 637934037 6.6193e+08 0.963748 ns
clickbench_q36/DataFusion:parquet 179556949 1.90264e+08 0.943724 ns
clickbench_q37/DataFusion:parquet 73223825 7.34201e+07 0.997327 ns
clickbench_q38/DataFusion:parquet 109285001 1.05885e+08 1.03211 ns
clickbench_q39/DataFusion:parquet 321044153 3.46615e+08 0.926228 ns
clickbench_q40/DataFusion:parquet 42897063 4.62919e+07 0.926664 ns
clickbench_q41/DataFusion:parquet 40108579 3.99394e+07 1.00424 ns
clickbench_q42/DataFusion:parquet 52769750 5.45141e+07 0.968002 ns
clickbench_q00/DataFusion:vortex-file-compressed 1733233 1.74912e+06 0.99092 ns
clickbench_q01/DataFusion:vortex-file-compressed 9023234 9.17891e+06 0.98304 ns
clickbench_q02/DataFusion:vortex-file-compressed 28962628 2.82787e+07 1.02419 ns
clickbench_q03/DataFusion:vortex-file-compressed 36833664 3.6426e+07 1.01119 ns
clickbench_q04/DataFusion:vortex-file-compressed 321356517 2.92983e+08 1.09684 ns
clickbench_q05/DataFusion:vortex-file-compressed 343145492 3.44601e+08 0.995777 ns
clickbench_q06/DataFusion:vortex-file-compressed 1683081 1.72616e+06 0.975041 ns
clickbench_q07/DataFusion:vortex-file-compressed 12502681 1.26358e+07 0.989468 ns
clickbench_q08/DataFusion:vortex-file-compressed 405913001 4.1601e+08 0.975728 ns
clickbench_q09/DataFusion:vortex-file-compressed 552142431 5.65689e+08 0.976053 ns
clickbench_q10/DataFusion:vortex-file-compressed 86365616 9.09462e+07 0.949634 ns
clickbench_q11/DataFusion:vortex-file-compressed 98611206 1.03411e+08 0.953584 ns
clickbench_q12/DataFusion:vortex-file-compressed 294045601 3.09761e+08 0.949266 ns
clickbench_q13/DataFusion:vortex-file-compressed 499226311 5.17197e+08 0.965253 ns
clickbench_q14/DataFusion:vortex-file-compressed 297898175 2.96337e+08 1.00527 ns
clickbench_q15/DataFusion:vortex-file-compressed 381733648 3.5832e+08 1.06534 ns
clickbench_q16/DataFusion:vortex-file-compressed 840783118 8.41083e+08 0.999643 ns
clickbench_q17/DataFusion:vortex-file-compressed 801642480 8.11577e+08 0.987759 ns
clickbench_q18/DataFusion:vortex-file-compressed 1499857981 1.59982e+09 0.937515 ns
clickbench_q19/DataFusion:vortex-file-compressed 17054338 1.8128e+07 0.940772 ns
clickbench_q20/DataFusion:vortex-file-compressed 323414146 3.7484e+08 0.862807 ns
clickbench_q21/DataFusion:vortex-file-compressed 409223604 4.08203e+08 1.0025 ns
clickbench_q22/DataFusion:vortex-file-compressed 799860306 7.99299e+08 1.0007 ns
clickbench_q23/DataFusion:vortex-file-compressed 3026857504 3.08025e+09 0.982665 ns
clickbench_q24/DataFusion:vortex-file-compressed 153998813 1.50058e+08 1.02626 ns
clickbench_q25/DataFusion:vortex-file-compressed 126088140 1.20219e+08 1.04882 ns
clickbench_q26/DataFusion:vortex-file-compressed 182763331 1.80382e+08 1.0132 ns
clickbench_q27/DataFusion:vortex-file-compressed 850662176 8.67846e+08 0.980199 ns
clickbench_q28/DataFusion:vortex-file-compressed 6622277889 6.741e+09 0.982389 ns
clickbench_q29/DataFusion:vortex-file-compressed 239125579 2.33924e+08 1.02224 ns
clickbench_q30/DataFusion:vortex-file-compressed 274581644 2.7874e+08 0.985081 ns
clickbench_q31/DataFusion:vortex-file-compressed 319957510 3.19183e+08 1.00243 ns
clickbench_q32/DataFusion:vortex-file-compressed 1362096039 1.38515e+09 0.983358 ns
clickbench_q33/DataFusion:vortex-file-compressed 1618482093 1.59839e+09 1.01257 ns
clickbench_q34/DataFusion:vortex-file-compressed 1649099561 1.68888e+09 0.976443 ns
clickbench_q35/DataFusion:vortex-file-compressed 571731008 5.89872e+08 0.969246 ns
clickbench_q36/DataFusion:vortex-file-compressed 104474811 1.10224e+08 0.947843 ns
clickbench_q37/DataFusion:vortex-file-compressed 47759314 5.34916e+07 0.892837 ns
clickbench_q38/DataFusion:vortex-file-compressed 33941140 3.92837e+07 0.864 ns
clickbench_q39/DataFusion:vortex-file-compressed 212832140 2.16489e+08 0.983108 ns
clickbench_q40/DataFusion:vortex-file-compressed 20821096 2.47936e+07 0.839777 ns
clickbench_q41/DataFusion:vortex-file-compressed 18365708 2.09625e+07 0.876121 ns
clickbench_q42/DataFusion:vortex-file-compressed 33917524 3.35505e+07 1.01094 ns
clickbench_q00/DuckDB:parquet 128791866 1.3201e+08 0.97562 ns
clickbench_q01/DuckDB:parquet 55186873 5.52189e+07 0.999419 ns
clickbench_q02/DuckDB:parquet 70186240 7.04968e+07 0.995594 ns
clickbench_q03/DuckDB:parquet 67516191 6.95237e+07 0.971124 ns
clickbench_q04/DuckDB:parquet 217765897 2.15893e+08 1.00867 ns
clickbench_q05/DuckDB:parquet 244753726 2.41893e+08 1.01182 ns
clickbench_q06/DuckDB:parquet 72503198 7.5463e+07 0.960778 ns
clickbench_q07/DuckDB:parquet 65904913 6.68558e+07 0.985777 ns
clickbench_q08/DuckDB:parquet 281164480 2.82951e+08 0.993684 ns
clickbench_q09/DuckDB:parquet 413792927 4.16258e+08 0.994077 ns
clickbench_q10/DuckDB:parquet 110837417 1.13704e+08 0.974789 ns
clickbench_q11/DuckDB:parquet 124195442 1.23693e+08 1.00406 ns
clickbench_q12/DuckDB:parquet 255677884 2.60538e+08 0.981345 ns
clickbench_q13/DuckDB:parquet 420370524 4.28204e+08 0.981705 ns
clickbench_q14/DuckDB:parquet 289780071 2.89915e+08 0.999535 ns
clickbench_q15/DuckDB:parquet 245721701 2.45754e+08 0.999867 ns
clickbench_q16/DuckDB:parquet 582590668 5.88319e+08 0.990264 ns
clickbench_q17/DuckDB:parquet 503036055 4.99004e+08 1.00808 ns
clickbench_q18/DuckDB:parquet 974933242 9.87565e+08 0.987209 ns
clickbench_q19/DuckDB:parquet 64640949 6.87048e+07 0.940851 ns
clickbench_q20/DuckDB:parquet 385534498 3.85974e+08 0.998861 ns
clickbench_q21/DuckDB:parquet 503323882 4.96624e+08 1.01349 ns
clickbench_q22/DuckDB:parquet 884049629 8.84304e+08 0.999713 ns
clickbench_q23/DuckDB:parquet 286322407 2.95332e+08 0.969495 ns
clickbench_q24/DuckDB:parquet 112556245 9.84732e+07 1.14301 ns
clickbench_q25/DuckDB:parquet 142569529 1.41444e+08 1.00796 ns
clickbench_q26/DuckDB:parquet 64300545 6.54534e+07 0.982386 ns
clickbench_q27/DuckDB:parquet 641475363 6.43296e+08 0.99717 ns
clickbench_q28/DuckDB:parquet 5694409795 5.74111e+09 0.991866 ns
clickbench_q29/DuckDB:parquet 74880153 7.70088e+07 0.972359 ns
clickbench_q30/DuckDB:parquet 301096306 3.00715e+08 1.00127 ns
clickbench_q31/DuckDB:parquet 344158645 3.44504e+08 0.998997 ns
clickbench_q32/DuckDB:parquet 1053870838 1.04073e+09 1.01263 ns
clickbench_q33/DuckDB:parquet 1067106963 1.06299e+09 1.00388 ns
clickbench_q34/DuckDB:parquet 1137784660 1.14492e+09 0.993772 ns
clickbench_q35/DuckDB:parquet 368103744 3.81109e+08 0.965876 ns
clickbench_q36/DuckDB:parquet 69126242 6.76664e+07 1.02157 ns
clickbench_q37/DuckDB:parquet 61161194 6.5039e+07 0.940378 ns
clickbench_q38/DuckDB:parquet 68473030 7.4068e+07 0.924461 ns
clickbench_q39/DuckDB:parquet 99498157 1.02079e+08 0.974722 ns
clickbench_q40/DuckDB:parquet 64439521 6.86055e+07 0.939276 ns
clickbench_q41/DuckDB:parquet 73741579 7.97428e+07 0.924743 ns
clickbench_q42/DuckDB:parquet 57414810 6.02861e+07 0.952373 ns
clickbench_q00/DuckDB:vortex-file-compressed 8830352 9.27127e+06 0.952443 ns
clickbench_q01/DuckDB:vortex-file-compressed 12873765 1.27265e+07 1.01157 ns
clickbench_q02/DuckDB:vortex-file-compressed 29341275 3.13272e+07 0.936608 ns
clickbench_q03/DuckDB:vortex-file-compressed 35839034 3.68049e+07 0.973758 ns
clickbench_q04/DuckDB:vortex-file-compressed 220324273 2.25342e+08 0.977731 ns
clickbench_q05/DuckDB:vortex-file-compressed 177806660 1.76372e+08 1.00813 ns
clickbench_q06/DuckDB:vortex-file-compressed 41661262 4.40125e+07 0.946578 ns
clickbench_q07/DuckDB:vortex-file-compressed 18358885 2.07713e+07 0.883857 ns
clickbench_q08/DuckDB:vortex-file-compressed 284118223 2.91451e+08 0.97484 ns
clickbench_q09/DuckDB:vortex-file-compressed 418781169 4.17005e+08 1.00426 ns
clickbench_q10/DuckDB:vortex-file-compressed 91358741 9.99782e+07 0.913787 ns
clickbench_q11/DuckDB:vortex-file-compressed 104163607 1.13609e+08 0.916862 ns
clickbench_q12/DuckDB:vortex-file-compressed 202912344 2.01656e+08 1.00623 ns
clickbench_q13/DuckDB:vortex-file-compressed 380467651 3.95447e+08 0.962119 ns
clickbench_q14/DuckDB:vortex-file-compressed 230671258 2.35208e+08 0.980711 ns
clickbench_q15/DuckDB:vortex-file-compressed 246085234 2.46439e+08 0.998566 ns
clickbench_q16/DuckDB:vortex-file-compressed 543078651 5.64284e+08 0.962422 ns
clickbench_q17/DuckDB:vortex-file-compressed 464120701 4.89365e+08 0.948415 ns
clickbench_q18/DuckDB:vortex-file-compressed 946336404 9.88966e+08 0.956895 ns
clickbench_q19/DuckDB:vortex-file-compressed 202795138 2.30779e+08 0.878743 ns
clickbench_q20/DuckDB:vortex-file-compressed 371904236 3.82524e+08 0.972238 ns
clickbench_q21/DuckDB:vortex-file-compressed 419818537 4.59388e+08 0.913865 ns
clickbench_q22/DuckDB:vortex-file-compressed 718178711 8.85172e+08 0.811344 ns
clickbench_q23/DuckDB:vortex-file-compressed 2189392799 3.26129e+09 0.671327 ns
clickbench_q24/DuckDB:vortex-file-compressed 118059853 1.39666e+08 0.845299 ns
clickbench_q25/DuckDB:vortex-file-compressed 79074936 8.28712e+07 0.95419 ns
clickbench_q26/DuckDB:vortex-file-compressed 117004569 1.41434e+08 0.827272 ns
clickbench_q27/DuckDB:vortex-file-compressed 677154204 6.62089e+08 1.02275 ns
clickbench_q28/DuckDB:vortex-file-compressed 5890285703 5.89032e+09 0.999995 ns
clickbench_q29/DuckDB:vortex-file-compressed 32993981 3.40868e+07 0.96794 ns
clickbench_q30/DuckDB:vortex-file-compressed 209022955 2.1054e+08 0.992793 ns
clickbench_q31/DuckDB:vortex-file-compressed 269995350 2.7311e+08 0.988597 ns
clickbench_q32/DuckDB:vortex-file-compressed 1065413791 1.11753e+09 0.953364 ns
clickbench_q33/DuckDB:vortex-file-compressed 1066003866 1.06063e+09 1.00506 ns
clickbench_q34/DuckDB:vortex-file-compressed 1179438544 1.14222e+09 1.03259 ns
clickbench_q35/DuckDB:vortex-file-compressed 412099551 4.18281e+08 0.985221 ns
clickbench_q36/DuckDB:vortex-file-compressed 71363331 6.79502e+07 1.05023 ns
clickbench_q37/DuckDB:vortex-file-compressed 26217281 3.11473e+07 0.841719 ns
clickbench_q38/DuckDB:vortex-file-compressed 43113562 4.58027e+07 0.94129 ns
clickbench_q39/DuckDB:vortex-file-compressed 150151350 1.84445e+08 0.81407 ns
clickbench_q40/DuckDB:vortex-file-compressed 20218922 2.48591e+07 0.813341 ns
clickbench_q41/DuckDB:vortex-file-compressed 20658833 2.45972e+07 0.839886 ns
clickbench_q42/DuckDB:vortex-file-compressed 30698713 3.47281e+07 0.883973 ns
clickbench_q00/DuckDB:duckdb 13413378 1.66774e+07 0.804282 ns
clickbench_q01/DuckDB:duckdb 9945367 6.12843e+06 1.62283 ns
clickbench_q02/DuckDB:duckdb 15013124 1.53901e+07 0.975508 ns
clickbench_q03/DuckDB:duckdb 20135732 1.94582e+07 1.03482 ns
clickbench_q04/DuckDB:duckdb 205897054 2.00526e+08 1.02679 ns
clickbench_q05/DuckDB:duckdb 242882173 2.44197e+08 0.994617 ns
clickbench_q06/DuckDB:duckdb 13951599 1.54683e+07 0.901947 ns
clickbench_q07/DuckDB:duckdb 6352292 5.4336e+06 1.16908 ns
clickbench_q08/DuckDB:duckdb 252751426 2.54669e+08 0.992469 ns
clickbench_q09/DuckDB:duckdb 357727764 3.59126e+08 0.996107 ns
clickbench_q10/DuckDB:duckdb 78426771 7.82894e+07 1.00175 ns
clickbench_q11/DuckDB:duckdb 84711349 8.46817e+07 1.00035 ns
clickbench_q12/DuckDB:duckdb 205435677 2.08214e+08 0.986658 ns
clickbench_q13/DuckDB:duckdb 355197207 3.49799e+08 1.01543 ns
clickbench_q14/DuckDB:duckdb 218849821 2.20789e+08 0.991218 ns
clickbench_q15/DuckDB:duckdb 224641755 2.24669e+08 0.999878 ns
clickbench_q16/DuckDB:duckdb 512543169 5.16414e+08 0.992504 ns
clickbench_q17/DuckDB:duckdb 427686975 4.30902e+08 0.992539 ns
clickbench_q18/DuckDB:duckdb 847125607 8.5735e+08 0.988074 ns
clickbench_q19/DuckDB:duckdb 2782157 3.40034e+06 0.818201 ns
clickbench_q20/DuckDB:duckdb 291446481 2.96491e+08 0.982986 ns
clickbench_q21/DuckDB:duckdb 246888589 2.57299e+08 0.95954 ns
clickbench_q22/DuckDB:duckdb 380594580 3.97292e+08 0.957973 ns
clickbench_q23/DuckDB:duckdb 46407654 4.53086e+07 1.02426 ns
clickbench_q24/DuckDB:duckdb 15168850 1.58461e+07 0.957262 ns
clickbench_q25/DuckDB:duckdb 78732938 7.83645e+07 1.0047 ns
clickbench_q26/DuckDB:duckdb 13837495 1.41278e+07 0.979448 ns
clickbench_q27/DuckDB:duckdb 375892003 3.84874e+08 0.976663 ns
clickbench_q28/DuckDB:duckdb 5514219183 5.54605e+09 0.994261 ns
clickbench_q29/DuckDB:duckdb 21739725 2.2549e+07 0.964109 ns
clickbench_q30/DuckDB:duckdb 200131383 1.97532e+08 1.01316 ns
clickbench_q31/DuckDB:duckdb 238637320 2.40978e+08 0.990287 ns
clickbench_q32/DuckDB:duckdb 975925449 9.96014e+08 0.979831 ns
clickbench_q33/DuckDB:duckdb 860527666 8.75589e+08 0.982799 ns
clickbench_q34/DuckDB:duckdb 944895515 9.56633e+08 0.987731 ns
clickbench_q35/DuckDB:duckdb 304291434 2.82017e+08 1.07898 ns
clickbench_q36/DuckDB:duckdb 23940554 2.58667e+07 0.925536 ns
clickbench_q37/DuckDB:duckdb 6779103 5.01098e+06 1.35285 ns
clickbench_q38/DuckDB:duckdb 7149434 7.07421e+06 1.01063 ns
clickbench_q39/DuckDB:duckdb 45411114 4.64516e+07 0.9776 ns
clickbench_q40/DuckDB:duckdb 4270192 4.20112e+06 1.01644 ns
clickbench_q41/DuckDB:duckdb 5094953 4.66721e+06 1.09165 ns
clickbench_q42/DuckDB:duckdb 8503474 8.19918e+06 1.03711 ns

@a10y
Copy link
Contributor Author

a10y commented Jul 16, 2025

Clickbench/TPC-H seem relatively unchanged, some things got up to 20% faster but I think that could just be noise. One of the compression benchmarks got 18% slower, I retriggered to see if that's real or not

@a10y
Copy link
Contributor Author

a10y commented Jul 16, 2025

It looks like that one slowdown persisted, I can't replicate it though (at least not on M1)

develop:

image

PR:

image

@robert3005
Copy link
Contributor

Is this one of the cases where we call extend instead of extendtrusted?

@robert3005
Copy link
Contributor

I found that the extend changes didn’t manifest on macOS but would on Linux

@a10y
Copy link
Contributor Author

a10y commented Jul 16, 2025

I just ran the experiment again on a c5.12xlarge and the results were similar to mac, if anything slightly faster on the PR branch

image

@robert3005
Copy link
Contributor

Ok, then let’s assume this a flake and move on

# vortex-duckdb-ext currently fails linking for cargo test targets.
run: |
cargo nextest run --locked --workspace --all-features --no-fail-fast --target x86_64-unknown-linux-gnu
cargo +nightly nextest run --locked --workspace --all-features --no-fail-fast --target x86_64-unknown-linux-gnu
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interesting that this uses nightly, I thought nextest would be fine on stable

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only for the Rust testing with ASAN job. That requires unstable -Z sanitizer flag

Copy link
Contributor

@robert3005 robert3005 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

part of me thinks we shouldn't raise MSRV but part of me thinks maybe we can?

@a10y a10y merged commit c886f1c into develop Jul 16, 2025
51 checks passed
@a10y a10y deleted the aduffy/stable-rust branch July 16, 2025 22:49
@a10y
Copy link
Contributor Author

a10y commented Jul 16, 2025

I think we can probably bump it whenever we want/whenever we need new features

@a10y a10y mentioned this pull request Oct 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Release label indicating a new feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support building on Stable Rust

5 participants