Compression17 chartsencode 2.0× · decode 5.2× faster than Parquet

Write Throughput

#1vortex2.03x1999 MB/s
#2parquet1.00x1149 MB/s
#3lance0.72x760 MB/s

Scan Throughput

#1vortex5.20x51.57 GB/s
#2parquet1.00x9.88 GB/s
#3lance0.94x8.22 GB/s
Geomean throughput ratio to Parquet | Aggregate throughput (higher is better)
Compression Size26 charts14% larger than Parquet
Vs Arrow
#1parquet6.54x
#2vortex5.75x
#3lance3.09x
#4arrow-ipc1.1x
Vs ParquetMinMeanMax
parquet: minimum 1x, mean 1x, maximum 1x
vortex: minimum 0.677x, mean 1.14x, maximum 1.55x
lance: minimum 1.58x, mean 2.12x, maximum 2.74x
arrow-ipc: minimum 3.24x, mean 5.95x, maximum 9.1x
Geometric means of compressed sizes versus Arrow (higher is better) and versus Parquet-zstd (lower is better)
String Encoding21 charts

Write Throughput

#1fsst1.00x222 MB/s
#2onpair-120.64x153 MB/s
#3onpair-160.62x148 MB/s

Scan Throughput

#1onpair-161.23x4.59 GB/s
#2onpair-121.20x4.61 GB/s
#3fsst1.00x3.72 GB/s
Geomean throughput ratio to FSST | Aggregate throughput (higher is better)
String Encoding Size21 charts
Vs Arrow
#1onpair-162.76x
#2onpair-122.76x
#3fsst2.14x
Vs FSSTMinMeanMax
onpair-16: minimum 0.607x, mean 0.777x, maximum 0.9x
onpair-12: minimum 0.6x, mean 0.778x, maximum 0.877x
fsst: minimum 1x, mean 1x, maximum 1x
Geometric means of file sizes versus Arrow (higher is better) and versus FSST (lower is better)
Random Access (NVMe)9 chartshot 101× · cold 32× faster than Parquet

Hot

#1vortex1.00x775.23 us
#2litdata2.40x1.70 ms
#3lance3.09x3.07 ms
#4arrow-ipc5.26x15.89 ms
#5parquet101.04x77.79 ms

Cold

#1vortex1.19x2.60 ms
#2lance1.97x4.53 ms
#3arrow-ipc2.13x14.57 ms
#4litdata21.23x43.43 ms
#5parquet38.59x76.97 ms
Geomean of take time ratio to fastest across every dataset (lower is better)
Random Access (S3)9 chartshot 80× · cold 1.8× faster than Parquet

Hot

#1vortex1.00x26.36 ms
#2lance27.56x184.59 ms
#3parquet79.63x496.58 ms

Cold

#1vortex1.02x398.15 ms
#2lance1.71x619.14 ms
#3parquet1.84x654.99 ms
Geomean of take time ratio to fastest across every dataset (lower is better)
Clickbench43 chartsDuckDB 1.8× · DataFusion 1.6× faster than Parquet

Performance Summary

#1duckdb:vortex1.11x3.66 s
#2datafusion:vortex1.25x3.89 s
#3duckdb:vortex-compact1.30x4.21 s
#4datafusion:vortex-compact1.53x4.87 s
#5datafusion:parquet1.96x5.90 s
#6duckdb:duckdb2.00x5.41 s
#7duckdb:parquet2.01x5.60 s
#8datafusion:lance17.13x48.50 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (NVMe) (SF=1)22 chartsDuckDB 3.7× · DataFusion 3.8× faster than Parquet

Performance Summary

#1duckdb:duckdb1.11x336.55 ms
#2duckdb:vortex1.27x369.43 ms
#3duckdb:vortex-compact1.40x404.10 ms
#4datafusion:vortex1.71x525.94 ms
#5datafusion:vortex-compact1.79x545.50 ms
#6datafusion:arrow3.26x1.08 s
#7duckdb:parquet4.66x1.39 s
#8datafusion:lance6.13x2.00 s
#9datafusion:parquet6.46x1.86 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (S3) (SF=1)22 chartsDuckDB ≈ same · DataFusion 1.2× slower vs Parquet

Performance Summary

#1datafusion:parquet1.15x5.76 s
#2datafusion:vortex-compact1.25x6.28 s
#3datafusion:vortex1.36x6.92 s
#4datafusion:lance1.48x7.69 s
#5duckdb:vortex-compact1.57x7.78 s
#6duckdb:vortex1.70x8.56 s
#7duckdb:parquet1.79x8.79 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (NVMe) (SF=10)22 chartsDuckDB 2.5× · DataFusion 2.3× faster than Parquet

Performance Summary

#1duckdb:duckdb1.14x1.02 s
#2duckdb:vortex1.31x1.17 s
#3duckdb:vortex-compact1.48x1.30 s
#4datafusion:vortex1.78x1.82 s
#5datafusion:vortex-compact1.96x1.92 s
#6duckdb:parquet3.23x2.90 s
#7datafusion:parquet4.12x3.60 s
#8datafusion:arrow14.51x16.39 s
#9datafusion:lance20.87x22.30 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (S3) (SF=10)22 chartsDuckDB 1.7× · DataFusion 1.2× slower than Parquet

Performance Summary

#1datafusion:parquet1.22x12.77 s
#2datafusion:vortex-compact1.29x13.19 s
#3duckdb:parquet1.29x13.17 s
#4datafusion:vortex1.45x15.59 s
#5duckdb:vortex-compact2.12x22.31 s
#6duckdb:vortex2.15x22.63 s
#7datafusion:lance3.53x43.02 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (NVMe) (SF=100)22 chartsDuckDB 1.7× · DataFusion 1.8× faster than Parquet

Performance Summary

#1duckdb:vortex1.13x7.23 s
#2datafusion:vortex1.66x13.94 s
#3duckdb:parquet1.89x11.34 s
#4datafusion:parquet3.06x19.83 s
Geomean of query time ratio to fastest (lower is better)
TPC-H (S3) (SF=100)22 chartsDuckDB 4.0× slower · DataFusion ≈ same vs Parquet

Performance Summary

#1duckdb:parquet1.06x36.60 s
#2datafusion:parquet1.34x48.56 s
#3datafusion:vortex1.38x50.05 s
#4duckdb:vortex4.22x167.58 s
Geomean of query time ratio to fastest (lower is better)
TPC-DS (NVMe) (SF=1)99 chartsDuckDB 1.3× · DataFusion 1.5× faster than Parquet

Performance Summary

#1duckdb:duckdb1.04x1.69 s
#2duckdb:vortex1.39x2.15 s
#3duckdb:vortex-compact1.62x2.46 s
#4duckdb:parquet1.83x2.82 s
#5datafusion:vortex2.23x4.26 s
#6datafusion:vortex-compact2.40x4.73 s
#7datafusion:parquet3.31x6.00 s
Geomean of query time ratio to fastest (lower is better)
TPC-DS (NVMe) (SF=10)99 chartsDuckDB 1.6× · DataFusion 1.4× faster than Parquet

Performance Summary

#1duckdb:vortex1.09x6.26 s
#2datafusion:vortex1.53x22.92 s
#3duckdb:parquet1.78x8.84 s
#4datafusion:parquet2.08x14.05 s
Geomean of query time ratio to fastest (lower is better)
TPC-DS (NVMe) (SF=100)99 chartsDuckDB ≈ same · DataFusion 1.3× faster vs Parquet

Performance Summary

#1duckdb:parquet1.20x27.08 s
#2duckdb:vortex1.21x29.39 s
#3datafusion:vortex1.78x151.64 s
#4datafusion:parquet2.37x148.10 s
Geomean of query time ratio to fastest (lower is better)
TPC-DS (S3) (SF=10)99 chartsDuckDB ≈ same · DataFusion 1.2× slower vs Parquet

Performance Summary

#1datafusion:parquet1.38x69.03 s
#2duckdb:parquet1.40x61.18 s
#3duckdb:vortex1.44x74.59 s
#4datafusion:vortex1.62x88.67 s
Geomean of query time ratio to fastest (lower is better)
TPC-DS (S3) (SF=100)99 chartsDuckDB 4.8× slower · DataFusion 1.7× faster vs Parquet

Performance Summary

#1datafusion:vortex1.25x256.91 s
#2duckdb:parquet1.28x149.62 s
#3datafusion:parquet2.08x342.81 s
#4duckdb:vortex6.20x965.41 s
Geomean of query time ratio to fastest (lower is better)
Statistical and Population Genetics11 chartsDuckDB 4.2× · DataFusion 3.5× faster than Parquet

Performance Summary

#1datafusion:vortex1.13x1.46 s
#2datafusion:vortex-compact1.21x1.63 s
#3duckdb:vortex2.29x2.45 s
#4duckdb:vortex-compact2.46x2.57 s
#5datafusion:parquet3.91x3.83 s
#6duckdb:parquet9.74x6.69 s
Geomean of query time ratio to fastest (lower is better)
PolarSignals Profiling10 chartsVortex only

Performance Summary

#1datafusion:vortex1.00x385.32 ms
Geomean of query time ratio to fastest (lower is better)
fineweb [nvme]9 chartsDuckDB 5.3× · DataFusion 3.4× faster than Parquet

Performance Summary

#1duckdb:vortex1.02x211.13 ms
#2datafusion:vortex1.30x223.64 ms
#3duckdb:vortex-compact3.13x733.20 ms
#4datafusion:parquet4.46x624.65 ms
#5duckdb:parquet5.35x789.50 ms
#6datafusion:vortex-compact5.56x1.04 s
Geomean of query time ratio to fastest (lower is better)
fineweb [s3]9 chartsDuckDB 1.4× · DataFusion 2.7× faster than Parquet

Performance Summary

#1datafusion:vortex1.02x3.26 s
#2datafusion:vortex-compact1.23x3.69 s
#3duckdb:vortex-compact1.62x5.28 s
#4duckdb:vortex1.70x5.69 s
#5duckdb:parquet2.37x6.35 s
#6datafusion:parquet2.76x7.09 s
Geomean of query time ratio to fastest (lower is better)
appian [nvme]8 chartsDuckDB 1.1× slower · DataFusion 1.3× faster vs Parquet

Performance Summary

#1duckdb:duckdb1.13x1.60 s
#2duckdb:parquet1.23x1.66 s
#3duckdb:vortex1.30x1.83 s
#4duckdb:vortex-compact1.32x1.85 s
#5datafusion:vortex1.88x11.00 s
#6datafusion:vortex-compact1.90x11.00 s
#7datafusion:parquet2.37x11.42 s
Geomean of query time ratio to fastest (lower is better)
clickbench-sorted [nvme]10 chartsDuckDB 2.1× · DataFusion 2.9× faster than Parquet

Performance Summary

#1duckdb:vortex1.06x186.02 ms
#2datafusion:vortex1.23x319.54 ms
#3duckdb:vortex-compact1.32x232.96 ms
#4datafusion:vortex-compact1.91x594.38 ms
#5duckdb:duckdb2.06x340.50 ms
#6duckdb:parquet2.28x449.62 ms
#7datafusion:parquet3.55x1.26 s
#8datafusion:lance77.04x20.09 s
Geomean of query time ratio to fastest (lower is better)
vortex [nvme]3 chartsDuckDB 1.7× · DataFusion 1.1× faster than Parquet

Performance Summary

#1datafusion:vortex1.20x392.88 ms
#2datafusion:parquet1.28x493.62 ms
#3duckdb:vortex1.34x460.09 ms
#4duckdb:parquet2.26x773.42 ms
Geomean of query time ratio to fastest (lower is better)