Immutable session backed by HashMap#8454
Conversation
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_bool_canonical_into[(1000, 10)] |
20.6 µs | 35.3 µs | -41.55% |
| ❌ | Simulation | chunked_dict_primitive_into_canonical[u32, (1000, 10, 10)] |
120.7 µs | 182.1 µs | -33.72% |
| ❌ | Simulation | encode_varbin[(1000, 2)] |
176.1 µs | 232.7 µs | -24.35% |
| ❌ | Simulation | chunked_varbinview_canonical_into[(1000, 10)] |
161.8 µs | 198.2 µs | -18.36% |
| ❌ | Simulation | decompress_rd[f64, (100000, 0.0)] |
845.5 µs | 1,025.1 µs | -17.53% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
177.1 µs | 214.6 µs | -17.5% |
| ❌ | Simulation | bench_many_codes_few_values[1024] |
393.2 µs | 468 µs | -15.97% |
| ❌ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
299.5 µs | 352.9 µs | -15.15% |
| ❌ | Simulation | decompress_rd[f32, (100000, 0.0)] |
499.1 µs | 587.5 µs | -15.04% |
| ❌ | Simulation | varbinview_large |
112.2 µs | 131 µs | -14.41% |
| ❌ | Simulation | bitwise_not_vortex_buffer_mut[128] |
186.1 ns | 215.3 ns | -13.55% |
| ❌ | Simulation | chunked_varbinview_canonical_into[(100, 100)] |
273.8 µs | 308.7 µs | -11.31% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(100, 100)] |
326.4 µs | 367.3 µs | -11.13% |
| ❌ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
246.4 ns | 275.6 ns | -10.58% |
| ⚡ | Simulation | sum_i32_nullable_all_valid |
69.2 µs | 35.4 µs | +95.43% |
| ⚡ | Simulation | null_count_run_end[(10000, 4, 0.01)] |
125.4 µs | 91.7 µs | +36.78% |
| ⚡ | Simulation | encode_varbinview[(1000, 2)] |
189 µs | 155.4 µs | +21.62% |
| ⚡ | Simulation | chunked_varbinview_opt_into_canonical[(1000, 10)] |
229.3 µs | 192.9 µs | +18.83% |
| ⚡ | Simulation | take_10k_contiguous |
252.8 µs | 218 µs | +15.97% |
| ⚡ | Simulation | decompress_rd[f64, (100000, 0.01)] |
981.2 µs | 846.4 µs | +15.93% |
| ... | ... | ... | ... | ... | ... |
ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing adamg/immutable-session (f4d7069) with develop (679e2c5)
Footnotes
-
10 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Polar Signals Profiling ResultsLatest Run
Previous Runs (3)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.186x ❌ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.186x ❌, 0↑ 9↓)
File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
Totals:
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.982x ➖, 2↑ 1↓)
datafusion / vortex-compact (0.971x ➖, 1↑ 1↓)
datafusion / parquet (0.944x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.983x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.979x ➖, 0↑ 1↓)
duckdb / parquet (0.955x ➖, 1↑ 0↓)
File Size Changes (2 files changed, -0.0% overall, 0↑ 2↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.979x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.984x ➖, 0↑ 0↓)
datafusion / parquet (0.969x ➖, 2↑ 1↓)
datafusion / arrow (0.939x ➖, 3↑ 1↓)
duckdb / vortex-file-compressed (0.913x ➖, 6↑ 0↓)
duckdb / vortex-compact (0.920x ➖, 6↑ 0↓)
duckdb / parquet (0.939x ➖, 3↑ 0↓)
duckdb / duckdb (0.953x ➖, 0↑ 0↓)
File Size Changes (10 files changed, -0.1% overall, 4↑ 6↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.005x ➖, 0↑ 7↓)
datafusion / vortex-compact (0.995x ➖, 1↑ 2↓)
datafusion / parquet (1.012x ➖, 2↑ 3↓)
duckdb / vortex-file-compressed (0.992x ➖, 2↑ 1↓)
duckdb / vortex-compact (1.007x ➖, 1↑ 2↓)
duckdb / parquet (1.007x ➖, 2↑ 0↓)
duckdb / duckdb (1.012x ➖, 1↑ 3↓)
File Size Changes (15 files changed, +0.4% overall, 12↑ 3↓)
Totals:
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.861x ➖, 3↑ 0↓)
datafusion / vortex-compact (1.022x ➖, 0↑ 1↓)
datafusion / parquet (0.928x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.976x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.961x ➖, 0↑ 0↓)
duckdb / parquet (0.976x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.923x ➖, 2↑ 0↓)
duckdb / vortex-compact (0.994x ➖, 0↑ 0↓)
duckdb / parquet (0.996x ➖, 0↑ 0↓)
File Size Changes (1 files changed, +4.7% overall, 1↑ 0↓)
Totals:
|
Benchmarks: Random AccessVortex (geomean): 0.936x ➖ How to read Verdict and Engines
unknown / unknown (1.017x ➖, 5↑ 1↓)
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.383x ❌, 0↑ 22↓)
datafusion / vortex-compact (1.346x ❌, 0↑ 22↓)
datafusion / parquet (1.315x ❌, 0↑ 22↓)
datafusion / arrow (1.408x ❌, 0↑ 22↓)
duckdb / vortex-file-compressed (1.251x ❌, 0↑ 22↓)
duckdb / vortex-compact (1.224x ❌, 0↑ 22↓)
duckdb / parquet (1.162x ❌, 0↑ 19↓)
duckdb / duckdb (1.189x ❌, 0↑ 20↓)
File Size Changes (26 files changed, +0.1% overall, 17↑ 9↓)
Totals:
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.001x ➖, 0↑ 1↓)
datafusion / parquet (0.995x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.991x ➖, 4↑ 1↓)
duckdb / parquet (0.993x ➖, 0↑ 0↓)
duckdb / duckdb (1.010x ➖, 0↑ 1↓)
File Size Changes (103 files changed, -0.0% overall, 50↑ 53↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.093x ➖, 0↑ 2↓)
datafusion / vortex-compact (0.905x ➖, 1↑ 0↓)
datafusion / parquet (1.020x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.026x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.945x ➖, 0↑ 0↓)
duckdb / parquet (0.954x ➖, 0↑ 0↓)
|
Benchmarks: Appian on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.395x ❌, 0↑ 8↓)
datafusion / parquet (1.388x ❌, 0↑ 8↓)
duckdb / vortex-file-compressed (1.312x ❌, 0↑ 8↓)
duckdb / parquet (1.316x ❌, 0↑ 8↓)
duckdb / duckdb (1.283x ❌, 0↑ 8↓)
File Size Changes (6 files changed, +4.9% overall, 4↑ 2↓)
Totals:
|
Benchmarks: CompressionVortex (geomean): 0.995x ➖ How to read Verdict and Engines
unknown / unknown (0.925x ➖, 54↑ 2↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.072x ➖, 0↑ 1↓)
datafusion / vortex-compact (0.991x ➖, 0↑ 1↓)
datafusion / parquet (1.018x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.098x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.026x ➖, 0↑ 0↓)
duckdb / parquet (1.067x ➖, 0↑ 0↓)
|
HashMapHashMap
912bcb2 to
49cce3b
Compare
db60bc0 to
ae0e5bc
Compare
73cc48b to
b799708
Compare
… fences (#8464) ## Summary This PR adds a few additional ThreadSanitizer suppressions to deal with false positives caused by `crossbeam`. They have been surfaced by #8454 and in other cases in the past. Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
Signed-off-by: Adam Gutglick <[email protected]>
b799708 to
f4d7069
Compare
Summary
This PR replaces the current
DashMapbacked session with one backed by aHashMap. Instead of being initialized on access which might cause deadlocks or otherwise weird performance behavior.There's also an explicit
Buildertype for the session, allowing the user to explicitly include the components they want.