Repository navigation
Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (28)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Commits: PR datafusion / vortex-file-compressed / ns (0.812x ✅, 5↑ 0↓)
|
Benchmarks: FineWeb NVMe 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.977x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (0.986x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.005x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.009x ➖, 0↑ 0↓)
|
Benchmarks: Clickbench Sorted on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.002x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.007x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.004x ➖, 0↑ 0↓)
duckdb / duckdb / ns (0.997x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.990x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (1.001x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.997x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (0.993x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.002x ➖, 0↑ 0↓)
duckdb / duckdb / ns (1.000x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population Genetics 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.991x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.997x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.006x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.991x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (0.998x ➖, 1↑ 1↓)
duckdb / parquet / ns (0.988x ➖, 0↑ 0↓)
|
Benchmarks: FineWeb S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.933x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (0.940x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.125x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed / ns (0.989x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (1.004x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.883x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.003x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.999x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.005x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.003x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / duckdb / ns (1.005x ➖, 0↑ 0↓)
|
Benchmarks: Appian on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.004x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.994x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.995x ➖, 0↑ 0↓)
duckdb / duckdb / ns (1.000x ➖, 0↑ 0↓)
|
Benchmarks: JOB on NVME 📖Commits: PR How to read Verdict and Engines
duckdb / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.995x ➖, 5↑ 2↓)
duckdb / duckdb / ns (1.000x ➖, 0↑ 0↓)
|
Benchmarks: Clickbench on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.998x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.998x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.994x ➖, 0↑ 0↓)
duckdb / duckdb / ns (0.997x ➖, 0↑ 0↓)
|
Benchmarks: TPC-DS SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.999x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (1.002x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.001x ➖, 0↑ 3↓)
duckdb / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / duckdb / ns (1.004x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=1 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.016x ➖, 0↑ 1↓)
datafusion / vortex-compact / ns (1.057x ➖, 1↑ 3↓)
datafusion / parquet / ns (1.024x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed / ns (1.038x ➖, 0↑ 1↓)
duckdb / vortex-compact / ns (1.053x ➖, 0↑ 1↓)
duckdb / parquet / ns (1.093x ➖, 0↑ 3↓)
|
Benchmarks: Vortex queries 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.007x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.013x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.006x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.021x ➖, 0↑ 0↓)
|
7b65132 to
48d770f
Compare
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
48d770f to
e30bd12
Compare
Benchmarks: TPC-H SF=10 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.025x ➖, 1↑ 2↓)
datafusion / vortex-compact / ns (1.039x ➖, 1↑ 4↓)
datafusion / parquet / ns (1.017x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed / ns (0.931x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (0.964x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.053x ➖, 0↑ 2↓)
|
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
|
Fixing upstream here: apache/arrow-rs#12057 |
Summary
A primitive column stored without a dictionary but requested as an Arrow dictionary is exported through
arrow_cast. ItsPrimitiveDictionaryBuilderhashes with SipHash and runs agetand then aninsertfor every new value. On PolarSignals that is most of the export:addressis requested asDictionary(UInt32, UInt64)and stored plain, because every value is distinct. On develop's files,lineandfunction_start_lineare stored plain too.Changes
to_arrow_dictionarydictionary-encodes plain primitives whose type matches the requested values type with vortex-array's primitive dictionary encoder (FxHash) instead ofarrow_cast.DictEncoder::reservehint, a no-op by default. The primitive encoder sizes its table for it, and the export reserves the input length like Arrow's builder.arrow_cast.