Avatar for the vortex-data user
vortex-data
vortex
BlogDocsChangelog

Performance History

Latest Results

Write wide legacy decimal fixtures at the canonical width The checked decimal constructors reject storage wider than the precision requires, so the compat fixtures that specified such a width can no longer build their written form. Keep the fixtures so their published files stay covered by `check`, which reads the wide form back through legacy narrowing, and write those columns at the canonical width instead. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015zQPnFWRi7CWXHpgBE8CiF
ji/decimal-storage-contract
5 hours ago
feat(scan): run the V2 executor on the segment IO protocol Switches the planner-driven scan from the byte-range `vortex_io::request` protocol to `vortex_io::segments`, and serves it with a session-wide `FileSegmentIo` that reads through files' v1 segment sources. - vortex-scan: `Planner` and `Morsel` drop the `IoConsumer` supertrait, publish `NeedsIO(Vec<IoRequest>)`, and receive `deliver(key, result)` once per successful fetch. `Run`/`Driver` submit each root's requests to its `SegmentIoSession` and hold the handles; each item's fetches finish through its own `FuturesUnordered`, so a `poll_ready` report yields exactly the finished fetches. Fetches in flight are counted per session, since spawned roots share one. `Run::poll_io` replaces `Run::complete`. The scripted harness is a recording `SegmentIoSession`. - vortex-layout: `ScanAdaptor` fetches each segment once by `IoKey::segment` while any scan read of it is outstanding, and hands the result to every waiting read. Prune and filter hints name segment keys. `ScanFile` and `PreparedScan` carry the file's `RegisteredSource`, and `PreparedScan::io` is its service. `SegmentScanIo` and the cached byte-range index it needed are removed. - vortex-file: `FileSegmentIo`, one per `VortexSession`. Size requests are answered at submit; segment requests call `SegmentSource::request`, so they share the file's segment cache, request sharing and coalescing read driver. `VortexFile::scan_file` registers the file's segment source, and a caching file keeps one registration in its scan cache, renewed with its segment source. The V2 scan driver reads through `SegmentIoSession`. - vortex-datafusion, vortex-duckdb: their V2 drivers read through `SegmentIoSession`; the DataFusion opener shares a file's segment source across partitions through `VortexFile::with_segment_source`. - vortex-io: `request` is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4PmceDHg8rFe5bgkhGFU9 Signed-off-by: Claude <noreply@anthropic.com>
ji/v2-scan-segment-io
6 hours ago
feat(scan): run the V2 executor on the segment IO protocol Switches the planner-driven scan from the byte-range `vortex_io::request` protocol to `vortex_io::segments`, and serves it with a session-wide `FileSegmentIo` that reads through files' v1 segment sources. - vortex-scan: `Planner` and `Morsel` drop the `IoConsumer` supertrait, publish `NeedsIO(Vec<IoRequest>)`, and receive `deliver(key, result)` once per successful fetch. `Run`/`Driver` submit each root's requests to its `SegmentIoSession` and hold the handles; each item's fetches finish through its own `FuturesUnordered`, so a `poll_ready` report yields exactly the finished fetches. Fetches in flight are counted per session, since spawned roots share one. `Run::poll_io` replaces `Run::complete`. The scripted harness is a recording `SegmentIoSession`. - vortex-layout: `ScanAdaptor` fetches each segment once by `IoKey::segment` while any scan read of it is outstanding, and hands the result to every waiting read. Prune and filter hints name segment keys. `ScanFile` and `PreparedScan` carry the file's `RegisteredSource`, and `PreparedScan::io` is its service. `SegmentScanIo` and the cached byte-range index it needed are removed. - vortex-file: `FileSegmentIo`, one per `VortexSession`. Size requests are answered at submit; segment requests call `SegmentSource::request`, so they share the file's segment cache, request sharing and coalescing read driver. `VortexFile::scan_file` registers the file's segment source, and a caching file keeps one registration in its scan cache, renewed with its segment source. The V2 scan driver reads through `SegmentIoSession`. - vortex-datafusion, vortex-duckdb: their V2 drivers read through `SegmentIoSession`; the DataFusion opener shares a file's segment source across partitions through `VortexFile::with_segment_source`. - vortex-io: `request` is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4PmceDHg8rFe5bgkhGFU9 Signed-off-by: Claude <noreply@anthropic.com>
ji/segment-io
6 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
Bound decimal storage by precision#10305
5 hours ago
24488cc
ji/decimal-storage-contract
CodSpeed Performance Gauge
+12%
6 hours ago
c3d0d12
ji/segment-io-announce
CodSpeed Performance Gauge
+47%
6 hours ago
9847c99
ji/scan-v2-clickbench-tpcds
© 2026 CodSpeed Technology
Home Terms Privacy Docs