# Vortex Benchmarks > Benchmark results for Vortex, an open-source columnar file format, compared with Apache Parquet, Lance, and Arrow IPC: scan and write throughput, file size, random access, and TPC-H, TPC-DS, ClickBench, and other query suites on DuckDB and DataFusion. Vortex (https://vortex.dev) is an Apache-2.0 project of the Linux Foundation. The benchmarks run on every push to the `develop` branch of https://github.com/vortex-data/vortex and nightly, and each summary below uses each series' newest result there. These summaries were read at 2026-11-11 13:20 UTC. How the benchmarks are run: https://bench.vortex.dev/methodology ## Methodology ### When the benchmarks run Every push to the develop branch of https://github.com/vortex-data/vortex runs the compression, string encoding, random access, and SQL query benchmarks, and bench records their results. A nightly run at 00:00 UTC adds TPC-H at scale factor 100 and TPC-DS at scale factors 10 and 100. Benchmarks that run on pull requests only comment on the pull request. Their results never reach bench. ### Machines and storage The benchmarks run on dedicated AWS c8gd.metal-24xl instances (Graviton4, arm64) in us-east-1, with binaries built for the host CPU (-C target-cpu=native). Before a run, the machine sets the performance CPU governor and turns swap off. NVMe results read files from the instance’s local disk. S3 results read the same files from an S3 bucket in us-east-1. ### Engines and formats Queries run on DataFusion 55 and DuckDB 2.0. The formats are Vortex (its default and compact write strategies), Apache Parquet, Lance 13, Arrow IPC, DuckDB’s own format, and, for random access, LitData. Not every suite runs every format. The compression and file size benchmarks write Parquet with parquet-rs 59 and zstd at level 3. ClickBench reads its published Parquet files. ### How a result is measured SQL suites drop the operating system’s page cache before each query, run it several times, and record the median time. Most suites run each query 5 times. TPC-H at scale factors 1 and 10 and Appian run it 10 times, TPC-DS at scale factor 100 runs it 3 times, and the Vortex queries run it 100 times. Random access drops the page cache before each dataset, format, access pattern, and open mode, repeats the lookups for 10 seconds, and records the median. Hot results keep one file open after a one-second untimed warm-up. Cold results open the file again, footer included, for each lookup. The compression benchmark drops the page cache before each dataset, writes and scans it 5 times, and records the fastest run. ### How the summaries are scored A query suite’s score is the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Random access scores are the geometric mean, over the datasets, of the series’ time divided by the fastest series’ time on that dataset. 1.00× is the fastest. Lower is better. In both, a query or dataset a series did not run counts as twice that series’ own slowest time, and at least twice the fastest series’ time, so a series cannot rank well by skipping work. Each summary says how many a series ran. Write and scan throughput scores are the geometric mean, over the datasets, of the format’s throughput divided by Parquet’s. Higher is better. File size scores are the geometric mean, over the datasets, of the format’s file size divided by Parquet’s. Lower is better. Total is the sum of a format’s file sizes over the datasets that every format has. The compression summaries leave out the wide table and sparse-wide datasets, which have many variants each. The file size summary also leaves out statpopgen, and counts the TPC-H l_comment column once, because its canonical and chunked files are the same size. These datasets still have charts. The string encoding benchmark compares its encoders with FSST instead of Parquet, so its throughput and size scores divide by FSST’s. Each summary uses each series’ newest result on develop. ## Results ### Compression Measures write and scan throughput for Vortex, Parquet, and Lance files. Vortex compared with Parquet: encode 1.9× · decode 5.1× faster than Parquet. Score: the geometric mean, over the datasets, of the format’s throughput divided by Parquet’s. Higher is better. Write throughput: 1. Vortex: 1.91x Parquet, 1951 MB/s 2. Parquet: the baseline, 1188 MB/s 3. Lance: 0.67x Parquet, 748 MB/s Scan throughput: 1. Vortex: 5.08x Parquet, 21.02 GB/s 2. Parquet: the baseline, 4.42 GB/s 3. Lance: 0.96x Parquet, 4.90 GB/s - [Compression charts](https://bench.vortex.dev/#compression): 23 charts of the results over recent commits - [What Compression measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/compress-bench/README.md) ### Compression Size Compares compressed file sizes and compression ratios across different encoding strategies. Vortex compared with Parquet: 11% larger than Parquet. Score: the geometric mean, over the datasets, of the format’s file size divided by Parquet’s. Lower is better. 1. Parquet: the baseline, 6.46x smaller than Arrow in memory, 1,428.2 MB in total 2. Vortex: 1.11x the size of Parquet (from 0.677x to 1.48x across datasets), 5.84x smaller than Arrow in memory, 1,593.1 MB in total 3. Lance: 2.11x the size of Parquet (from 1.58x to 2.74x across datasets), 3.05x smaller than Arrow in memory, 3,113.0 MB in total 4. Arrow IPC: 5.87x the size of Parquet (from 3.24x to 9.1x across datasets), 1.1x smaller than Arrow in memory, 9,050.7 MB in total - [Compression Size charts](https://bench.vortex.dev/#compression-size): 32 charts of the results over recent commits - [What Compression Size measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/compress-bench/README.md) ### String Encoding Measures Vortex file write and scan throughput for each string encoder. Score: the geometric mean, over the datasets, of the format’s throughput divided by FSST’s. Higher is better. Write throughput: 1. FSST: the baseline, 223 MB/s 2. onpair-12: 0.64x FSST, 153 MB/s 3. onpair-16: 0.62x FSST, 148 MB/s Scan throughput: 1. onpair-16: 1.22x FSST, 4.56 GB/s 2. onpair-12: 1.20x FSST, 4.59 GB/s 3. FSST: the baseline, 3.71 GB/s - [String Encoding charts](https://bench.vortex.dev/#string-encoding): 21 charts of the results over recent commits - [What String Encoding measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/string-bench/README.md) ### String Encoding Size Compares Vortex file sizes for each string encoder. Score: the geometric mean, over the datasets, of the format’s file size divided by FSST’s. Lower is better. 1. onpair-16: 0.777x the size of FSST (from 0.607x to 0.9x across datasets), 2.76x smaller than Arrow in memory, 236.2 MB in total 2. onpair-12: 0.778x the size of FSST (from 0.6x to 0.877x across datasets), 2.76x smaller than Arrow in memory, 234.5 MB in total 3. FSST: the baseline, 2.14x smaller than Arrow in memory, 307.4 MB in total - [String Encoding Size charts](https://bench.vortex.dev/#string-encoding-size): 21 charts of the results over recent commits - [What String Encoding Size measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/string-bench/README.md) ### Random Access (NVMe) Tests performance of selecting arbitrary row indices from a file on NVMe storage. Vortex compared with Parquet: hot 92× · cold 28× faster than Parquet. Score: the geometric mean, over the datasets, of the series’ time divided by the fastest series’ time on that dataset. 1.00× is the fastest. Lower is better. Mean: the mean time per dataset. Hot (the accessor is reused after a one-second warm-up): 1. Vortex: 1.00x the fastest, mean 857.53 us (all 4 datasets) 2. litdata: 2.24x the fastest, mean 1.75 ms (all 4 datasets) 3. Lance: 2.90x the fastest, mean 3.16 ms (all 4 datasets) 4. Arrow IPC: 5.25x the fastest, mean 15.84 ms (all 4 datasets) 5. Parquet: 92.19x the fastest, mean 77.85 ms (all 4 datasets) Cold (a new accessor opens inside each timed take): 1. Vortex: 1.29x the fastest, mean 3.15 ms (all 4 datasets) 2. Lance: 1.86x the fastest, mean 4.66 ms (all 4 datasets) 3. Arrow IPC: 2.19x the fastest, mean 16.42 ms (all 4 datasets) 4. litdata: 20.10x the fastest, mean 46.68 ms (all 4 datasets) 5. Parquet: 35.50x the fastest, mean 77.89 ms (all 4 datasets) - [Random Access (NVMe) charts](https://bench.vortex.dev/#random-access-nvme): 9 charts of the results over recent commits - [What Random Access (NVMe) measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/random-access-bench/README.md) ### Random Access (S3) Tests performance of selecting arbitrary row indices from a file on S3 storage. Vortex compared with Parquet: hot 75× · cold 2.4× faster than Parquet. Score: the geometric mean, over the datasets, of the series’ time divided by the fastest series’ time on that dataset. 1.00× is the fastest. Lower is better. Mean: the mean time per dataset. Hot (the accessor is reused after a one-second warm-up): 1. Vortex: 1.00x the fastest, mean 25.28 ms (all 4 datasets) 2. Lance: 26.09x the fastest, mean 172.93 ms (all 4 datasets) 3. Parquet: 74.98x the fastest, mean 479.95 ms (all 4 datasets) Cold (a new accessor opens inside each timed take): 1. Vortex: 1.00x the fastest, mean 261.67 ms (all 4 datasets) 2. Lance: 2.33x the fastest, mean 614.31 ms (all 4 datasets) 3. Parquet: 2.45x the fastest, mean 629.62 ms (all 4 datasets) - [Random Access (S3) charts](https://bench.vortex.dev/#random-access-s3): 9 charts of the results over recent commits - [What Random Access (S3) measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/random-access-bench/README.md) ### Clickbench ClickHouse's analytical benchmark suite testing real-world query patterns on web analytics data. Vortex compared with Parquet: DuckDB 1.9× · DataFusion 1.6× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.11x the fastest, total 3.57 s (all 43 queries) 2. DataFusion on Vortex: 1.23x the fastest, total 3.81 s (all 43 queries) 3. DuckDB on Vortex (compact): 1.32x the fastest, total 4.14 s (all 43 queries) 4. DataFusion on Vortex (compact): 1.50x the fastest, total 4.45 s (all 43 queries) 5. DataFusion on Parquet: 2.00x the fastest, total 5.90 s (all 43 queries) 6. DuckDB on DuckDB's own format: 2.02x the fastest, total 5.29 s (all 43 queries) 7. DuckDB on Parquet: 2.07x the fastest, total 5.60 s (all 43 queries) 8. DataFusion on Lance: 17.56x the fastest, total 48.55 s (all 43 queries) - [Clickbench charts](https://bench.vortex.dev/#clickbench): 43 charts of the results over recent commits - [What Clickbench measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/clickbench.md) ### TPC-H (NVMe) (SF=1) TPC-H benchmark queries on local NVMe storage at SF=1 (~1GB of data). Vortex compared with Parquet: DuckDB 3.6× · DataFusion 3.9× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on DuckDB's own format: 1.12x the fastest, total 336.62 ms (all 22 queries) 2. DuckDB on Vortex: 1.31x the fastest, total 384.98 ms (all 22 queries) 3. DuckDB on Vortex (compact): 1.43x the fastest, total 417.15 ms (all 22 queries) 4. DataFusion on Vortex: 1.69x the fastest, total 522.72 ms (all 22 queries) 5. DataFusion on Vortex (compact): 1.80x the fastest, total 546.41 ms (all 22 queries) 6. DataFusion on Arrow: 3.30x the fastest, total 1.08 s (all 22 queries) 7. DuckDB on Parquet: 4.71x the fastest, total 1.39 s (all 22 queries) 8. DataFusion on Lance: 6.37x the fastest, total 2.03 s (all 22 queries) 9. DataFusion on Parquet: 6.52x the fastest, total 1.86 s (all 22 queries) - [TPC-H (NVMe) (SF=1) charts](https://bench.vortex.dev/#tpc-h-nvme-sf-1): 22 charts of the results over recent commits - [What TPC-H (NVMe) (SF=1) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-H (S3) (SF=1) TPC-H benchmark queries against S3 storage at SF=1 (~1GB of data). Vortex compared with Parquet: DuckDB ≈ same · DataFusion 1.1× slower vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Parquet: 1.15x the fastest, total 5.55 s (all 22 queries) 2. DataFusion on Vortex (compact): 1.24x the fastest, total 5.91 s (all 22 queries) 3. DataFusion on Vortex: 1.27x the fastest, total 6.18 s (all 22 queries) 4. DuckDB on Vortex (compact): 1.48x the fastest, total 7.12 s (all 22 queries) 5. DataFusion on Lance: 1.51x the fastest, total 7.69 s (all 22 queries) 6. DuckDB on Vortex: 1.57x the fastest, total 7.50 s (all 22 queries) 7. DuckDB on Parquet: 1.57x the fastest, total 7.71 s (all 22 queries) - [TPC-H (S3) (SF=1) charts](https://bench.vortex.dev/#tpc-h-s3-sf-1): 22 charts of the results over recent commits - [What TPC-H (S3) (SF=1) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-H (NVMe) (SF=10) TPC-H benchmark queries on local NVMe storage at SF=10 (~10GB of data). Vortex compared with Parquet: DuckDB 2.5× · DataFusion 2.4× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on DuckDB's own format: 1.15x the fastest, total 1.01 s (all 22 queries) 2. DuckDB on Vortex: 1.30x the fastest, total 1.15 s (all 22 queries) 3. DuckDB on Vortex (compact): 1.47x the fastest, total 1.28 s (all 22 queries) 4. DataFusion on Vortex: 1.75x the fastest, total 1.77 s (all 22 queries) 5. DataFusion on Vortex (compact): 1.97x the fastest, total 1.89 s (all 22 queries) 6. DuckDB on Parquet: 3.27x the fastest, total 2.90 s (all 22 queries) 7. DataFusion on Parquet: 4.16x the fastest, total 3.59 s (all 22 queries) 8. DataFusion on Arrow: 14.67x the fastest, total 16.39 s (all 22 queries) 9. DataFusion on Lance: 24.50x the fastest, total 23.46 s (all 22 queries) - [TPC-H (NVMe) (SF=10) charts](https://bench.vortex.dev/#tpc-h-nvme-sf-10): 22 charts of the results over recent commits - [What TPC-H (NVMe) (SF=10) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-H (S3) (SF=10) TPC-H benchmark queries against S3 storage at SF=10 (~10GB of data). Vortex compared with Parquet: DuckDB 1.6× slower · DataFusion ≈ same vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex (compact): 1.15x the fastest, total 11.99 s (all 22 queries) 2. DataFusion on Parquet: 1.17x the fastest, total 12.27 s (all 22 queries) 3. DataFusion on Vortex: 1.21x the fastest, total 12.65 s (all 22 queries) 4. DuckDB on Parquet: 1.29x the fastest, total 13.17 s (all 22 queries) 5. DuckDB on Vortex (compact): 1.93x the fastest, total 20.37 s (all 22 queries) 6. DuckDB on Vortex: 2.04x the fastest, total 21.61 s (all 22 queries) 7. DataFusion on Lance: 3.50x the fastest, total 43.02 s (all 22 queries) - [TPC-H (S3) (SF=10) charts](https://bench.vortex.dev/#tpc-h-s3-sf-10): 22 charts of the results over recent commits - [What TPC-H (S3) (SF=10) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-H (NVMe) (SF=100) TPC-H benchmark queries on local NVMe storage at SF=100 (~100GB of data). Vortex compared with Parquet: DuckDB 1.7× · DataFusion 2.0× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.14x the fastest, total 7.15 s (all 22 queries) 2. DataFusion on Vortex: 1.56x the fastest, total 12.54 s (all 22 queries) 3. DuckDB on Parquet: 1.90x the fastest, total 11.23 s (all 22 queries) 4. DataFusion on Parquet: 3.11x the fastest, total 19.76 s (all 22 queries) - [TPC-H (NVMe) (SF=100) charts](https://bench.vortex.dev/#tpc-h-nvme-sf-100): 22 charts of the results over recent commits - [What TPC-H (NVMe) (SF=100) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-H (S3) (SF=100) TPC-H benchmark queries against S3 storage at SF=100 (~100GB of data). Vortex compared with Parquet: DuckDB 4.2× slower · DataFusion 1.1× faster vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Parquet: 1.02x the fastest, total 35.72 s (all 22 queries) 2. DataFusion on Vortex: 1.39x the fastest, total 50.24 s (all 22 queries) 3. DataFusion on Parquet: 1.50x the fastest, total 52.89 s (all 22 queries) 4. DuckDB on Vortex: 4.32x the fastest, total 172.77 s (all 22 queries) - [TPC-H (S3) (SF=100) charts](https://bench.vortex.dev/#tpc-h-s3-sf-100): 22 charts of the results over recent commits - [What TPC-H (S3) (SF=100) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpch/README.md) ### TPC-DS (NVMe) (SF=1) TPC-DS benchmark queries on local NVMe storage at SF=1. Vortex compared with Parquet: DuckDB 1.3× · DataFusion 1.5× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on DuckDB's own format: 1.02x the fastest, total 1.69 s (all 99 queries) 2. DuckDB on Vortex: 1.36x the fastest, total 2.11 s (all 99 queries) 3. DuckDB on Vortex (compact): 1.56x the fastest, total 2.38 s (all 99 queries) 4. DuckDB on Parquet: 1.80x the fastest, total 2.82 s (all 99 queries) 5. DataFusion on Vortex: 2.21x the fastest, total 4.17 s (all 99 queries) 6. DataFusion on Vortex (compact): 2.50x the fastest, total 4.80 s (all 99 queries) 7. DataFusion on Parquet: 3.26x the fastest, total 6.01 s (all 99 queries) - [TPC-DS (NVMe) (SF=1) charts](https://bench.vortex.dev/#tpc-ds-nvme-sf-1): 99 charts of the results over recent commits - [What TPC-DS (NVMe) (SF=1) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpcds/README.md) ### TPC-DS (NVMe) (SF=10) TPC-DS benchmark queries on local NVMe storage at SF=10. Vortex compared with Parquet: DuckDB 1.5× · DataFusion 1.6× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.05x the fastest, total 5.02 s (all 99 queries) 2. DataFusion on Vortex: 1.40x the fastest, total 9.64 s (all 99 queries) 3. DuckDB on Parquet: 1.53x the fastest, total 6.98 s (all 99 queries) 4. DataFusion on Parquet: 2.28x the fastest, total 13.89 s (all 99 queries) - [TPC-DS (NVMe) (SF=10) charts](https://bench.vortex.dev/#tpc-ds-nvme-sf-10): 99 charts of the results over recent commits - [What TPC-DS (NVMe) (SF=10) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpcds/README.md) ### TPC-DS (NVMe) (SF=100) TPC-DS benchmark queries on local NVMe storage at SF=100. Vortex compared with Parquet: DuckDB 1.2× · DataFusion 1.9× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.17x the fastest, total 22.99 s (all 99 queries) 2. DuckDB on Parquet: 1.41x the fastest, total 26.96 s (all 99 queries) 3. DataFusion on Vortex: 1.44x the fastest, total 120.86 s (all 99 queries) 4. DataFusion on Parquet: 2.80x the fastest, total 147.69 s (all 99 queries) - [TPC-DS (NVMe) (SF=100) charts](https://bench.vortex.dev/#tpc-ds-nvme-sf-100): 99 charts of the results over recent commits - [What TPC-DS (NVMe) (SF=100) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpcds/README.md) ### TPC-DS (S3) (SF=10) TPC-DS benchmark queries against S3 storage at SF=10. Vortex compared with Parquet: DuckDB 1.1× slower · DataFusion ≈ same vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex: 1.30x the fastest, total 59.91 s (all 99 queries) 2. DataFusion on Parquet: 1.35x the fastest, total 67.20 s (all 99 queries) 3. DuckDB on Parquet: 1.44x the fastest, total 59.73 s (all 99 queries) 4. DuckDB on Vortex: 1.56x the fastest, total 69.13 s (all 99 queries) - [TPC-DS (S3) (SF=10) charts](https://bench.vortex.dev/#tpc-ds-s3-sf-10): 99 charts of the results over recent commits - [What TPC-DS (S3) (SF=10) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpcds/README.md) ### TPC-DS (S3) (SF=100) TPC-DS benchmark queries against S3 storage at SF=100. Vortex compared with Parquet: DuckDB 1.8× slower · DataFusion 1.7× faster vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex: 1.22x the fastest, total 235.82 s (all 99 queries) 2. DuckDB on Parquet: 1.35x the fastest, total 158.88 s (all 99 queries) 3. DataFusion on Parquet: 2.12x the fastest, total 355.98 s (all 99 queries) 4. DuckDB on Vortex: 2.39x the fastest, total 332.13 s (all 99 queries) - [TPC-DS (S3) (SF=100) charts](https://bench.vortex.dev/#tpc-ds-s3-sf-100): 99 charts of the results over recent commits - [What TPC-DS (S3) (SF=100) measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/tpcds/README.md) ### Statistical and Population Genetics A suite of statistical and population genetics queries using the gnomAD dataset. Vortex compared with Parquet: DuckDB 2.0× · DataFusion 2.0× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex: 1.27x the fastest, total 3.23 s (all 11 queries) 2. DataFusion on Vortex (compact): 1.44x the fastest, total 3.72 s (all 11 queries) 3. DataFusion on Parquet: 2.48x the fastest, total 3.82 s (all 11 queries) 4. DuckDB on Vortex: 3.15x the fastest, total 8.13 s (all 11 queries) 5. DuckDB on Vortex (compact): 3.50x the fastest, total 8.56 s (all 11 queries) 6. DuckDB on Parquet: 6.27x the fastest, total 6.75 s (all 11 queries) - [Statistical and Population Genetics charts](https://bench.vortex.dev/#statistical-and-population-genetics): 11 charts of the results over recent commits - [What Statistical and Population Genetics measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/statpopgen.md) ### Polar Signals Profiling Profiling data benchmark modeled on Polar Signals/Parca, exercising scan-layer performance with projection and filter pushdown on deeply nested schemas. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex: 1.00x the fastest, total 485.27 ms (all 11 queries) - [Polar Signals Profiling charts](https://bench.vortex.dev/#polarsignals-profiling): 11 charts of the results over recent commits - [What Polar Signals Profiling measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/polarsignals.md) ### fineweb [nvme] Vortex compared with Parquet: DuckDB 5.0× · DataFusion 3.3× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.05x the fastest, total 220.91 ms (all 9 queries) 2. DataFusion on Vortex: 1.30x the fastest, total 220.65 ms (all 9 queries) 3. DuckDB on Vortex (compact): 3.98x the fastest, total 955.21 ms (all 9 queries) 4. DataFusion on Parquet: 4.35x the fastest, total 618.27 ms (all 9 queries) 5. DuckDB on Parquet: 5.26x the fastest, total 790.76 ms (all 9 queries) 6. DataFusion on Vortex (compact): 5.54x the fastest, total 1.06 s (all 9 queries) - [fineweb [nvme] charts](https://bench.vortex.dev/#fineweb-nvme): 9 charts of the results over recent commits - [What fineweb [nvme] measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/fineweb.md) ### fineweb [s3] Vortex compared with Parquet: DuckDB 1.4× · DataFusion 2.4× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Vortex: 1.03x the fastest, total 2.92 s (all 9 queries) 2. DataFusion on Vortex (compact): 1.14x the fastest, total 3.34 s (all 9 queries) 3. DuckDB on Vortex: 1.66x the fastest, total 5.38 s (all 9 queries) 4. DuckDB on Vortex (compact): 1.77x the fastest, total 5.55 s (all 9 queries) 5. DuckDB on Parquet: 2.24x the fastest, total 5.68 s (all 9 queries) 6. DataFusion on Parquet: 2.47x the fastest, total 6.09 s (all 9 queries) - [fineweb [s3] charts](https://bench.vortex.dev/#fineweb-s3): 9 charts of the results over recent commits - [What fineweb [s3] measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/fineweb.md) ### appian [nvme] Vortex compared with Parquet: DuckDB 1.1× slower · DataFusion 1.3× faster vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on DuckDB's own format: 1.13x the fastest, total 1.61 s (all 8 queries) 2. DuckDB on Parquet: 1.23x the fastest, total 1.66 s (all 8 queries) 3. DuckDB on Vortex: 1.30x the fastest, total 1.81 s (all 8 queries) 4. DuckDB on Vortex (compact): 1.32x the fastest, total 1.86 s (all 8 queries) 5. DataFusion on Vortex: 1.89x the fastest, total 11.04 s (all 8 queries) 6. DataFusion on Vortex (compact): 1.90x the fastest, total 11.04 s (all 8 queries) 7. DataFusion on Parquet: 2.37x the fastest, total 11.42 s (all 8 queries) - [appian [nvme] charts](https://bench.vortex.dev/#appian-nvme): 8 charts of the results over recent commits - [What appian [nvme] measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/appian/README.md) ### clickbench-sorted [nvme] Vortex compared with Parquet: DuckDB 2.1× · DataFusion 3.1× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.05x the fastest, total 202.54 ms (all 10 queries) 2. DataFusion on Vortex: 1.13x the fastest, total 247.75 ms (all 10 queries) 3. DuckDB on Vortex (compact): 1.40x the fastest, total 268.06 ms (all 10 queries) 4. DataFusion on Vortex (compact): 1.72x the fastest, total 503.94 ms (all 10 queries) 5. DuckDB on DuckDB's own format: 2.05x the fastest, total 346.90 ms (all 10 queries) 6. DuckDB on Parquet: 2.20x the fastest, total 443.43 ms (all 10 queries) 7. DataFusion on Parquet: 3.47x the fastest, total 1.26 s (all 10 queries) 8. DataFusion on Lance: 75.40x the fastest, total 20.06 s (all 10 queries) - [clickbench-sorted [nvme] charts](https://bench.vortex.dev/#clickbench-sorted-nvme): 10 charts of the results over recent commits - [What clickbench-sorted [nvme] measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/clickbench.md#sorted-variant) ### job [nvme] Vortex compared with Parquet: DuckDB 3.8× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on DuckDB's own format: 1.08x the fastest, total 4.82 s (all 113 queries) 2. DuckDB on Vortex: 1.28x the fastest, total 5.50 s (all 113 queries) 3. DuckDB on Parquet: 4.90x the fastest, total 20.16 s (all 113 queries) - [job [nvme] charts](https://bench.vortex.dev/#job-nvme): 113 charts of the results over recent commits ### tpch-nested/list sf=1 [nvme] Vortex compared with Parquet: DuckDB 7.7× · DataFusion 7.8× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.13x the fastest, total 734.85 ms (all 22 queries) 2. DuckDB on DuckDB's own format: 1.23x the fastest, total 778.87 ms (all 22 queries) 3. DuckDB on Vortex (compact): 1.45x the fastest, total 936.27 ms (all 22 queries) 4. DataFusion on Vortex: 1.49x the fastest, total 1.01 s (all 22 queries) 5. DataFusion on Vortex (compact): 1.74x the fastest, total 1.15 s (all 22 queries) 6. DataFusion on Lance: 5.47x the fastest, total 4.74 s (all 22 queries) 7. DuckDB on Parquet: 8.71x the fastest, total 5.57 s (all 22 queries) 8. DataFusion on Parquet: 11.63x the fastest, total 7.59 s (all 22 queries) - [tpch-nested/list sf=1 [nvme] charts](https://bench.vortex.dev/#tpch-nested-list-sf-1-nvme): 22 charts of the results over recent commits ### tpch-nested/list sf=100 [nvme] Vortex compared with Parquet: DuckDB 1.5× · DataFusion 1.9× faster than Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DuckDB on Vortex: 1.07x the fastest, total 26.68 s (all 22 queries) 2. DataFusion on Vortex: 1.41x the fastest, total 42.39 s (all 22 queries) 3. DuckDB on Parquet: 1.62x the fastest, total 37.54 s (all 22 queries) 4. DataFusion on Parquet: 2.67x the fastest, total 67.06 s (all 22 queries) - [tpch-nested/list sf=100 [nvme] charts](https://bench.vortex.dev/#tpch-nested-list-sf-100-nvme): 22 charts of the results over recent commits ### vortex [nvme] Vortex compared with Parquet: DuckDB 1.6× faster · DataFusion 1.5× slower vs Parquet. Score: the geometric mean, over the queries, of the series’ time divided by the fastest series’ time on that query. 1.00× is the fastest. Lower is better. Total: the sum of the newest time of each query. 1. DataFusion on Parquet: 1.16x the fastest, total 489.49 ms (all 3 queries) 2. DuckDB on Vortex: 1.26x the fastest, total 474.52 ms (all 3 queries) 3. DataFusion on Vortex: 1.70x the fastest, total 658.50 ms (all 3 queries) 4. DuckDB on Parquet: 2.07x the fastest, total 774.67 ms (all 3 queries) - [vortex [nvme] charts](https://bench.vortex.dev/#vortex-nvme): 3 charts of the results over recent commits - [What vortex [nvme] measures](https://github.com/vortex-data/vortex/blob/develop/vortex-bench/sql/vortex/README.md) ## Optional - [Methodology](https://bench.vortex.dev/methodology): the machines, engines, and scoring - [Vortex documentation](https://docs.vortex.dev/llms.txt) - [Vortex homepage](https://vortex.dev/llms.txt) - [Benchmark source code](https://github.com/vortex-data/vortex/tree/develop/vortex-bench)