# 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-15 01:21 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 2.7× · decode 6.8× 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: 2.70x Parquet, 2067 MB/s 2. Parquet: the baseline, 1099 MB/s 3. Lance: 0.74x Parquet, 680 MB/s Scan throughput: 1. Vortex: 6.77x Parquet, 11.34 GB/s 2. Lance: 1.37x Parquet, 3.13 GB/s 3. Parquet: the baseline, 2.99 GB/s - [Compression charts](https://bench.vortex.dev/#compression): 26 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, 5.92x smaller than Arrow in memory, 1,546.6 MB in total 2. Vortex: 1.11x the size of Parquet (from 0.677x to 1.48x across datasets), 5.31x smaller than Arrow in memory, 1,736.7 MB in total 3. Lance: 2.02x the size of Parquet (from 1.55x to 2.74x across datasets), 2.93x smaller than Arrow in memory, 3,325.2 MB in total 4. Arrow IPC: 5.42x the size of Parquet (from 3.24x to 9.1x across datasets), 1.09x smaller than Arrow in memory, 9,561.6 MB in total - [Compression Size charts](https://bench.vortex.dev/#compression-size): 35 charts of the results over recent commits - [What Compression Size measures](https://github.com/vortex-data/vortex/blob/develop/benchmarks/compress-bench/README.md) ### SQL File Size Tracks the total size of the Vortex files each SQL benchmark writes, per benchmark and scale factor. Score: the geometric mean, over the datasets, of the format’s file size divided by vortex’s. Lower is better. 1. Vortex (compact): 0.724x the size of vortex (from 0.537x to 0.859x across datasets), 22,553.3 MB in total 2. Vortex: 1x the size of vortex (from 1x to 1x across datasets), 31,477.2 MB in total 3. Parquet: 1.02x the size of vortex (from 0.771x to 2.42x across datasets), 30,955.9 MB in total 4. DuckDB's own format: 1.36x the size of vortex (from 1.04x to 2.14x across datasets), 60,934.6 MB in total 5. Lance: 1.97x the size of vortex (from 1.85x to 2.28x across datasets), 67,351.1 MB in total - [SQL File Size charts](https://bench.vortex.dev/#sql-file-size): 16 charts of the results over recent commits ### Random Access (NVMe) Tests performance of selecting arbitrary row indices from a file on NVMe storage. Vortex compared with Parquet: hot 94× · 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 848.05 us (all 4 datasets) 2. litdata: 2.24x the fastest, mean 1.72 ms (all 4 datasets) 3. Lance: 2.88x the fastest, mean 3.06 ms (all 4 datasets) 4. Arrow IPC: 5.23x the fastest, mean 15.79 ms (all 4 datasets) 5. Parquet: 93.83x the fastest, mean 77.83 ms (all 4 datasets) Cold (a new accessor opens inside each timed take): 1. Vortex: 1.30x the fastest, mean 3.15 ms (all 4 datasets) 2. Lance: 1.85x the fastest, mean 4.60 ms (all 4 datasets) 3. Arrow IPC: 2.19x the fastest, mean 16.55 ms (all 4 datasets) 4. litdata: 20.21x the fastest, mean 46.75 ms (all 4 datasets) 5. Parquet: 36.41x the fastest, mean 78.27 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 78× · cold 2.2× 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 23.84 ms (all 4 datasets) 2. Lance: 32.29x the fastest, mean 209.24 ms (all 4 datasets) 3. Parquet: 78.37x the fastest, mean 487.47 ms (all 4 datasets) Cold (a new accessor opens inside each timed take): 1. Vortex: 1.00x the fastest, mean 283.18 ms (all 4 datasets) 2. Lance: 2.16x the fastest, mean 625.14 ms (all 4 datasets) 3. Parquet: 2.19x the fastest, mean 621.85 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.59 s (all 43 queries) 2. DataFusion on Vortex: 1.22x the fastest, total 3.78 s (all 43 queries) 3. DuckDB on Vortex (compact): 1.32x the fastest, total 4.13 s (all 43 queries) 4. DataFusion on Vortex (compact): 1.51x the fastest, total 4.45 s (all 43 queries) 5. DataFusion on Parquet: 2.00x the fastest, total 5.92 s (all 43 queries) 6. DuckDB on DuckDB's own format: 2.04x the fastest, total 5.37 s (all 43 queries) 7. DuckDB on Parquet: 2.07x the fastest, total 5.67 s (all 43 queries) 8. DataFusion on Lance: 17.78x the fastest, total 49.48 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 335.84 ms (all 22 queries) 2. DuckDB on Vortex: 1.30x the fastest, total 381.59 ms (all 22 queries) 3. DuckDB on Vortex (compact): 1.44x the fastest, total 416.96 ms (all 22 queries) 4. DataFusion on Vortex: 1.70x the fastest, total 522.98 ms (all 22 queries) 5. DataFusion on Vortex (compact): 1.80x the fastest, total 549.99 ms (all 22 queries) 6. DataFusion on Arrow: 3.31x the fastest, total 1.08 s (all 22 queries) 7. DuckDB on Parquet: 4.72x the fastest, total 1.39 s (all 22 queries) 8. DataFusion on Lance: 6.44x the fastest, total 2.04 s (all 22 queries) 9. DataFusion on Parquet: 6.56x 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.13x the fastest, total 5.43 s (all 22 queries) 2. DataFusion on Vortex: 1.25x the fastest, total 6.02 s (all 22 queries) 3. DataFusion on Vortex (compact): 1.31x the fastest, total 6.53 s (all 22 queries) 4. DuckDB on Vortex (compact): 1.48x the fastest, total 7.00 s (all 22 queries) 5. DataFusion on Lance: 1.53x the fastest, total 7.69 s (all 22 queries) 6. DuckDB on Vortex: 1.58x the fastest, total 7.57 s (all 22 queries) 7. DuckDB on Parquet: 1.60x the fastest, total 7.66 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.31x the fastest, total 1.16 s (all 22 queries) 3. DuckDB on Vortex (compact): 1.48x the fastest, total 1.28 s (all 22 queries) 4. DataFusion on Vortex: 1.75x the fastest, total 1.78 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.26x the fastest, total 2.89 s (all 22 queries) 7. DataFusion on Parquet: 4.18x the fastest, total 3.60 s (all 22 queries) 8. DataFusion on Arrow: 14.70x the fastest, total 16.39 s (all 22 queries) 9. DataFusion on Lance: 24.65x the fastest, total 23.51 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.7× · DataFusion 1.2× slower 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 Parquet: 1.14x the fastest, total 12.09 s (all 22 queries) 2. DataFusion on Vortex (compact): 1.22x the fastest, total 14.13 s (all 22 queries) 3. DuckDB on Parquet: 1.29x the fastest, total 13.29 s (all 22 queries) 4. DataFusion on Vortex: 1.33x the fastest, total 13.88 s (all 22 queries) 5. DuckDB on Vortex (compact): 2.10x the fastest, total 22.58 s (all 22 queries) 6. DuckDB on Vortex: 2.16x the fastest, total 23.11 s (all 22 queries) 7. DataFusion on Lance: 3.49x 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.13 s (all 22 queries) 2. DataFusion on Vortex: 1.56x the fastest, total 12.57 s (all 22 queries) 3. DuckDB on Parquet: 1.91x the fastest, total 11.24 s (all 22 queries) 4. DataFusion on Parquet: 3.14x the fastest, total 19.86 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.0× 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.04x the fastest, total 35.58 s (all 22 queries) 2. DataFusion on Vortex: 1.35x the fastest, total 47.76 s (all 22 queries) 3. DataFusion on Parquet: 1.42x the fastest, total 50.95 s (all 22 queries) 4. DuckDB on Vortex: 4.13x the fastest, total 159.15 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.12 s (all 99 queries) 3. DuckDB on Vortex (compact): 1.57x the fastest, total 2.41 s (all 99 queries) 4. DuckDB on Parquet: 1.81x the fastest, total 2.84 s (all 99 queries) 5. DataFusion on Vortex: 2.20x the fastest, total 4.19 s (all 99 queries) 6. DataFusion on Vortex (compact): 2.49x the fastest, total 4.80 s (all 99 queries) 7. DataFusion on Parquet: 3.26x the fastest, total 6.03 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.06x the fastest, total 5.03 s (all 99 queries) 2. DataFusion on Vortex: 1.40x the fastest, total 9.63 s (all 99 queries) 3. DuckDB on Parquet: 1.53x the fastest, total 7.00 s (all 99 queries) 4. DataFusion on Parquet: 2.28x the fastest, total 13.91 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.18x the fastest, total 22.93 s (all 99 queries) 2. DuckDB on Parquet: 1.43x the fastest, total 27.16 s (all 99 queries) 3. DataFusion on Vortex: 1.44x the fastest, total 121.62 s (all 99 queries) 4. DataFusion on Parquet: 2.80x the fastest, total 148.26 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 ≈ same · 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 Parquet: 1.28x the fastest, total 57.71 s (all 99 queries) 2. DataFusion on Vortex: 1.34x the fastest, total 59.30 s (all 99 queries) 3. DuckDB on Parquet: 1.44x the fastest, total 55.40 s (all 99 queries) 4. DuckDB on Vortex: 1.51x the fastest, total 62.58 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.7× 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.24x the fastest, total 231.34 s (all 99 queries) 2. DuckDB on Parquet: 1.32x the fastest, total 144.42 s (all 99 queries) 3. DataFusion on Parquet: 2.14x the fastest, total 338.90 s (all 99 queries) 4. DuckDB on Vortex: 2.29x the fastest, total 301.12 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.1× · DataFusion 2.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. DataFusion on Vortex: 1.24x the fastest, total 3.27 s (all 11 queries) 2. DataFusion on Vortex (compact): 1.41x the fastest, total 3.73 s (all 11 queries) 3. DataFusion on Parquet: 2.55x the fastest, total 4.11 s (all 11 queries) 4. DuckDB on Vortex: 3.09x the fastest, total 8.14 s (all 11 queries) 5. DuckDB on Vortex (compact): 3.44x the fastest, total 8.60 s (all 11 queries) 6. DuckDB on Parquet: 6.61x the fastest, total 7.40 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 523.30 ms (all 13 queries) - [Polar Signals Profiling charts](https://bench.vortex.dev/#polarsignals-profiling): 13 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 4.9× · DataFusion 3.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 Vortex: 1.05x the fastest, total 224.53 ms (all 9 queries) 2. DataFusion on Vortex: 1.28x the fastest, total 220.14 ms (all 9 queries) 3. DuckDB on Vortex (compact): 3.96x the fastest, total 948.54 ms (all 9 queries) 4. DataFusion on Parquet: 4.38x the fastest, total 621.51 ms (all 9 queries) 5. DuckDB on Parquet: 5.15x the fastest, total 779.21 ms (all 9 queries) 6. DataFusion on Vortex (compact): 5.23x the fastest, total 1.01 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.2× · DataFusion 2.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. DataFusion on Vortex: 1.03x the fastest, total 3.08 s (all 9 queries) 2. DataFusion on Vortex (compact): 1.14x the fastest, total 3.40 s (all 9 queries) 3. DuckDB on Vortex: 1.65x the fastest, total 5.48 s (all 9 queries) 4. DuckDB on Vortex (compact): 1.71x the fastest, total 5.46 s (all 9 queries) 5. DuckDB on Parquet: 2.04x the fastest, total 5.37 s (all 9 queries) 6. DataFusion on Parquet: 2.59x the fastest, total 6.61 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 ≈ same · DataFusion 1.2× 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.62 s (all 8 queries) 2. DuckDB on Parquet: 1.24x the fastest, total 1.68 s (all 8 queries) 3. DuckDB on Vortex: 1.30x the fastest, total 1.83 s (all 8 queries) 4. DuckDB on Vortex (compact): 1.31x the fastest, total 1.84 s (all 8 queries) 5. DataFusion on Vortex: 1.89x the fastest, total 11.01 s (all 8 queries) 6. DataFusion on Vortex (compact): 1.90x the fastest, total 11.06 s (all 8 queries) 7. DataFusion on Parquet: 2.35x the fastest, total 11.43 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.06x the fastest, total 210.55 ms (all 10 queries) 2. DataFusion on Vortex: 1.13x the fastest, total 250.33 ms (all 10 queries) 3. DuckDB on Vortex (compact): 1.39x the fastest, total 265.35 ms (all 10 queries) 4. DataFusion on Vortex (compact): 1.69x the fastest, total 495.04 ms (all 10 queries) 5. DuckDB on DuckDB's own format: 1.97x the fastest, total 336.20 ms (all 10 queries) 6. DuckDB on Parquet: 2.21x the fastest, total 446.96 ms (all 10 queries) 7. DataFusion on Parquet: 3.49x the fastest, total 1.26 s (all 10 queries) 8. DataFusion on Lance: 77.75x the fastest, total 20.50 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.27x the fastest, total 5.50 s (all 113 queries) 3. DuckDB on Parquet: 4.88x the fastest, total 20.13 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 739.84 ms (all 22 queries) 2. DuckDB on DuckDB's own format: 1.24x the fastest, total 787.68 ms (all 22 queries) 3. DuckDB on Vortex (compact): 1.46x the fastest, total 940.80 ms (all 22 queries) 4. DataFusion on Vortex: 1.50x the fastest, total 1.02 s (all 22 queries) 5. DataFusion on Vortex (compact): 1.75x the fastest, total 1.16 s (all 22 queries) 6. DataFusion on Lance: 5.60x the fastest, total 5.04 s (all 22 queries) 7. DuckDB on Parquet: 8.69x the fastest, total 5.58 s (all 22 queries) 8. DataFusion on Parquet: 11.61x the fastest, total 7.60 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.06x the fastest, total 26.18 s (all 22 queries) 2. DataFusion on Vortex: 1.43x the fastest, total 42.19 s (all 22 queries) 3. DuckDB on Parquet: 1.65x the fastest, total 37.60 s (all 22 queries) 4. DataFusion on Parquet: 2.72x the fastest, total 67.16 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.7× faster · DataFusion 1.4× 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 497.61 ms (all 3 queries) 2. DuckDB on Vortex: 1.24x the fastest, total 478.75 ms (all 3 queries) 3. DataFusion on Vortex: 1.65x the fastest, total 652.63 ms (all 3 queries) 4. DuckDB on Parquet: 2.07x the fastest, total 789.56 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) ### 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, 224 MB/s 2. onpair-12: 0.65x FSST, 155 MB/s 3. onpair-16: 0.63x FSST, 150 MB/s Scan throughput: 1. onpair-16: 1.24x FSST, 4.56 GB/s 2. onpair-12: 1.24x FSST, 4.61 GB/s 3. FSST: the baseline, 3.69 GB/s - [String Encoding charts](https://bench.vortex.dev/#string-encoding): 24 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.755x the size of FSST (from 0.607x to 0.9x across datasets), 2.82x smaller than Arrow in memory, 245.4 MB in total 2. onpair-12: 0.756x the size of FSST (from 0.6x to 0.877x across datasets), 2.82x smaller than Arrow in memory, 243.8 MB in total 3. FSST: the baseline, 2.13x smaller than Arrow in memory, 322.3 MB in total - [String Encoding Size charts](https://bench.vortex.dev/#string-encoding-size): 24 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) ## 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)