vortex-data
vortex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
vortex-row: add fused fast-path FSST row-encode benchmark Adds `fsst_fast_fused`: bulk-decompresses the FSST code heap straight into a contiguous buffer (no intermediate VarBinViewArray) and block-encodes rows directly into the row-key ListView using the stored uncompressed_lengths (free size pass), with the same no-zero-init / no-extra-copy techniques as the row encoder. Lets us compare the fused path head-to-head against decode-then-convert. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
6 hours ago
vortex-row: rustfmt the fsst row-encode benchmark Apply nightly rustfmt formatting to the FSST benchmark added in the previous commit. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
6 hours ago
vortex-row: benchmark FSST row-encoding (unpack-then-convert vs phases) FSST is not order-preserving, so row keys must be the decompressed bytes; the only strategy today is decompress to a canonical VarBinView then row-encode it. This bench measures that path and its two phases (decompress-only, and row-encode of an already-decompressed column) on compressible multi-block strings, to quantify the opportunity for a future fused FSST row-encode kernel: the phases are additive (decompress ~46%, row-encode ~54%), and the row-encode phase re-reads/re-writes the decompressed bytes a fused kernel could emit once. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
6 hours ago
vortex-row: arithmetic-write fast path for fixed-before-varlen columns Classify each column in the size pass (`ColKind` + `first_varlen_idx`): a fixed-width column with no varlen column before it has a constant within-row offset, so its write position is pure arithmetic (`i * fixed_per_row + prefix + var_prefix[i]`) with no per-row cursor. Route those columns through `field_encode_fixed_arithmetic`; the cursor path is seeded to start at the first varlen column. Primitive columns in the pure-fixed case use a `chunks_exact_mut` hot loop (matching arrow-row's not-null path); all other fixed types reuse the cursor encoder at the computed offsets, so output is byte-identical. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
9 hours ago
perf(fastlanes): fuse bit-packed compare into a transposed mask + untranspose (#8239) ## Summary Replaces the unpack-then-compare streaming kernel for compare-against-constant with the FastLanes fused `unpack_cmp`: - compare each value **as it is unpacked**, accumulating results straight into a transposed 1024-bit mask (`[u64; 16]`, one register-resident word per lane — no `[bool; 1024]`/`[T; 1024]` scratch), - a single SIMD `untranspose_bits` per block rotates the mask into logical row order, copied directly into the output bit buffer, - inline patches are spliced in afterwards; sliced (`offset != 0`) arrays fall back to the scalar streaming predicate. --------- Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> Co-authored-by: Claude <noreply@anthropic.com>
develop
9 hours ago
vortex-row: satisfy cast-truncation lints in ported hot paths The auto-vectorized offset loops and the varlen block writer used raw `as` casts that trip this crate's `cast_possible_truncation` lint. Iterate a `u32` counter instead of casting `usize` per element, and use `u8`/`u32` `try_from` for the varlen final-block length byte and total byte count. No behavior change. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
11 hours ago
vortex-row: walk VarBinView rows directly in the encoder hot loop Replace the `with_iterator` traversal in `encode_varbinview` with a direct walk over the view array: cache the data-buffer slices once, then for each row read the bytes straight from the inlined view slot or the referenced buffer at `offset..offset+len`. This drops the iterator's per-row option/bounds machinery. Validity is resolved once via `resolve_validity`, keeping the no-nulls path branch-free on validity. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
claude/nice-archimedes-yjGyO
11 hours ago
fix: `[profile.bench]` `codegen-units = 16` (#8257)
develop
11 hours ago
Latest Branches
CodSpeed Performance Gauge
-13%
feat(vortex-row): row-oriented byte encoder (size + encode passes)
#8253
6 hours ago
946e18c
claude/nice-archimedes-yjGyO
CodSpeed Performance Gauge
+60%
perf(fastlanes): fuse bit-packed compare into a transposed mask + untranspose
#8239
12 hours ago
bd3fbaa
claude/confident-hamilton-mZIEo
CodSpeed Performance Gauge
-11%
Mask bool iterator
#8258
13 hours ago
44cd55a
os/mask-iter
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs