Skip to content

[experiment] V2 scan with one segment source per partition - #10765

Closed
joseph-isaacs wants to merge 46 commits into
developfrom
ji/scan-v2-exp-noshare
Closed

joseph-isaacs wants to merge 46 commits into
developfrom
ji/scan-v2-exp-noshare

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

CI experiment, not for merging. Measures whether the one FileSegmentSource (and so one read driver, at most 32 reads in flight) that V2 shares across a file's DataFusion partitions is why the full branch (#10694) is 1.003 of V1 at SF1 on the 96-core runner while 14 local cores measure 0.963 and 96 time-shared local partitions 0.876. This head is #10694 plus one commit giving each partition the file's own segment source, as V1 has. Compare its TPC-H SF1 / SF10 NVMe comments with #10694's (SF1 hot 1.003, SF10 0.987).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE

joseph-isaacs and others added 30 commits October 22, 2026 12:04
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
(cherry picked from commit 6e27e30)
The V2 opener gave every partition its own VortexFile, so each partition read and decoded
chunks straddling its boundaries and the file's metadata segments on its own. V1 avoids this
through the shared layout reader. Keep a weak per-path map of V2 segment sources beside
`layout_readers` so concurrent partitions read through one source.

TPC-H SF1 q4 went from 196 segment reads (52.4 MB) to 115 (34.8 MB) per query, matching V1.
Hot SF10 geomean against V1 moved from 1.01 to about 0.96 on this machine.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit bec59fe)
Prefetch needs the segments a stage will read before the stage runs.
Compiling already registers every segment scan and does no IO, so
`Scan::segments` compiles a plan over rows under a mask and lists them,
and the per-plan `reach` walk that re-derived the same answer goes, with
the `Reach` coordinates it carried.

`Shares` used the walk to decode a segment once when several splits or
readers of one scan read it, and goes with it. The V2 executor runs one
split per scan and shares reads in its IO session, so a scan's splits
now each read the segments they overlap, and a plan reading one segment
through two paths reads it through each.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A `PreparedScan` holds a scan's plans over one file, built once from the
footer, and makes its planners; nothing in it touches a segment and no
planner plans again. The planners form a chain, each emitting the next
through the planning protocol:

- `PrunePlanner` proves the filter's zone maps over the scan's rows,
  prefetching the zone tables together, and emits one chunk planner for
  the rows no proof excludes. Rows a proof excludes are never planned.
- `ChunkPlanner` cuts those rows into chunks and emits a filter or a
  projection planner per chunk, skipping chunks nothing is selected or
  kept of. The run drives an emitted chunk ahead of the next, so chunks
  waiting on reads overlap.
- `FilterPlanner` prefetches its chunk's conjunct segments and announces
  the projection's at its first compute, runs the conjuncts in the
  adaptive order over the surviving rows, and emits the projection.
- `ProjectionPlanner` emits one morsel per piece of the rows.

A stage with nothing to do is never made: a filter without proofs starts
at the chunk planner, a scan without a filter at the projection.

A scan runs as one task owning one planning run, instead of one task and
run per split plus a private run for the proofs; `with_concurrency` sets
nothing. The IO session keeps every read it starts, so a later stage or
morsel of a chunk that reads the segment again shares the read. The
segments a stage prefetches come from compiling its plans.

DataFusion attaches each partition's rows from the cached footer when it
repartitions a file, so the V2 opener reads exactly those rows instead of
translating a byte range through the layout.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A scan reads a zoned column through the zoned node's data child and never
its zone table, yet the node and its zone table stayed in every optimized
data plan. A new `ZonedDataRule` replaces a zoned data plan by its data,
so an optimized plan carries a zone table only where a pruning proof
reads it. Legacy stats get the same treatment through `LegacyStatsRule`;
the rule that dropped legacy stats beneath a zoned plan is subsumed.

A zone proof over legacy stats depended on the converted zoned node
surviving child optimization. `ExpressionLegacyStatsRule` now converts
the legacy child under a proof directly, through the shared
`is_zone_proof` check, so the pruning rewrite still meets a zoned plan.

With zone tables gone from data plans, the identity projection is
optimized and cached like every other projection: chunked columns stay
lazy through `Concat::map_chunks`, and a projection-only scan no longer
lowers the zone tables it never reads.

(cherry picked from commit 91be25d)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
DataFusion opens a file once per partition, so each partition lowered the
layout, planned the filter and proved the zone maps on its own. A scan
cache now keeps each distinct filter's plans along with the zones their
proofs excluded, and the opener keeps one cache per file that concurrent
partitions find through a weak handle and that the last scan holding it
frees. A prune planner skips the zone maps of a proof an earlier scan of
the file already proved: they are not read again.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The stream a scan returns now owns the planning run and drives it as it
is polled. Every CPU step of the run, the planners' and morsels'
compute, is a `spawn_cpu` task; every read is already a `spawn_io` task
of the segment source; the stream's poll awaits one or the other and
does no scan work on the engine's thread. The scan advances only as fast
as its consumer pulls, so the task and channel that ran ahead of it go.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A prune planner no longer knows about chunks or selections. It is built
with the planner it continues into, as a function of the rows its
proofs keep, and emits that planner with the kept mask once every proof
has run. `PreparedScan::planner` supplies the chunk planner.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…h other

A planner may now emit a child with `PlannerOutput::Spawn`: the run does
not queue it but hands it to its owner as `Progress::Spawn`, and the
planner continues at once. The owner runs it anywhere; the blocking
driver admits it as another root of the same run.

The chunk planner spawns every chunk. The scan's stream runs each on a
run and a session of its own, stepped on `spawn_cpu`, up to
`concurrency` chunks per worker thread at once, merging their batches as
they finish. A scan with fewer engine partitions than cores had lost the
parallelism of one task per split, 2 to 4 times slower on selective
queries with one partition; it is back, without a planner knowing about
threads.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Hints were deduplicated by scanning the batch for each segment, which is
quadratic in a chunk's segments: a wide projection over a filtered chunk
announces hundreds. A set of the segments seen replaces the scan.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…es not

A spawned chunk runs on one task of the runtime that drives its run to
the end and awaits only its reads, instead of a `spawn_cpu` task per
step: a chunk's run waits for reads many times, and a hop at each wait
was latency on its critical path that no other chunk's work filled.

At a concurrency of one, chunks run on the scan's own run as further
roots: the run's steps already interleave their work, and a run, a
session and a task per chunk only added a hand-off per chunk, measured
at 2 to 3 percent on TPC-H, for parallelism the engine provides.
DataFusion sets the concurrency, unless configured, to the cores per
partition, so a scan over one partition per core runs its chunks inline
and a single-partition scan runs them beside each other.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A planner says what it needs, compute or reads. Where either runs is an
engine's decision, so this crate stops driving: `ScanBuilder::prepare`
lowers and plans a scan without IO into a `PreparedScan`, which exposes
its rows, selection, filter plans and IO service, and `PrunePlanner` and
`ChunkPlanner` are public for an engine to compose, the prune planner
continuing into whatever it is built with and passing `None` when no
proof ran. The builder's ordering, concurrency, mapping and streams go
with the driver, and the layout's tests drive their scans on a run of
their own.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The opener composes a scan's planners, a prune planner into a chunk
planner when the scan has a filter and the chunk planner alone when it
does not, and a driver of this crate runs them: the root run stepped on
`spawn_cpu` tasks as DataFusion polls the stream, each spawned chunk on
a task of its own up to the concurrency, or on the root run when the
engine's partitions already fill the cores, with the concurrency
derived from cores per partition unless configured. Batches are mapped
to Arrow on the task that produced them. Every spawning decision of a
V2 scan under DataFusion is in this crate.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`vortex_file::v2::ScanDriver` composes a scan's planners and runs them
on the session's runtime, the way an engine's driver does, for the file
API's callers: the compress and random-access benchmarks move to it.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The opener prepares the scan where compute runs, composes its planners
itself, a prune planner continuing into a chunk planner when there is a
filter and the chunk planner alone when there is not, and hands the
driver the first planner. The driver only drives.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The prune planner skipped prefetching the zone maps of proofs an earlier
scan of the file had proved. The segment list now comes from compiling
the proof, and a proved proof compiles to its kept result without a
segment scan, so the check repeated what compile already knew.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The scan code named the filter's zone-map plans proofs. They are the
filter's pruning expressions evaluated over the file's zone map, so the
layout, file and DataFusion code now says pruning, matching
prune_zones, PrunedZones and the pruning field they already used.
Behaviour is unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
…steps

A planner that waits can now say what it will read later: the run asks
every parked planner to speculate when nothing else can compute, and
registers the answer with its root's session as reads that are never
delivered. The prune planner speculates the predicate columns of the
next chunk of its partition on each ask, so they are read while the zone
maps are, as its filter planner would read them once pruning keeps the
chunk; a scan selecting rows by index speculates nothing. The segment IO
service keeps speculated reads for whichever session fetches a segment
first, so a chunk on its own session takes the read the prune planner
started.

The root run's CPU step now runs until the run has a batch, waits, or
is done, collecting every chunk it spawns, instead of one spawn_cpu hop
per chunk.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
The prune planner ran its pruning plans one after another, each over
the rows the previous one kept, so a filter with three plans waited for
three reads in turn, each wait costing a round trip and a hop of the
root run. It now builds every plan's adaptor in its first compute,
publishes all their zone-map reads as one batch, waits once, and
intersects the kept rows. Each adaptor numbers its requests from its
own range, so the planner routes deliveries by request id. The separate
compile of each plan to prefetch its segments is gone: the adaptors'
fetches are the reads.

Debug events mark when the pruning reads go out, when a chunk's reads
are speculated, and when a chunk's run starts.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
The root run was stepped on a spawn_cpu task per step, so a partition
paid a hop to take its zone-map completion, another to step the run,
and a task spawn for its chunk, each a few hundred microseconds when
every core is busy. The root run now runs on one task that awaits its
reads in place, like a chunk's, and the first chunk a partition spawns
runs on that run as another root. Later chunks are spawned as before,
so one partition with many chunks stays parallel.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Planning cuts a partition's rows from the footer's row count on the
writer's 8192-row grid, but the writer buffers chunks to megabytes, so
at fourteen partitions nearly every boundary fell inside a chunk and
both neighbours decoded it: q19 at SF1 retired 17% more instructions
than the stacked V2 scan, which aligned partitions to natural splits,
and none more at one partition. The opener now snaps the planning-time
rows up to the natural split boundaries of the columns the scan reads,
computed once per file as the byte-range fallback already does, so the
partitions still tile the file and no chunk is decoded twice.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
…reads

Speculation prefetched only the predicate columns of the next chunk,
so the projection columns interleaved between them in the file were
read as gap bytes and then read again on their own: q6 at SF1 issued
23 physical reads for 164 requests where the stacked scan issued 14,
and 14% more bytes. The prune planner now speculates the batch the
chunk's filter planner would publish, predicate prefetches and
projection announcements together, and the segment IO service keeps
speculated announcements, requested and never polled, for whichever
session fetches the segment first.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
…erlap

The session polled a fetch as it was submitted, which marked it wanted
and let the read driver dispatch the zone map alone before the run had
speculated the chunk's reads microseconds later: q6 at SF1 still issued
25 physical reads for the stacked scan's 14. The run now speculates
before it polls its sources, and the session registers a fetch on
submit and polls it when the run polls, so what a planner speculates is
registered beside the reads it waits for and a coalescing source folds
them into one read.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A chunk's filter planner announced its projection through its own
session, which registered a second request for a segment speculation
had already announced beside the chunk's reads. The second request was
dispatched alone when the projection fetched, after the chunk's read
had gone: two of each partition's eleven requests came back as a
separate read inside the same range. A session announcement now takes
the speculated announcement, and a fetch prefers it too.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A chunk straddling two partitions is fetched by both. A partition's
chunk took its speculated read out of the service's map, so when the
neighbouring partition speculated the same segment a moment later it
started another read, and once the first had completed the file's
shared source no longer folded them: on q6 at SF1, 26 segments were
read twice. A speculated read now stays in the service's map for as
long as the service lives, cloned by every session that fetches it.
Trace events name each new segment request by the path that made it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Filtered chunks were cut on a fixed 1M-row grid over the file, so a
partition of 430K rows straddling a grid line got a small second
chunk, speculated only on the next idle wait, after its neighbour's
read had gone: on q6 at SF1 those tails came back as separate reads of
ranges already read. Chunks now start at the partition's own first row,
so a partition shorter than a chunk is one chunk and its reads go out
together.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
One chunk per idle wait left a partition of five chunks at SF10
reading its last three only once their tasks started, where the
stacked scan had every split prefetching from the start. The prune
planner now speculates every chunk's predicate prefetches and
projection announcements in one batch on the first ask, registered
together so the partition's reads coalesce as one scan's.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Two chunks of one partition can straddle a writer chunk. The first
chunk's session took the speculated announcement for it and read it;
the second found nothing speculated, announced a request of its own and
read the segment again at the end of the scan: q12 at SF10 issued 30
single-request reads of ranges already read. A speculated announcement
now stays with the service, a session's own announcement of the segment
adds nothing, and the first fetch turns it into the shared read every
later session finds.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A projection-only partition of seventeen 64K-row chunks handed each
chunk through the channel on its own, each needing a poll, a hop and a
task spawn, so its chunks started their first reads a few hundred
microseconds apart and the last ones no longer coalesced: q12 at SF10
issued 27 single-request reads of the orders table at the end of the
scan, where the stacked scan spawned every split of a partition within
microseconds. The root task now collects every chunk the run spawns
until it has a batch, waits, or finishes, and sends them as one group
the consumer spawns at once.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
…ments

A read only announced is not started until the projection fetches it,
after the filter, with nothing to overlap, and in a file whose columns
are written in bursts a wide projection column shares no read with the
narrow predicate beside it. On q14 at SF1 the projection waited 2.4 to
4 ms on reads of its own while its CPU was under 0.1 ms, the whole gap
to V1, which polls all of a split's reads at open. The prune planner
now speculates the projection's prefetches after the predicates' in the
same batch, and the session registers a batch's announcements before it
starts any read, so what is announced is dispatched with the reads it
coalesces with. Debug events mark the projection's start, reads and
finish, and each batch handed to the engine.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
joseph-isaacs and others added 9 commits October 23, 2026 01:47
A filtered partition of fewer rows than a chunk ran as one chunk, on one
task from its first read to its last batch, and an engine's partitions
started together straggled on uneven cores: identical 430K-row filter
chunks took 0.5 to 5 ms at SF1, and the query waited for the slowest
while V1's finer futures were stolen by the idle cores. A filtered chunk
is now a quarter of the partition's rows on the row grid, between 256K
and 1M rows, so a partition's chunks after its first are spawned where
the runtime has room. SF1 partitions get two chunks; SF10 partitions keep
their 1M-row chunks. A fixed 256K cost SF10 q1 8%.

Local, 14 partitions, against the previous head: SF1 0.993 median
(q15 0.976, q19 0.982), SF10 1.008.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Interning hashes an expression's whole tree, and under a mutex the
partitions opening a file together serialized on it: 3 ms of lock
spinning over 15 runs of q15. Readers probe concurrently; only a miss
takes the write lock, and checks again under it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
… beside

A zone-map fetch is the read everything else in a partition waits on, yet
the file's read driver coalesced it with the chunk reads speculated beside
it, so pruning waited for a 3 MB read from the page cache and, over an
object store, for a 9.5 MB one behind 150 others. An urgent intent reads
a segment on its own as soon as it is published, coalesced only with
other urgent reads: a segment source may request a segment alone, the
read driver keeps such requests apart, and the prune planner's adaptors
publish their reads urgent. Over MinIO with 20 ms of round trip, SF10 q6
pruning finished at 25 to 50 ms instead of 320 to 390.

Local: neutral (SF1 0.996, SF10 1.005 against the previous commit). MinIO
with 20 ms round trip and 100 MB/s per connection: SF1 0.60 of V1,
SF10 1.2 (the SF10 loss is addressed next).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A partition speculated every chunk's reads at once, and the file's read
driver dispatches in registration order, so with an engine's partitions
started together the last partitions' first chunks queued behind the
first partitions' last: over MinIO at SF10 every partition's zone maps
and first batches came at once, and the batches of the rest tailed for
300 ms while V1, reading one split at a time per partition, shared the
bandwidth evenly. Each partition now reads ahead only its first chunks
when the store is not a local file, two by default; the later chunks fetch
their own reads as their tasks start, interleaved across partitions. A
local file keeps reading every chunk ahead: reading two ahead there cost
SF10 6%.

MinIO, 20 ms round trip, 100 MB/s per connection, 10 partitions at SF10:
0.90 of V1 at the median (q1 0.79, q19 0.66, q6 1.23 bimodal), from 1.27
with everything read ahead; SF1 at 14 partitions 0.61 of V1. Local
unchanged (SF1 1.001, SF10 1.001).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A V2 scan cache lived only as long as the scans of one query holding it,
so every query lowered the file's layout, optimized its projection and
filter plans, proved its zones and decoded its dictionary values again:
q2 at SF1 ran 35 prepares a query, 1.6 ms of CPU, with the first per
table on the critical path of a five-table join chain. The cache now
lives beside the footer in DataFusion's session-level file metadata
cache, so a later query of the file plans nothing again; partitions
opening a file the cache misses still share one cache, put with the
entry the first of them writes, and a rewritten file invalidates both.
The entry's reported size does not count the cache, which grows after
the entry is put.

Local, 14 partitions, against the previous commit: SF1 0.965 (q19 0.90,
q6 0.93, q2 0.96, q13 0.96), SF10 0.962 (q6 0.95, q12 0.95, q19 0.94).
Against V1: SF1 0.955, SF10 0.81 on the targeted sets.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
… four and a sliver

A SF10 orders partition of 1,064,960 rows was cut into four 262,144-row chunks and one of
16,384 rows, each sliver with its own reads, filter evaluation and batches. Rounding the
quarter up to the row grid cuts it into three chunks of 270,336 rows and one of 253,952.

The prepare diagnostic now reports the chunk rows a scan was given.

Timing is neutral on TPC-H SF10 (q1, q3, q10, q12 within noise of the previous rule). A
byte-aware rule that cut q13's wide o_comment predicate into 106,496-row chunks was tried
and measured within the 2% noise floor of the old rule across four sessions, so it was not
kept.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
The run clears a root's session when the root finishes. The first chunk a partition spawns,
and every chunk when the driver runs chunks in the partition's own run, were admitted with the
root planner's session, so a root finishing dropped the in-flight reads of the chunks still
running: with the scan concurrency at zero every TPC-H query failed with "The split's driver is
waiting with no reads in flight". Each admitted root now gets a session from the scan's IO
service, as a chunk on a task of its own already did.

A zero scan concurrency, which for the V2 driver means chunks run in the partition's own run,
no longer reaches the V1 builder's assertion that it is above zero.

The regression test reads a wide column from a throttled store whose reads take longer the
larger they are, so a chunk's reads are still in flight when another chunk finishes; it fails
with that error before this change.

Running chunks in the partition's own run is not faster: against V1 at SF1 it measured q8 0.966
(default 0.992), q9 1.015 (0.999), q21 1.014 (1.025), q6 0.812 (0.847), q1 0.960 (0.986), and
at SF10 q13 1.052 (1.055), q22 1.023 (1.072), q6 0.825 (0.778), q1 0.857 (0.857), so the
default stays.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
… fast mode

A V2 scan's burst of reads opens a few hundred connections to the store (V1 about 160), and
with object_store's unbounded idle pool every later query reused them all and alternated
between a fast and a slow mode: q6 at SF10 on MinIO behind toxiproxy (20 ms RTT, 4 ms jitter,
100 MB/s a connection, 10 partitions) ran 404, 547, 268, 506, 269, 273 ms. With the idle pool
bounded to 32 connections about 85 are in use and every query is fast: q6 235 ms against V1's
340, q1 420 against 653, q12 293 against 536. V1 is unchanged by the bound. The same key set
through `AWS_POOL_MAX_IDLE_PER_HOST` still overrides it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
A file's DataFusion partitions share one FileSegmentSource, so one read driver with at most 32
reads in flight serves every partition of the file. On the 96-core CI runner the full branch
measures 1.003 of V1 at SF1 while 14 local cores measure 0.963 and 96 time-shared local
partitions 0.876: the suspect is that shared driver. This builds the V2 scan over the file's
own segment source per partition, as V1 does, to measure it on CI. Not for merging.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs added action/bench-sql Run SQL benchmarks without Vortex Compact on this PR and removed action/bench-sql Run SQL benchmarks without Vortex Compact on this PR labels Oct 23, 2026
@joseph-isaacs joseph-isaacs reopened this Oct 24, 2026
@joseph-isaacs joseph-isaacs added action/bench-sql Run SQL benchmarks without Vortex Compact on this PR and removed action/bench-sql Run SQL benchmarks without Vortex Compact on this PR labels Oct 24, 2026
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vr65ZwPZz4LPjkvDA6ZUuE
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling 📖

Commits: PR e922dfcb vs base 31027fc2
Vortex (geomean): hot 1.009x ➖ · cold 1.082x ➖


datafusion / vortex-file-compressed / ns (1.009x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
polarsignals_q00/datafusion:vortex-file-compressed 44649674 / 44703721 / -0.1% 93422879 / 84854142 / +10.1% 🔴 0.48 / 0.53 / -9.3%
polarsignals_q01/datafusion:vortex-file-compressed 51521138 / 50117699 / +2.8% 118971687 / 107175165 / +11.0% 🔴 0.43 / 0.47 / -7.4%
polarsignals_q02/datafusion:vortex-file-compressed 43592682 / 43508170 / +0.2% 92399160 / 77807857 / +18.8% 🔴 0.47 / 0.56 / -15.6%
polarsignals_q03/datafusion:vortex-file-compressed 54538490 / 54672978 / -0.2% 118096303 / 111546045 / +5.9% 0.46 / 0.49 / -5.8%
polarsignals_q04/datafusion:vortex-file-compressed 9424125 / 9233656 / +2.1% 50014252 / 40393230 / +23.8% 🔴 0.19 / 0.23 / -17.6%
polarsignals_q05/datafusion:vortex-file-compressed 12077061 / 12216035 / -1.1% 53467426 / 53576648 / -0.2% 0.23 / 0.23 / -0.9%
polarsignals_q06/datafusion:vortex-file-compressed 23393104 / 23279492 / +0.5% 67637501 / 63559450 / +6.4% 0.35 / 0.37 / -5.6%
polarsignals_q07/datafusion:vortex-file-compressed 11223822 / 10987350 / +2.2% 54009600 / 51686778 / +4.5% 0.21 / 0.21 / -2.2%
polarsignals_q08/datafusion:vortex-file-compressed 98669050 / 98711504 / -0.0% 165825926 / 163762990 / +1.3% 0.60 / 0.60 / -1.3%
polarsignals_q09/datafusion:vortex-file-compressed 10186653 / 9896820 / +2.9% 50631372 / 49072206 / +3.2% 0.20 / 0.20 / -0.2%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (low confidence)
Attributed Vortex impact: -1.6%
Engines: DataFusion No clear signal (-3.7%, low confidence) · DuckDB No clear signal (+0.6%, low confidence)
Vortex (geomean): hot 0.980x ➖ · cold 0.950x ➖
Parquet (geomean): hot 0.996x ➖ · cold 0.972x ➖
Shifts: Parquet (control) -0.4% · Median polish -0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.955x ➖, 2↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/datafusion:vortex-file-compressed 7188166 / 6897139 / +4.2% 14394825 / 20738004 / -30.6% 🟢 0.50 / 0.33 / +50.1%
fineweb_q01/datafusion:vortex-file-compressed 7421639 / 8950928 / -17.1% 🟢 43172967 / 49376442 / -12.6% 🟢 0.17 / 0.18 / -5.2%
fineweb_q02/datafusion:vortex-file-compressed 9016422 / 9931704 / -9.2% 44728566 / 53640180 / -16.6% 🟢 0.20 / 0.19 / +8.9%
fineweb_q03/datafusion:vortex-file-compressed 20419856 / 20039514 / +1.9% 106326924 / 114286303 / -7.0% 0.19 / 0.18 / +9.5%
fineweb_q04/datafusion:vortex-file-compressed 66397216 / 66723486 / -0.5% 156172287 / 162291762 / -3.8% 0.43 / 0.41 / +3.4%
fineweb_q05/datafusion:vortex-file-compressed 67893820 / 66463894 / +2.2% 150513509 / 155104989 / -3.0% 0.45 / 0.43 / +5.3%
fineweb_q06/datafusion:vortex-file-compressed 18369931 / 19086454 / -3.8% 107918968 / 123752154 / -12.8% 🟢 0.17 / 0.15 / +10.4%
fineweb_q07/datafusion:vortex-file-compressed 18538340 / 16885802 / +9.8% 105790388 / 115415877 / -8.3% 0.18 / 0.15 / +19.8%
fineweb_q08/datafusion:vortex-file-compressed 7581288 / 9859151 / -23.1% 🟢 63596627 / 50386561 / +26.2% 🔴 0.12 / 0.20 / -39.1%
datafusion / parquet / ns (0.992x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/datafusion:parquet 9340652 / 9467992 / -1.3% 34323971 / 33397772 / +2.8% 0.27 / 0.28 / -4.0%
fineweb_q01/datafusion:parquet 74798434 / 74764121 / +0.0% 157233300 / 160503059 / -2.0% 0.48 / 0.47 / +2.1%
fineweb_q02/datafusion:parquet 74746966 / 75148070 / -0.5% 150279983 / 163942663 / -8.3% 0.50 / 0.46 / +8.5%
fineweb_q03/datafusion:parquet 74516450 / 75553874 / -1.4% 154961972 / 159658998 / -2.9% 0.48 / 0.47 / +1.6%
fineweb_q04/datafusion:parquet 82530086 / 84229642 / -2.0% 151377441 / 156251424 / -3.1% 0.55 / 0.54 / +1.1%
fineweb_q05/datafusion:parquet 80402770 / 81395592 / -1.2% 153575041 / 157499418 / -2.5% 0.52 / 0.52 / +1.3%
fineweb_q06/datafusion:parquet 75562882 / 77394579 / -2.4% 151824021 / 169259690 / -10.3% 🟢 0.50 / 0.46 / +8.8%
fineweb_q07/datafusion:parquet 76148598 / 75630914 / +0.7% 152933247 / 163432861 / -6.4% 0.50 / 0.46 / +7.6%
fineweb_q08/datafusion:parquet 74642184 / 73955137 / +0.9% 149957929 / 168547456 / -11.0% 🟢 0.50 / 0.44 / +13.4%
duckdb / vortex-file-compressed / ns (1.005x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/duckdb:vortex-file-compressed 2362540 / 2324310 / +1.6% 7613004 / 7436608 / +2.4% 0.31 / 0.31 / -0.7%
fineweb_q01/duckdb:vortex-file-compressed 9847395 / 9599964 / +2.6% 31815209 / 35034373 / -9.2% 0.31 / 0.27 / +13.0%
fineweb_q02/duckdb:vortex-file-compressed 10955554 / 10746668 / +1.9% 34505262 / 35746280 / -3.5% 0.32 / 0.30 / +5.6%
fineweb_q03/duckdb:vortex-file-compressed 19255482 / 19256648 / -0.0% 93266503 / 99547163 / -6.3% 0.21 / 0.19 / +6.7%
fineweb_q04/duckdb:vortex-file-compressed 66906612 / 68309000 / -2.1% 115815948 / 115019755 / +0.7% 0.58 / 0.59 / -2.7%
fineweb_q05/duckdb:vortex-file-compressed 67027330 / 66549545 / +0.7% 110133494 / 110435533 / -0.3% 0.61 / 0.60 / +1.0%
fineweb_q06/duckdb:vortex-file-compressed 19333012 / 19181495 / +0.8% 97689077 / 95116090 / +2.7% 0.20 / 0.20 / -1.9%
fineweb_q07/duckdb:vortex-file-compressed 18850193 / 18860556 / -0.1% 95734368 / 90064083 / +6.3% 0.20 / 0.21 / -6.0%
fineweb_q08/duckdb:vortex-file-compressed 5589887 / 5653240 / -1.1% 14164554 / 14636158 / -3.2% 0.39 / 0.39 / +2.2%
duckdb / parquet / ns (0.999x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
fineweb_q00/duckdb:parquet 27436430 / 27583605 / -0.5% 29915107 / 29899319 / +0.1% 0.92 / 0.92 / -0.6%
fineweb_q01/duckdb:parquet 60175180 / 60839176 / -1.1% 81472751 / 87811880 / -7.2% 0.74 / 0.69 / +6.6%
fineweb_q02/duckdb:parquet 64064928 / 64631548 / -0.9% 85706272 / 87520140 / -2.1% 0.75 / 0.74 / +1.2%
fineweb_q03/duckdb:parquet 128676532 / 128749726 / -0.1% 192479694 / 188767985 / +2.0% 0.67 / 0.68 / -2.0%
fineweb_q04/duckdb:parquet 179156245 / 181890972 / -1.5% 224800151 / 228431291 / -1.6% 0.80 / 0.80 / +0.1%
fineweb_q05/duckdb:parquet 177494620 / 173075328 / +2.6% 228525080 / 220798189 / +3.5% 0.78 / 0.78 / -0.9%
fineweb_q06/duckdb:parquet 95459828 / 96221180 / -0.8% 159358776 / 159338525 / +0.0% 0.60 / 0.60 / -0.8%
fineweb_q07/duckdb:parquet 98214344 / 97232478 / +1.0% 157438640 / 157247378 / +0.1% 0.62 / 0.62 / +0.9%
fineweb_q08/duckdb:parquet 33682788 / 33478700 / +0.6% 33961417 / 33890855 / +0.2% 0.99 / 0.99 / +0.4%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on NVME 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +1.4%
Engines: DataFusion No clear signal (+2.9%, low confidence) · DuckDB No clear signal (-0.0%, low confidence)
Vortex (geomean): hot 1.018x ➖ · cold 1.046x ➖
Parquet (geomean): hot 1.004x ➖ · cold 1.002x ➖
Shifts: Parquet (control) +0.4% · Median polish +0.4%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (1.029x ➖, 1↑ 3↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 17469492 / 14713851 / +18.7% 🔴 63871315 / 43934225 / +45.4% 🔴 0.27 / 0.33 / -18.3%
tpch_q02/datafusion:vortex-file-compressed 18262363 / 17054655 / +7.1% 37998393 / 34777973 / +9.3% 0.48 / 0.49 / -2.0%
tpch_q03/datafusion:vortex-file-compressed 19620204 / 18917295 / +3.7% 46203851 / 46703661 / -1.1% 0.42 / 0.41 / +4.8%
tpch_q04/datafusion:vortex-file-compressed 11601712 / 10058589 / +15.3% 🔴 39800372 / 34213054 / +16.3% 🔴 0.29 / 0.29 / -0.9%
tpch_q05/datafusion:vortex-file-compressed 38560268 / 36472139 / +5.7% 71657389 / 67806549 / +5.7% 0.54 / 0.54 / +0.0%
tpch_q06/datafusion:vortex-file-compressed 5486764 / 5884484 / -6.8% 38606357 / 30112638 / +28.2% 🔴 0.14 / 0.20 / -27.3%
tpch_q07/datafusion:vortex-file-compressed 52961837 / 51430597 / +3.0% 84844643 / 77890348 / +8.9% 0.62 / 0.66 / -5.5%
tpch_q08/datafusion:vortex-file-compressed 51623545 / 51800896 / -0.3% 98879822 / 82597471 / +19.7% 🔴 0.52 / 0.63 / -16.8%
tpch_q09/datafusion:vortex-file-compressed 49780128 / 49434260 / +0.7% 90902405 / 77925190 / +16.7% 🔴 0.55 / 0.63 / -13.7%
tpch_q10/datafusion:vortex-file-compressed 18373893 / 17012125 / +8.0% 52997721 / 52598266 / +0.8% 0.35 / 0.32 / +7.2%
tpch_q11/datafusion:vortex-file-compressed 15336456 / 14880533 / +3.1% 34994507 / 36611768 / -4.4% 0.44 / 0.41 / +7.8%
tpch_q12/datafusion:vortex-file-compressed 20987090 / 22683058 / -7.5% 69074555 / 44444826 / +55.4% 🔴 0.30 / 0.51 / -40.5%
tpch_q13/datafusion:vortex-file-compressed 19235703 / 19775237 / -2.7% 42351868 / 43251174 / -2.1% 0.45 / 0.46 / -0.7%
tpch_q14/datafusion:vortex-file-compressed 15619439 / 14825554 / +5.4% 51190861 / 41497107 / +23.4% 🔴 0.31 / 0.36 / -14.6%
tpch_q15/datafusion:vortex-file-compressed 19602502 / 18200006 / +7.7% 52528149 / 44292868 / +18.6% 🔴 0.37 / 0.41 / -9.2%
tpch_q16/datafusion:vortex-file-compressed 18885801 / 18259087 / +3.4% 39772049 / 41217467 / -3.5% 0.47 / 0.44 / +7.2%
tpch_q17/datafusion:vortex-file-compressed 29060384 / 28191278 / +3.1% 71421949 / 61015252 / +17.1% 🔴 0.41 / 0.46 / -11.9%
tpch_q18/datafusion:vortex-file-compressed 37455616 / 36862242 / +1.6% 68811543 / 58320267 / +18.0% 🔴 0.54 / 0.63 / -13.9%
tpch_q19/datafusion:vortex-file-compressed 11919429 / 14585925 / -18.3% 🟢 50461435 / 44922288 / +12.3% 🔴 0.24 / 0.32 / -27.3%
tpch_q20/datafusion:vortex-file-compressed 21239157 / 20334853 / +4.4% 54245593 / 47226541 / +14.9% 🔴 0.39 / 0.43 / -9.1%
tpch_q21/datafusion:vortex-file-compressed 42540517 / 38252573 / +11.2% 🔴 82072062 / 69625004 / +17.9% 🔴 0.52 / 0.55 / -5.7%
tpch_q22/datafusion:vortex-file-compressed 12483513 / 11949536 / +4.5% 32680064 / 34137394 / -4.3% 0.38 / 0.35 / +9.1%
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 18118653 / 18370927 / -1.4% 42600916 / 46265614 / -7.9% 0.43 / 0.40 / +7.1%
tpch_q02/datafusion:parquet 49120559 / 49394968 / -0.6% 73473861 / 75717287 / -3.0% 0.67 / 0.65 / +2.5%
tpch_q03/datafusion:parquet 40784847 / 39990869 / +2.0% 73134949 / 72648407 / +0.7% 0.56 / 0.55 / +1.3%
tpch_q04/datafusion:parquet 17585732 / 17768672 / -1.0% 45296241 / 45759573 / -1.0% 0.39 / 0.39 / -0.0%
tpch_q05/datafusion:parquet 69950551 / 70645920 / -1.0% 103340274 / 104015549 / -0.6% 0.68 / 0.68 / -0.3%
tpch_q06/datafusion:parquet 10221559 / 10413573 / -1.8% 35696065 / 36831440 / -3.1% 0.29 / 0.28 / +1.3%
tpch_q07/datafusion:parquet 77745755 / 77956161 / -0.3% 116395099 / 111570258 / +4.3% 0.67 / 0.70 / -4.4%
tpch_q08/datafusion:parquet 89738000 / 88645454 / +1.2% 130736044 / 127106180 / +2.9% 0.69 / 0.70 / -1.6%
tpch_q09/datafusion:parquet 76039191 / 76597626 / -0.7% 109521596 / 110008271 / -0.4% 0.69 / 0.70 / -0.3%
tpch_q10/datafusion:parquet 30956624 / 31346841 / -1.2% 62661736 / 63455392 / -1.3% 0.49 / 0.49 / +0.0%
tpch_q11/datafusion:parquet 38397571 / 38416254 / -0.0% 64784861 / 66041101 / -1.9% 0.59 / 0.58 / +1.9%
tpch_q12/datafusion:parquet 28188594 / 27993240 / +0.7% 55994183 / 56362413 / -0.7% 0.50 / 0.50 / +1.4%
tpch_q13/datafusion:parquet 28599315 / 27988679 / +2.2% 49348204 / 48880660 / +1.0% 0.58 / 0.57 / +1.2%
tpch_q14/datafusion:parquet 23854881 / 23905606 / -0.2% 53567320 / 54651953 / -2.0% 0.45 / 0.44 / +1.8%
tpch_q15/datafusion:parquet 38549959 / 38523264 / +0.1% 70114989 / 70532073 / -0.6% 0.55 / 0.55 / +0.7%
tpch_q16/datafusion:parquet 28681188 / 28715719 / -0.1% 56539301 / 53060783 / +6.6% 0.51 / 0.54 / -6.3%
tpch_q17/datafusion:parquet 43919087 / 44233782 / -0.7% 79249838 / 82760337 / -4.2% 0.55 / 0.53 / +3.7%
tpch_q18/datafusion:parquet 44693591 / 44090906 / +1.4% 69259935 / 71405128 / -3.0% 0.65 / 0.62 / +4.5%
tpch_q19/datafusion:parquet 21103637 / 20917686 / +0.9% 51456711 / 52876133 / -2.7% 0.41 / 0.40 / +3.7%
tpch_q20/datafusion:parquet 54933666 / 54750943 / +0.3% 91219366 / 92655325 / -1.5% 0.60 / 0.59 / +1.9%
tpch_q21/datafusion:parquet 77637895 / 76831356 / +1.0% 113931396 / 107785703 / +5.7% 0.68 / 0.71 / -4.4%
tpch_q22/datafusion:parquet 21316903 / 21278347 / +0.2% 45933062 / 46144642 / -0.5% 0.46 / 0.46 / +0.6%
duckdb / vortex-file-compressed / ns (1.007x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 11215036 / 10202574 / +9.9% 21691238 / 22770181 / -4.7% 0.52 / 0.45 / +15.4%
tpch_q02/duckdb:vortex-file-compressed 15686564 / 15517523 / +1.1% 25089471 / 24826836 / +1.1% 0.63 / 0.63 / +0.0%
tpch_q03/duckdb:vortex-file-compressed 19666916 / 19770140 / -0.5% 35171899 / 36586638 / -3.9% 0.56 / 0.54 / +3.5%
tpch_q04/duckdb:vortex-file-compressed 12664722 / 12664759 / -0.0% 24845388 / 26715559 / -7.0% 0.51 / 0.47 / +7.5%
tpch_q05/duckdb:vortex-file-compressed 21578439 / 20810652 / +3.7% 34437444 / 34729784 / -0.8% 0.63 / 0.60 / +4.6%
tpch_q06/duckdb:vortex-file-compressed 5709074 / 5769840 / -1.1% 15553954 / 16422571 / -5.3% 0.37 / 0.35 / +4.5%
tpch_q07/duckdb:vortex-file-compressed 25008806 / 24999895 / +0.0% 39910738 / 41904543 / -4.8% 0.63 / 0.60 / +5.0%
tpch_q08/duckdb:vortex-file-compressed 21816037 / 22007515 / -0.9% 37676164 / 39066846 / -3.6% 0.58 / 0.56 / +2.8%
tpch_q09/duckdb:vortex-file-compressed 22900849 / 22265113 / +2.9% 42857360 / 41886406 / +2.3% 0.53 / 0.53 / +0.5%
tpch_q10/duckdb:vortex-file-compressed 23900408 / 23644636 / +1.1% 38330680 / 41879278 / -8.5% 0.62 / 0.56 / +10.4%
tpch_q11/duckdb:vortex-file-compressed 7918944 / 7919924 / -0.0% 15310929 / 15870986 / -3.5% 0.52 / 0.50 / +3.6%
tpch_q12/duckdb:vortex-file-compressed 16733027 / 16677393 / +0.3% 30736065 / 34315077 / -10.4% 🟢 0.54 / 0.49 / +12.0%
tpch_q13/duckdb:vortex-file-compressed 21114535 / 21231747 / -0.6% 33129380 / 33667326 / -1.6% 0.64 / 0.63 / +1.1%
tpch_q14/duckdb:vortex-file-compressed 12468471 / 12465575 / +0.0% 24376579 / 24756963 / -1.5% 0.51 / 0.50 / +1.6%
tpch_q15/duckdb:vortex-file-compressed 9182195 / 9244595 / -0.7% 20560833 / 20087961 / +2.4% 0.45 / 0.46 / -3.0%
tpch_q16/duckdb:vortex-file-compressed 18991973 / 18978950 / +0.1% 26062499 / 25579185 / +1.9% 0.73 / 0.74 / -1.8%
tpch_q17/duckdb:vortex-file-compressed 14219169 / 13963565 / +1.8% 28486375 / 29001555 / -1.8% 0.50 / 0.48 / +3.7%
tpch_q18/duckdb:vortex-file-compressed 26697913 / 26642020 / +0.2% 36434773 / 37457586 / -2.7% 0.73 / 0.71 / +3.0%
tpch_q19/duckdb:vortex-file-compressed 12235006 / 12329480 / -0.8% 26511473 / 27996399 / -5.3% 0.46 / 0.44 / +4.8%
tpch_q20/duckdb:vortex-file-compressed 15329368 / 15457154 / -0.8% 29875583 / 33369989 / -10.5% 🟢 0.51 / 0.46 / +10.8%
tpch_q21/duckdb:vortex-file-compressed 39485587 / 39331323 / +0.4% 57303247 / 60670342 / -5.5% 0.69 / 0.65 / +6.3%
tpch_q22/duckdb:vortex-file-compressed 18844189 / 18843680 / +0.0% 29083248 / 29619121 / -1.8% 0.65 / 0.64 / +1.8%
duckdb / parquet / ns (1.007x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 18530415 / 17674164 / +4.8% 22260057 / 22122981 / +0.6% 0.83 / 0.80 / +4.2%
tpch_q02/duckdb:parquet 30523102 / 30279321 / +0.8% 39753972 / 38931524 / +2.1% 0.77 / 0.78 / -1.3%
tpch_q03/duckdb:parquet 36568337 / 36416498 / +0.4% 45411760 / 47184665 / -3.8% 0.81 / 0.77 / +4.3%
tpch_q04/duckdb:parquet 25998012 / 26560817 / -2.1% 33776249 / 34543225 / -2.2% 0.77 / 0.77 / +0.1%
tpch_q05/duckdb:parquet 41393775 / 40857778 / +1.3% 52410494 / 50301955 / +4.2% 0.79 / 0.81 / -2.8%
tpch_q06/duckdb:parquet 11086583 / 11201439 / -1.0% 16111451 / 16016055 / +0.6% 0.69 / 0.70 / -1.6%
tpch_q07/duckdb:parquet 43463435 / 44370228 / -2.0% 55989292 / 56220641 / -0.4% 0.78 / 0.79 / -1.6%
tpch_q08/duckdb:parquet 48344409 / 48396529 / -0.1% 59734589 / 59989608 / -0.4% 0.81 / 0.81 / +0.3%
tpch_q09/duckdb:parquet 52457566 / 51772743 / +1.3% 62278072 / 60872937 / +2.3% 0.84 / 0.85 / -1.0%
tpch_q10/duckdb:parquet 42929191 / 42230028 / +1.7% 50919431 / 49912091 / +2.0% 0.84 / 0.85 / -0.4%
tpch_q11/duckdb:parquet 17500775 / 16954923 / +3.2% 25322025 / 24120127 / +5.0% 0.69 / 0.70 / -1.7%
tpch_q12/duckdb:parquet 23255722 / 22994759 / +1.1% 32983923 / 31003239 / +6.4% 0.71 / 0.74 / -4.9%
tpch_q13/duckdb:parquet 36665898 / 35734437 / +2.6% 41474339 / 41649814 / -0.4% 0.88 / 0.86 / +3.0%
tpch_q14/duckdb:parquet 26128806 / 26493370 / -1.4% 33927452 / 32997696 / +2.8% 0.77 / 0.80 / -4.1%
tpch_q15/duckdb:parquet 19238873 / 19104688 / +0.7% 25888660 / 25070351 / +3.3% 0.74 / 0.76 / -2.5%
tpch_q16/duckdb:parquet 31480821 / 30895398 / +1.9% 38990153 / 38855062 / +0.3% 0.81 / 0.80 / +1.5%
tpch_q17/duckdb:parquet 26293887 / 26787312 / -1.8% 34903806 / 33962520 / +2.8% 0.75 / 0.79 / -4.5%
tpch_q18/duckdb:parquet 39994045 / 38690518 / +3.4% 48212160 / 48086840 / +0.3% 0.83 / 0.80 / +3.1%
tpch_q19/duckdb:parquet 23125219 / 23552471 / -1.8% 30593680 / 31570739 / -3.1% 0.76 / 0.75 / +1.3%
tpch_q20/duckdb:parquet 33518182 / 32309714 / +3.7% 43464851 / 42977613 / +1.1% 0.77 / 0.75 / +2.6%
tpch_q21/duckdb:parquet 64474703 / 64649769 / -0.3% 75506800 / 76466838 / -1.3% 0.85 / 0.85 / +1.0%
tpch_q22/duckdb:parquet 24031397 / 24061977 / -0.1% 33059925 / 32226626 / +2.6% 0.73 / 0.75 / -2.6%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.2%
Engines: DataFusion No clear signal (-0.9%, low confidence) · DuckDB No clear signal (+1.3%, low confidence)
Vortex (geomean): hot 0.995x ➖ · cold 1.002x ➖
Parquet (geomean): hot 0.993x ➖ · cold 1.005x ➖
Shifts: Parquet (control) -0.7% · Median polish -0.1%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.993x ➖, 3↑ 1↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 85477511 / 83819237 / +2.0% 174528308 / 153701322 / +13.6% 🔴 0.49 / 0.55 / -10.2%
tpch_q02/datafusion:vortex-file-compressed 64894714 / 64419306 / +0.7% 99015721 / 96263204 / +2.9% 0.66 / 0.67 / -2.1%
tpch_q03/datafusion:vortex-file-compressed 63238118 / 60645145 / +4.3% 127075071 / 118507951 / +7.2% 0.50 / 0.51 / -2.8%
tpch_q04/datafusion:vortex-file-compressed 35427764 / 33439041 / +5.9% 102709285 / 72923952 / +40.8% 🔴 0.34 / 0.46 / -24.8%
tpch_q05/datafusion:vortex-file-compressed 115767523 / 115614074 / +0.1% 195419989 / 186235243 / +4.9% 0.59 / 0.62 / -4.6%
tpch_q06/datafusion:vortex-file-compressed 11117032 / 13740406 / -19.1% 🟢 86597997 / 73911613 / +17.2% 🔴 0.13 / 0.19 / -30.9%
tpch_q07/datafusion:vortex-file-compressed 137105602 / 131864811 / +4.0% 217640102 / 187493110 / +16.1% 🔴 0.63 / 0.70 / -10.4%
tpch_q08/datafusion:vortex-file-compressed 140191428 / 141818703 / -1.1% 212301610 / 216220273 / -1.8% 0.66 / 0.66 / +0.7%
tpch_q09/datafusion:vortex-file-compressed 184683073 / 183402660 / +0.7% 276988287 / 261290511 / +6.0% 0.67 / 0.70 / -5.0%
tpch_q10/datafusion:vortex-file-compressed 73509009 / 70424327 / +4.4% 145763709 / 138512025 / +5.2% 0.50 / 0.51 / -0.8%
tpch_q11/datafusion:vortex-file-compressed 44989464 / 42350480 / +6.2% 79031816 / 68492390 / +15.4% 🔴 0.57 / 0.62 / -7.9%
tpch_q12/datafusion:vortex-file-compressed 35424977 / 43624111 / -18.8% 🟢 107344281 / 95767680 / +12.1% 🔴 0.33 / 0.46 / -27.6%
tpch_q13/datafusion:vortex-file-compressed 44570143 / 42791790 / +4.2% 82210892 / 75805000 / +8.5% 0.54 / 0.56 / -4.0%
tpch_q14/datafusion:vortex-file-compressed 23562621 / 24749109 / -4.8% 102218947 / 100787261 / +1.4% 0.23 / 0.25 / -6.1%
tpch_q15/datafusion:vortex-file-compressed 35913296 / 35026665 / +2.5% 104746689 / 98058902 / +6.8% 0.34 / 0.36 / -4.0%
tpch_q16/datafusion:vortex-file-compressed 38935496 / 36221533 / +7.5% 70300649 / 69120402 / +1.7% 0.55 / 0.52 / +5.7%
tpch_q17/datafusion:vortex-file-compressed 174308884 / 173749276 / +0.3% 240417596 / 225188365 / +6.8% 0.73 / 0.77 / -6.0%
tpch_q18/datafusion:vortex-file-compressed 200724672 / 198891015 / +0.9% 279184021 / 263320024 / +6.0% 0.72 / 0.76 / -4.8%
tpch_q19/datafusion:vortex-file-compressed 26662593 / 35539896 / -25.0% 🟢 100887087 / 97234865 / +3.8% 0.26 / 0.37 / -27.7%
tpch_q20/datafusion:vortex-file-compressed 64041418 / 60499980 / +5.9% 125590530 / 119484062 / +5.1% 0.51 / 0.51 / +0.7%
tpch_q21/datafusion:vortex-file-compressed 179513430 / 174984103 / +2.6% 252776019 / 235838248 / +7.2% 0.71 / 0.74 / -4.3%
tpch_q22/datafusion:vortex-file-compressed 27886794 / 25204477 / +10.6% 🔴 58679711 / 53986587 / +8.7% 0.48 / 0.47 / +1.8%
datafusion / parquet / ns (1.002x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 105174332 / 106046246 / -0.8% 157272217 / 154339962 / +1.9% 0.67 / 0.69 / -2.7%
tpch_q02/datafusion:parquet 98341987 / 97901810 / +0.4% 136152049 / 132320645 / +2.9% 0.72 / 0.74 / -2.4%
tpch_q03/datafusion:parquet 123028466 / 123208356 / -0.1% 177729069 / 175918629 / +1.0% 0.69 / 0.70 / -1.2%
tpch_q04/datafusion:parquet 51600599 / 52045863 / -0.9% 93249414 / 91549124 / +1.9% 0.55 / 0.57 / -2.7%
tpch_q05/datafusion:parquet 167641591 / 165441557 / +1.3% 231779615 / 234294629 / -1.1% 0.72 / 0.71 / +2.4%
tpch_q06/datafusion:parquet 41774334 / 41307359 / +1.1% 93184812 / 95484066 / -2.4% 0.45 / 0.43 / +3.6%
tpch_q07/datafusion:parquet 187533508 / 188937757 / -0.7% 250499541 / 261265971 / -4.1% 0.75 / 0.72 / +3.5%
tpch_q08/datafusion:parquet 203018878 / 203101330 / -0.0% 287611586 / 275774551 / +4.3% 0.71 / 0.74 / -4.2%
tpch_q09/datafusion:parquet 224298037 / 226546002 / -1.0% 299446790 / 298158363 / +0.4% 0.75 / 0.76 / -1.4%
tpch_q10/datafusion:parquet 145633553 / 145612170 / +0.0% 206764477 / 210001129 / -1.5% 0.70 / 0.69 / +1.6%
tpch_q11/datafusion:parquet 59600187 / 59663136 / -0.1% 92453342 / 89876831 / +2.9% 0.64 / 0.66 / -2.9%
tpch_q12/datafusion:parquet 72751817 / 70495653 / +3.2% 133858274 / 134763205 / -0.7% 0.54 / 0.52 / +3.9%
tpch_q13/datafusion:parquet 85943154 / 82966721 / +3.6% 129444909 / 127743075 / +1.3% 0.66 / 0.65 / +2.2%
tpch_q14/datafusion:parquet 63593160 / 63772637 / -0.3% 144657461 / 150741556 / -4.0% 0.44 / 0.42 / +3.9%
tpch_q15/datafusion:parquet 109587698 / 108679558 / +0.8% 169898526 / 166185695 / +2.2% 0.65 / 0.65 / -1.4%
tpch_q16/datafusion:parquet 44815595 / 45565890 / -1.6% 78522816 / 78172943 / +0.4% 0.57 / 0.58 / -2.1%
tpch_q17/datafusion:parquet 222104234 / 221411362 / +0.3% 290999739 / 284304016 / +2.4% 0.76 / 0.78 / -2.0%
tpch_q18/datafusion:parquet 213497659 / 216882452 / -1.6% 270314523 / 275705190 / -2.0% 0.79 / 0.79 / +0.4%
tpch_q19/datafusion:parquet 96788667 / 97109592 / -0.3% 181897116 / 182169957 / -0.1% 0.53 / 0.53 / -0.2%
tpch_q20/datafusion:parquet 135079671 / 134012823 / +0.8% 200345637 / 196828447 / +1.8% 0.67 / 0.68 / -1.0%
tpch_q21/datafusion:parquet 299001896 / 298743526 / +0.1% 389838353 / 392867968 / -0.8% 0.77 / 0.76 / +0.9%
tpch_q22/datafusion:parquet 43054017 / 42619973 / +1.0% 73447056 / 72596600 / +1.2% 0.59 / 0.59 / -0.2%
duckdb / vortex-file-compressed / ns (0.997x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 42294674 / 42902893 / -1.4% 69119419 / 81316156 / -15.0% 🟢 0.61 / 0.53 / +16.0%
tpch_q02/duckdb:vortex-file-compressed 29287207 / 29586319 / -1.0% 43599698 / 42937367 / +1.5% 0.67 / 0.69 / -2.5%
tpch_q03/duckdb:vortex-file-compressed 56402565 / 56715579 / -0.6% 101353185 / 112849072 / -10.2% 🟢 0.56 / 0.50 / +10.7%
tpch_q04/duckdb:vortex-file-compressed 52570564 / 52568778 / +0.0% 83278221 / 93624807 / -11.1% 🟢 0.63 / 0.56 / +12.4%
tpch_q05/duckdb:vortex-file-compressed 72854616 / 73335751 / -0.7% 114764593 / 122049176 / -6.0% 0.63 / 0.60 / +5.6%
tpch_q06/duckdb:vortex-file-compressed 19161822 / 19331339 / -0.9% 53773866 / 63483901 / -15.3% 🟢 0.36 / 0.30 / +17.0%
tpch_q07/duckdb:vortex-file-compressed 58565010 / 58457603 / +0.2% 113651787 / 127431986 / -10.8% 🟢 0.52 / 0.46 / +12.3%
tpch_q08/duckdb:vortex-file-compressed 90431270 / 88709278 / +1.9% 136723035 / 141430930 / -3.3% 0.66 / 0.63 / +5.5%
tpch_q09/duckdb:vortex-file-compressed 108436782 / 106326468 / +2.0% 156102408 / 175554087 / -11.1% 🟢 0.69 / 0.61 / +14.7%
tpch_q10/duckdb:vortex-file-compressed 99960099 / 101507511 / -1.5% 146681408 / 158297082 / -7.3% 0.68 / 0.64 / +6.3%
tpch_q11/duckdb:vortex-file-compressed 14872339 / 14853922 / +0.1% 26995263 / 28904087 / -6.6% 0.55 / 0.51 / +7.2%
tpch_q12/duckdb:vortex-file-compressed 57261941 / 57832003 / -1.0% 94914144 / 107336338 / -11.6% 🟢 0.60 / 0.54 / +12.0%
tpch_q13/duckdb:vortex-file-compressed 77718072 / 77638429 / +0.1% 100080328 / 103967248 / -3.7% 0.78 / 0.75 / +4.0%
tpch_q14/duckdb:vortex-file-compressed 31622659 / 31553049 / +0.2% 73851457 / 76871476 / -3.9% 0.43 / 0.41 / +4.3%
tpch_q15/duckdb:vortex-file-compressed 26304141 / 26746665 / -1.7% 66379184 / 74594159 / -11.0% 🟢 0.40 / 0.36 / +10.5%
tpch_q16/duckdb:vortex-file-compressed 51764454 / 51537955 / +0.4% 63091167 / 64321934 / -1.9% 0.82 / 0.80 / +2.4%
tpch_q17/duckdb:vortex-file-compressed 43064381 / 43986534 / -2.1% 80823249 / 83813312 / -3.6% 0.53 / 0.52 / +1.5%
tpch_q18/duckdb:vortex-file-compressed 99881395 / 99503222 / +0.4% 125848635 / 133874806 / -6.0% 0.79 / 0.74 / +6.8%
tpch_q19/duckdb:vortex-file-compressed 31911574 / 32071554 / -0.5% 81251036 / 90016871 / -9.7% 0.39 / 0.36 / +10.2%
tpch_q20/duckdb:vortex-file-compressed 47624402 / 47929906 / -0.6% 93395666 / 106171276 / -12.0% 🟢 0.51 / 0.45 / +13.0%
tpch_q21/duckdb:vortex-file-compressed 105506593 / 105528625 / -0.0% 150703020 / 156542185 / -3.7% 0.70 / 0.67 / +3.9%
tpch_q22/duckdb:vortex-file-compressed 35581223 / 35932351 / -1.0% 53724252 / 54963779 / -2.3% 0.66 / 0.65 / +1.3%
duckdb / parquet / ns (0.984x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 73461716 / 72692709 / +1.1% 88036885 / 87726211 / +0.4% 0.83 / 0.83 / +0.7%
tpch_q02/duckdb:parquet 52829414 / 54189876 / -2.5% 62377841 / 63778463 / -2.2% 0.85 / 0.85 / -0.3%
tpch_q03/duckdb:parquet 97361029 / 98768238 / -1.4% 115163372 / 119419107 / -3.6% 0.85 / 0.83 / +2.2%
tpch_q04/duckdb:parquet 90876111 / 91612844 / -0.8% 106744091 / 105211640 / +1.5% 0.85 / 0.87 / -2.2%
tpch_q05/duckdb:parquet 124365559 / 126076797 / -1.4% 169449097 / 177419118 / -4.5% 0.73 / 0.71 / +3.3%
tpch_q06/duckdb:parquet 43236921 / 47330771 / -8.6% 62722226 / 53645913 / +16.9% 🔴 0.69 / 0.88 / -21.9%
tpch_q07/duckdb:parquet 109417553 / 109032834 / +0.4% 142385509 / 141998737 / +0.3% 0.77 / 0.77 / +0.1%
tpch_q08/duckdb:parquet 152828118 / 155607118 / -1.8% 181779000 / 180462460 / +0.7% 0.84 / 0.86 / -2.5%
tpch_q09/duckdb:parquet 164443698 / 165683350 / -0.7% 199128701 / 196977131 / +1.1% 0.83 / 0.84 / -1.8%
tpch_q10/duckdb:parquet 131023761 / 128580846 / +1.9% 141555036 / 140080792 / +1.1% 0.93 / 0.92 / +0.8%
tpch_q11/duckdb:parquet 32789884 / 33462542 / -2.0% 43816557 / 43922420 / -0.2% 0.75 / 0.76 / -1.8%
tpch_q12/duckdb:parquet 74354233 / 74495201 / -0.2% 84505075 / 84766684 / -0.3% 0.88 / 0.88 / +0.1%
tpch_q13/duckdb:parquet 126961058 / 127518974 / -0.4% 128084582 / 132925937 / -3.6% 0.99 / 0.96 / +3.3%
tpch_q14/duckdb:parquet 77600997 / 78206420 / -0.8% 109613014 / 113533328 / -3.5% 0.71 / 0.69 / +2.8%
tpch_q15/duckdb:parquet 66001895 / 68521170 / -3.7% 91871283 / 89576252 / +2.6% 0.72 / 0.76 / -6.1%
tpch_q16/duckdb:parquet 64435271 / 64843534 / -0.6% 66565579 / 66900748 / -0.5% 0.97 / 0.97 / -0.1%
tpch_q17/duckdb:parquet 86752020 / 87064658 / -0.4% 123890986 / 119704369 / +3.5% 0.70 / 0.73 / -3.7%
tpch_q18/duckdb:parquet 124501471 / 126330565 / -1.4% 152990343 / 153470734 / -0.3% 0.81 / 0.82 / -1.1%
tpch_q19/duckdb:parquet 75182313 / 77980781 / -3.6% 106895741 / 107039556 / -0.1% 0.70 / 0.73 / -3.5%
tpch_q20/duckdb:parquet 91877359 / 95394113 / -3.7% 126143073 / 126310209 / -0.1% 0.73 / 0.76 / -3.6%
tpch_q21/duckdb:parquet 181180315 / 184709016 / -1.9% 232207278 / 223904938 / +3.7% 0.78 / 0.82 / -5.4%
tpch_q22/duckdb:parquet 46398889 / 47216661 / -1.7% 57926476 / 56059568 / +3.3% 0.80 / 0.84 / -4.9%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-DS SF=1 on NVME 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.6%
Engines: DataFusion No clear signal (+1.1%, low confidence) · DuckDB No clear signal (+0.0%, low confidence)
Vortex (geomean): hot 1.000x ➖ · cold 1.020x ➖
Parquet (geomean): hot 0.995x ➖ · cold 1.010x ➖
Shifts: Parquet (control) -0.5% · Median polish -0.5%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (1.008x ➖, 0↑ 1↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/datafusion:vortex-file-compressed 24648292 / 24422950 / +0.9% 45185688 / 41713721 / +8.3% 0.55 / 0.59 / -6.8%
tpcds_q02/datafusion:vortex-file-compressed 47417886 / 47249193 / +0.4% 65797602 / 65210228 / +0.9% 0.72 / 0.72 / -0.5%
tpcds_q03/datafusion:vortex-file-compressed 11819052 / 12259355 / -3.6% 27245996 / 27469091 / -0.8% 0.43 / 0.45 / -2.8%
tpcds_q04/datafusion:vortex-file-compressed 123914373 / 123073218 / +0.7% 159947774 / 152160996 / +5.1% 0.77 / 0.81 / -4.2%
tpcds_q05/datafusion:vortex-file-compressed 60563777 / 59858944 / +1.2% 82461551 / 80358024 / +2.6% 0.73 / 0.74 / -1.4%
tpcds_q06/datafusion:vortex-file-compressed 23200550 / 23056359 / +0.6% 46158713 / 41776705 / +10.5% 🔴 0.50 / 0.55 / -8.9%
tpcds_q07/datafusion:vortex-file-compressed 31215580 / 31123659 / +0.3% 53640875 / 52221538 / +2.7% 0.58 / 0.60 / -2.4%
tpcds_q08/datafusion:vortex-file-compressed 24862394 / 24761588 / +0.4% 43782286 / 40866146 / +7.1% 0.57 / 0.61 / -6.3%
tpcds_q09/datafusion:vortex-file-compressed 18759427 / 18211640 / +3.0% 34743639 / 33007998 / +5.3% 0.54 / 0.55 / -2.1%
tpcds_q10/datafusion:vortex-file-compressed 28013158 / 27274416 / +2.7% 49623455 / 46161892 / +7.5% 0.56 / 0.59 / -4.5%
tpcds_q11/datafusion:vortex-file-compressed 65205546 / 63905464 / +2.0% 91843115 / 91459183 / +0.4% 0.71 / 0.70 / +1.6%
tpcds_q12/datafusion:vortex-file-compressed 16546594 / 16902012 / -2.1% 32807513 / 31785413 / +3.2% 0.50 / 0.53 / -5.2%
tpcds_q13/datafusion:vortex-file-compressed 32691308 / 31875405 / +2.6% 55915414 / 54636491 / +2.3% 0.58 / 0.58 / +0.2%
tpcds_q14/datafusion:vortex-file-compressed 501431474 / 495254547 / +1.2% 557025265 / 546774120 / +1.9% 0.90 / 0.91 / -0.6%
tpcds_q15/datafusion:vortex-file-compressed 15836788 / 15420112 / +2.7% 33510327 / 33932883 / -1.2% 0.47 / 0.45 / +4.0%
tpcds_q16/datafusion:vortex-file-compressed 20134794 / 20087974 / +0.2% 40143225 / 37975694 / +5.7% 0.50 / 0.53 / -5.2%
tpcds_q17/datafusion:vortex-file-compressed 55883606 / 59171354 / -5.6% 84092138 / 74649401 / +12.6% 🔴 0.66 / 0.79 / -16.2%
tpcds_q18/datafusion:vortex-file-compressed 69162158 / 68902366 / +0.4% 90563341 / 90277737 / +0.3% 0.76 / 0.76 / +0.1%
tpcds_q19/datafusion:vortex-file-compressed 17446673 / 17092177 / +2.1% 39785860 / 39162658 / +1.6% 0.44 / 0.44 / +0.5%
tpcds_q20/datafusion:vortex-file-compressed 17892984 / 17636308 / +1.5% 34503412 / 34642134 / -0.4% 0.52 / 0.51 / +1.9%
tpcds_q21/datafusion:vortex-file-compressed 16116356 / 16451934 / -2.0% 37331557 / 38284480 / -2.5% 0.43 / 0.43 / +0.5%
tpcds_q22/datafusion:vortex-file-compressed 58102516 / 57363202 / +1.3% 80467208 / 80177293 / +0.4% 0.72 / 0.72 / +0.9%
tpcds_q23/datafusion:vortex-file-compressed 72181039 / 71131666 / +1.5% 96969443 / 105854192 / -8.4% 0.74 / 0.67 / +10.8%
tpcds_q24/datafusion:vortex-file-compressed 68951510 / 67904586 / +1.5% 92828429 / 90094037 / +3.0% 0.74 / 0.75 / -1.4%
tpcds_q25/datafusion:vortex-file-compressed 50288442 / 53333052 / -5.7% 73175666 / 76138784 / -3.9% 0.69 / 0.70 / -1.9%
tpcds_q26/datafusion:vortex-file-compressed 30531718 / 30640026 / -0.4% 50607695 / 48054573 / +5.3% 0.60 / 0.64 / -5.4%
tpcds_q27/datafusion:vortex-file-compressed 62639982 / 63534224 / -1.4% 84319031 / 80912224 / +4.2% 0.74 / 0.79 / -5.4%
tpcds_q28/datafusion:vortex-file-compressed 18300656 / 18333928 / -0.2% 34825942 / 34797932 / +0.1% 0.53 / 0.53 / -0.3%
tpcds_q29/datafusion:vortex-file-compressed 58687457 / 51117640 / +14.8% 🔴 71923721 / 71963254 / -0.1% 0.82 / 0.71 / +14.9%
tpcds_q30/datafusion:vortex-file-compressed 27185174 / 27094850 / +0.3% 46385887 / 43720666 / +6.1% 0.59 / 0.62 / -5.4%
tpcds_q31/datafusion:vortex-file-compressed 59421062 / 58192894 / +2.1% 82397271 / 79978380 / +3.0% 0.72 / 0.73 / -0.9%
tpcds_q32/datafusion:vortex-file-compressed 13964742 / 13494499 / +3.5% 31835650 / 29672834 / +7.3% 0.44 / 0.45 / -3.5%
tpcds_q33/datafusion:vortex-file-compressed 28111628 / 28132704 / -0.1% 50361444 / 47071656 / +7.0% 0.56 / 0.60 / -6.6%
tpcds_q34/datafusion:vortex-file-compressed 17388338 / 17543160 / -0.9% 34737327 / 34708690 / +0.1% 0.50 / 0.51 / -1.0%
tpcds_q35/datafusion:vortex-file-compressed 34610799 / 34127384 / +1.4% 56724775 / 55315562 / +2.5% 0.61 / 0.62 / -1.1%
tpcds_q36/datafusion:vortex-file-compressed 46942966 / 47413962 / -1.0% 69503879 / 71102774 / -2.2% 0.68 / 0.67 / +1.3%
tpcds_q37/datafusion:vortex-file-compressed 13372803 / 12941790 / +3.3% 34016269 / 32568213 / +4.4% 0.39 / 0.40 / -1.1%
tpcds_q38/datafusion:vortex-file-compressed 29670324 / 29790266 / -0.4% 52869537 / 49089690 / +7.7% 0.56 / 0.61 / -7.5%
tpcds_q39/datafusion:vortex-file-compressed 61586240 / 61958185 / -0.6% 89666171 / 88244056 / +1.6% 0.69 / 0.70 / -2.2%
tpcds_q40/datafusion:vortex-file-compressed 24894024 / 24117339 / +3.2% 43306418 / 42841029 / +1.1% 0.57 / 0.56 / +2.1%
tpcds_q41/datafusion:vortex-file-compressed 17340032 / 17009686 / +1.9% 31270321 / 30116323 / +3.8% 0.55 / 0.56 / -1.8%
tpcds_q42/datafusion:vortex-file-compressed 11190705 / 11194194 / -0.0% 27715054 / 25800524 / +7.4% 0.40 / 0.43 / -6.9%
tpcds_q43/datafusion:vortex-file-compressed 12967230 / 12851160 / +0.9% 29467478 / 29176165 / +1.0% 0.44 / 0.44 / -0.1%
tpcds_q44/datafusion:vortex-file-compressed 26278275 / 25861536 / +1.6% 48196026 / 48172347 / +0.0% 0.55 / 0.54 / +1.6%
tpcds_q45/datafusion:vortex-file-compressed 18757848 / 18524946 / +1.3% 36780768 / 37165720 / -1.0% 0.51 / 0.50 / +2.3%
tpcds_q46/datafusion:vortex-file-compressed 23069383 / 22879180 / +0.8% 45604358 / 45223748 / +0.8% 0.51 / 0.51 / -0.0%
tpcds_q47/datafusion:vortex-file-compressed 77818418 / 77956142 / -0.2% 106755538 / 105204058 / +1.5% 0.73 / 0.74 / -1.6%
tpcds_q48/datafusion:vortex-file-compressed 29577963 / 29227950 / +1.2% 52741328 / 50087705 / +5.3% 0.56 / 0.58 / -3.9%
tpcds_q49/datafusion:vortex-file-compressed 58060338 / 59353887 / -2.2% 81006049 / 78029772 / +3.8% 0.72 / 0.76 / -5.8%
tpcds_q50/datafusion:vortex-file-compressed 32379056 / 33840671 / -4.3% 53051678 / 51289595 / +3.4% 0.61 / 0.66 / -7.5%
tpcds_q51/datafusion:vortex-file-compressed 67907758 / 67295610 / +0.9% 90259078 / 88284880 / +2.2% 0.75 / 0.76 / -1.3%
tpcds_q52/datafusion:vortex-file-compressed 11849134 / 11874957 / -0.2% 27700848 / 26710267 / +3.7% 0.43 / 0.44 / -3.8%
tpcds_q53/datafusion:vortex-file-compressed 18315313 / 17981568 / +1.9% 37667064 / 37147095 / +1.4% 0.49 / 0.48 / +0.4%
tpcds_q54/datafusion:vortex-file-compressed 32823400 / 33014860 / -0.6% 61092405 / 57829652 / +5.6% 0.54 / 0.57 / -5.9%
tpcds_q55/datafusion:vortex-file-compressed 11259522 / 11171222 / +0.8% 26873313 / 25574530 / +5.1% 0.42 / 0.44 / -4.1%
tpcds_q56/datafusion:vortex-file-compressed 27447112 / 26417084 / +3.9% 47892341 / 47619460 / +0.6% 0.57 / 0.55 / +3.3%
tpcds_q57/datafusion:vortex-file-compressed 78032361 / 77382479 / +0.8% 103327182 / 100025981 / +3.3% 0.76 / 0.77 / -2.4%
tpcds_q58/datafusion:vortex-file-compressed 41326068 / 41043717 / +0.7% 67383020 / 62722170 / +7.4% 0.61 / 0.65 / -6.3%
tpcds_q59/datafusion:vortex-file-compressed 30991396 / 31111953 / -0.4% 52268116 / 50870624 / +2.7% 0.59 / 0.61 / -3.1%
tpcds_q60/datafusion:vortex-file-compressed 26707944 / 27227950 / -1.9% 47068930 / 45943148 / +2.5% 0.57 / 0.59 / -4.3%
tpcds_q61/datafusion:vortex-file-compressed 23153801 / 23187124 / -0.1% 47442585 / 42219484 / +12.4% 🔴 0.49 / 0.55 / -11.1%
tpcds_q62/datafusion:vortex-file-compressed 18170726 / 17865185 / +1.7% 34205447 / 33075175 / +3.4% 0.53 / 0.54 / -1.7%
tpcds_q63/datafusion:vortex-file-compressed 17878037 / 17696958 / +1.0% 37502993 / 37729044 / -0.6% 0.48 / 0.47 / +1.6%
tpcds_q64/datafusion:vortex-file-compressed 226086771 / 225325008 / +0.3% 269282118 / 257206818 / +4.7% 0.84 / 0.88 / -4.2%
tpcds_q65/datafusion:vortex-file-compressed 76312744 / 74155888 / +2.9% 94029951 / 93507785 / +0.6% 0.81 / 0.79 / +2.3%
tpcds_q66/datafusion:vortex-file-compressed 52787260 / 52179442 / +1.2% 72448802 / 70572058 / +2.7% 0.73 / 0.74 / -1.5%
tpcds_q67/datafusion:vortex-file-compressed 58527108 / 58509098 / +0.0% 86016871 / 86280391 / -0.3% 0.68 / 0.68 / +0.3%
tpcds_q68/datafusion:vortex-file-compressed 22548887 / 22531870 / +0.1% 46123148 / 43740568 / +5.4% 0.49 / 0.52 / -5.1%
tpcds_q69/datafusion:vortex-file-compressed 27979997 / 27859934 / +0.4% 49649537 / 47785128 / +3.9% 0.56 / 0.58 / -3.3%
tpcds_q70/datafusion:vortex-file-compressed 23500198 / 23744342 / -1.0% 44494168 / 43206892 / +3.0% 0.53 / 0.55 / -3.9%
tpcds_q71/datafusion:vortex-file-compressed 19185530 / 19730928 / -2.8% 39136857 / 38161372 / +2.6% 0.49 / 0.52 / -5.2%
tpcds_q72/datafusion:vortex-file-compressed 354908710 / 363326532 / -2.3% 392288003 / 377357859 / +4.0% 0.90 / 0.96 / -6.0%
tpcds_q73/datafusion:vortex-file-compressed 16905599 / 16227445 / +4.2% 35300451 / 36520074 / -3.3% 0.48 / 0.44 / +7.8%
tpcds_q74/datafusion:vortex-file-compressed 46417793 / 46262381 / +0.3% 74880411 / 70102268 / +6.8% 0.62 / 0.66 / -6.1%
tpcds_q75/datafusion:vortex-file-compressed 141423420 / 138025502 / +2.5% 162024786 / 160998509 / +0.6% 0.87 / 0.86 / +1.8%
tpcds_q76/datafusion:vortex-file-compressed 27146148 / 26231817 / +3.5% 47646299 / 43942565 / +8.4% 0.57 / 0.60 / -4.6%
tpcds_q77/datafusion:vortex-file-compressed 45678514 / 46538385 / -1.8% 68459441 / 63390677 / +8.0% 0.67 / 0.73 / -9.1%
tpcds_q78/datafusion:vortex-file-compressed 69067908 / 68747413 / +0.5% 98898955 / 94445487 / +4.7% 0.70 / 0.73 / -4.1%
tpcds_q79/datafusion:vortex-file-compressed 19820248 / 19483699 / +1.7% 41857714 / 41799781 / +0.1% 0.47 / 0.47 / +1.6%
tpcds_q80/datafusion:vortex-file-compressed 75068344 / 74639438 / +0.6% 103853049 / 102819886 / +1.0% 0.72 / 0.73 / -0.4%
tpcds_q81/datafusion:vortex-file-compressed 27712375 / 27068568 / +2.4% 44996266 / 43682226 / +3.0% 0.62 / 0.62 / -0.6%
tpcds_q82/datafusion:vortex-file-compressed 13520818 / 12997562 / +4.0% 34986052 / 34116796 / +2.5% 0.39 / 0.38 / +1.4%
tpcds_q83/datafusion:vortex-file-compressed 35704347 / 35278853 / +1.2% 53310744 / 51166456 / +4.2% 0.67 / 0.69 / -2.9%
tpcds_q84/datafusion:vortex-file-compressed 12432070 / 11794177 / +5.4% 28491975 / 25396598 / +12.2% 🔴 0.44 / 0.46 / -6.0%
tpcds_q85/datafusion:vortex-file-compressed 57975665 / 57925560 / +0.1% 83798585 / 80348889 / +4.3% 0.69 / 0.72 / -4.0%
tpcds_q86/datafusion:vortex-file-compressed 16779124 / 16457530 / +2.0% 31975871 / 32469222 / -1.5% 0.52 / 0.51 / +3.5%
tpcds_q87/datafusion:vortex-file-compressed 30106333 / 29567438 / +1.8% 51638983 / 50905596 / +1.4% 0.58 / 0.58 / +0.4%
tpcds_q88/datafusion:vortex-file-compressed 32624982 / 32104016 / +1.6% 66238103 / 63612905 / +4.1% 0.49 / 0.50 / -2.4%
tpcds_q89/datafusion:vortex-file-compressed 20899056 / 20663336 / +1.1% 39782408 / 39249159 / +1.4% 0.53 / 0.53 / -0.2%
tpcds_q90/datafusion:vortex-file-compressed 10630517 / 10668205 / -0.4% 25293849 / 26904779 / -6.0% 0.42 / 0.40 / +6.0%
tpcds_q91/datafusion:vortex-file-compressed 15926529 / 15822708 / +0.7% 36422657 / 35674979 / +2.1% 0.44 / 0.44 / -1.4%
tpcds_q92/datafusion:vortex-file-compressed 13966235 / 13465226 / +3.7% 33776637 / 29450460 / +14.7% 🔴 0.41 / 0.46 / -9.6%
tpcds_q93/datafusion:vortex-file-compressed 23178990 / 22288306 / +4.0% 42467196 / 39311503 / +8.0% 0.55 / 0.57 / -3.7%
tpcds_q94/datafusion:vortex-file-compressed 19230784 / 18989217 / +1.3% 37791195 / 35884910 / +5.3% 0.51 / 0.53 / -3.8%
tpcds_q95/datafusion:vortex-file-compressed 45522181 / 45085632 / +1.0% 65483420 / 65843865 / -0.5% 0.70 / 0.68 / +1.5%
tpcds_q96/datafusion:vortex-file-compressed 8776953 / 8687084 / +1.0% 25463722 / 24920610 / +2.2% 0.34 / 0.35 / -1.1%
tpcds_q97/datafusion:vortex-file-compressed 21055488 / 21076740 / -0.1% 42669342 / 40801915 / +4.6% 0.49 / 0.52 / -4.5%
tpcds_q98/datafusion:vortex-file-compressed 17235424 / 17153452 / +0.5% 36859239 / 35728656 / +3.2% 0.47 / 0.48 / -2.6%
tpcds_q99/datafusion:vortex-file-compressed 20952790 / 20814182 / +0.7% 37196639 / 35554835 / +4.6% 0.56 / 0.59 / -3.8%
datafusion / parquet / ns (0.997x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/datafusion:parquet 39965500 / 43846422 / -8.9% 60433916 / 60005347 / +0.7% 0.66 / 0.73 / -9.5%
tpcds_q02/datafusion:parquet 55470525 / 55757277 / -0.5% 71407499 / 71357306 / +0.1% 0.78 / 0.78 / -0.6%
tpcds_q03/datafusion:parquet 19076504 / 19050948 / +0.1% 34018500 / 32322113 / +5.2% 0.56 / 0.59 / -4.9%
tpcds_q04/datafusion:parquet 182524074 / 180009476 / +1.4% 204575278 / 202731080 / +0.9% 0.89 / 0.89 / +0.5%
tpcds_q05/datafusion:parquet 68632148 / 67452735 / +1.7% 89655209 / 91252454 / -1.8% 0.77 / 0.74 / +3.6%
tpcds_q06/datafusion:parquet 34064672 / 33397300 / +2.0% 50292198 / 48649176 / +3.4% 0.68 / 0.69 / -1.3%
tpcds_q07/datafusion:parquet 47005598 / 46694988 / +0.7% 67084025 / 67932655 / -1.2% 0.70 / 0.69 / +1.9%
tpcds_q08/datafusion:parquet 31259480 / 31199608 / +0.2% 47184853 / 45345275 / +4.1% 0.66 / 0.69 / -3.7%
tpcds_q09/datafusion:parquet 32124080 / 32116022 / +0.0% 43127714 / 44213601 / -2.5% 0.74 / 0.73 / +2.5%
tpcds_q10/datafusion:parquet 43597648 / 44087352 / -1.1% 57123857 / 55032584 / +3.8% 0.76 / 0.80 / -4.7%
tpcds_q11/datafusion:parquet 99615270 / 99118944 / +0.5% 120524968 / 115581825 / +4.3% 0.83 / 0.86 / -3.6%
tpcds_q12/datafusion:parquet 24015640 / 23973628 / +0.2% 36488420 / 35973293 / +1.4% 0.66 / 0.67 / -1.2%
tpcds_q13/datafusion:parquet 47098102 / 46483706 / +1.3% 72558064 / 66333368 / +9.4% 0.65 / 0.70 / -7.4%
tpcds_q14/datafusion:parquet 540001752 / 538154738 / +0.3% 582750920 / 588539299 / -1.0% 0.93 / 0.91 / +1.3%
tpcds_q15/datafusion:parquet 23695429 / 23329618 / +1.6% 39545175 / 37781490 / +4.7% 0.60 / 0.62 / -3.0%
tpcds_q16/datafusion:parquet 36538678 / 36544121 / -0.0% 51129234 / 50619896 / +1.0% 0.71 / 0.72 / -1.0%
tpcds_q17/datafusion:parquet 73398750 / 75119042 / -2.3% 103574411 / 96474387 / +7.4% 0.71 / 0.78 / -9.0%
tpcds_q18/datafusion:parquet 65934906 / 66836378 / -1.3% 91931827 / 88630199 / +3.7% 0.72 / 0.75 / -4.9%
tpcds_q19/datafusion:parquet 29359048 / 29729388 / -1.2% 43545390 / 42819515 / +1.7% 0.67 / 0.69 / -2.9%
tpcds_q20/datafusion:parquet 24975377 / 24969518 / +0.0% 37454327 / 38866462 / -3.6% 0.67 / 0.64 / +3.8%
tpcds_q21/datafusion:parquet 20345158 / 20161090 / +0.9% 32927262 / 31800546 / +3.5% 0.62 / 0.63 / -2.5%
tpcds_q22/datafusion:parquet 76745501 / 77142012 / -0.5% 89418731 / 87858154 / +1.8% 0.86 / 0.88 / -2.3%
tpcds_q23/datafusion:parquet 92842966 / 91349462 / +1.6% 115614641 / 113181120 / +2.2% 0.80 / 0.81 / -0.5%
tpcds_q24/datafusion:parquet 90660045 / 92770976 / -2.3% 117342957 / 113350744 / +3.5% 0.77 / 0.82 / -5.6%
tpcds_q25/datafusion:parquet 80689830 / 80229011 / +0.6% 107795244 / 100842256 / +6.9% 0.75 / 0.80 / -5.9%
tpcds_q26/datafusion:parquet 43173534 / 43787389 / -1.4% 60433815 / 57659742 / +4.8% 0.71 / 0.76 / -5.9%
tpcds_q27/datafusion:parquet 78461424 / 75409834 / +4.0% 101830821 / 96101182 / +6.0% 0.77 / 0.78 / -1.8%
tpcds_q28/datafusion:parquet 29301292 / 28846260 / +1.6% 44985510 / 43554917 / +3.3% 0.65 / 0.66 / -1.7%
tpcds_q29/datafusion:parquet 75392170 / 74650711 / +1.0% 98116540 / 95427162 / +2.8% 0.77 / 0.78 / -1.8%
tpcds_q30/datafusion:parquet 45560568 / 47178713 / -3.4% 62321647 / 58551559 / +6.4% 0.73 / 0.81 / -9.3%
tpcds_q31/datafusion:parquet 81675086 / 80818462 / +1.1% 103278277 / 98873811 / +4.5% 0.79 / 0.82 / -3.2%
tpcds_q32/datafusion:parquet 25922782 / 26086708 / -0.6% 42006700 / 39508030 / +6.3% 0.62 / 0.66 / -6.5%
tpcds_q33/datafusion:parquet 37637774 / 38558912 / -2.4% 51527202 / 53023663 / -2.8% 0.73 / 0.73 / +0.4%
tpcds_q34/datafusion:parquet 24387577 / 24739372 / -1.4% 36972502 / 35909965 / +3.0% 0.66 / 0.69 / -4.3%
tpcds_q35/datafusion:parquet 50991750 / 51716168 / -1.4% 65951257 / 64607301 / +2.1% 0.77 / 0.80 / -3.4%
tpcds_q36/datafusion:parquet 52276398 / 53633372 / -2.5% 73579132 / 71365370 / +3.1% 0.71 / 0.75 / -5.5%
tpcds_q37/datafusion:parquet 20618968 / 21059308 / -2.1% 35837721 / 32948046 / +8.8% 0.58 / 0.64 / -10.0%
tpcds_q38/datafusion:parquet 44248493 / 44653446 / -0.9% 63169005 / 60746799 / +4.0% 0.70 / 0.74 / -4.7%
tpcds_q39/datafusion:parquet 67714970 / 67618510 / +0.1% 85240782 / 86536931 / -1.5% 0.79 / 0.78 / +1.7%
tpcds_q40/datafusion:parquet 30938612 / 30076230 / +2.9% 51384106 / 48872359 / +5.1% 0.60 / 0.62 / -2.2%
tpcds_q41/datafusion:parquet 19782458 / 19795827 / -0.1% 33050056 / 30811184 / +7.3% 0.60 / 0.64 / -6.8%
tpcds_q42/datafusion:parquet 18343066 / 18211920 / +0.7% 31955645 / 32111581 / -0.5% 0.57 / 0.57 / +1.2%
tpcds_q43/datafusion:parquet 19111330 / 19268661 / -0.8% 32804173 / 30985079 / +5.9% 0.58 / 0.62 / -6.3%
tpcds_q44/datafusion:parquet 35396468 / 36438808 / -2.9% 51940532 / 51954713 / -0.0% 0.68 / 0.70 / -2.8%
tpcds_q45/datafusion:parquet 27884486 / 27398212 / +1.8% 42018490 / 39109204 / +7.4% 0.66 / 0.70 / -5.3%
tpcds_q46/datafusion:parquet 29074070 / 29286111 / -0.7% 46517664 / 44982114 / +3.4% 0.63 / 0.65 / -4.0%
tpcds_q47/datafusion:parquet 97671626 / 98429680 / -0.8% 121133623 / 123516112 / -1.9% 0.81 / 0.80 / +1.2%
tpcds_q48/datafusion:parquet 42227970 / 41857703 / +0.9% 63312238 / 59999377 / +5.5% 0.67 / 0.70 / -4.4%
tpcds_q49/datafusion:parquet 72027134 / 72155906 / -0.2% 95935269 / 92353355 / +3.9% 0.75 / 0.78 / -3.9%
tpcds_q50/datafusion:parquet 47714136 / 47630214 / +0.2% 66242729 / 66493960 / -0.4% 0.72 / 0.72 / +0.6%
tpcds_q51/datafusion:parquet 75523830 / 75748952 / -0.3% 95953557 / 93780446 / +2.3% 0.79 / 0.81 / -2.6%
tpcds_q52/datafusion:parquet 18489294 / 18440540 / +0.3% 31960491 / 31499026 / +1.5% 0.58 / 0.59 / -1.2%
tpcds_q53/datafusion:parquet 22819598 / 23311745 / -2.1% 39797827 / 38476973 / +3.4% 0.57 / 0.61 / -5.4%
tpcds_q54/datafusion:parquet 52865535 / 52869332 / -0.0% 71791128 / 70753202 / +1.5% 0.74 / 0.75 / -1.5%
tpcds_q55/datafusion:parquet 18326070 / 18285992 / +0.2% 32509717 / 30486470 / +6.6% 0.56 / 0.60 / -6.0%
tpcds_q56/datafusion:parquet 40028930 / 40571934 / -1.3% 55232475 / 54021515 / +2.2% 0.72 / 0.75 / -3.5%
tpcds_q57/datafusion:parquet 101756014 / 103228732 / -1.4% 115117045 / 120073909 / -4.1% 0.88 / 0.86 / +2.8%
tpcds_q58/datafusion:parquet 65602816 / 65899958 / -0.5% 82821676 / 83882670 / -1.3% 0.79 / 0.79 / +0.8%
tpcds_q59/datafusion:parquet 47207130 / 48264130 / -2.2% 64871049 / 64543094 / +0.5% 0.73 / 0.75 / -2.7%
tpcds_q60/datafusion:parquet 40642009 / 39449744 / +3.0% 53646972 / 53105060 / +1.0% 0.76 / 0.74 / +2.0%
tpcds_q61/datafusion:parquet 36800551 / 37940298 / -3.0% 52424944 / 48420637 / +8.3% 0.70 / 0.78 / -10.4%
tpcds_q62/datafusion:parquet 25151770 / 24913400 / +1.0% 38563584 / 37514164 / +2.8% 0.65 / 0.66 / -1.8%
tpcds_q63/datafusion:parquet 22253482 / 22438395 / -0.8% 41863645 / 37774202 / +10.8% 🔴 0.53 / 0.59 / -10.5%
tpcds_q64/datafusion:parquet 291845482 / 292243279 / -0.1% 328969304 / 327971890 / +0.3% 0.89 / 0.89 / -0.4%
tpcds_q65/datafusion:parquet 124982562 / 122812174 / +1.8% 136884260 / 140616984 / -2.7% 0.91 / 0.87 / +4.5%
tpcds_q66/datafusion:parquet 60896109 / 60823197 / +0.1% 78700328 / 78250959 / +0.6% 0.77 / 0.78 / -0.5%
tpcds_q67/datafusion:parquet 69098247 / 69017602 / +0.1% 93485404 / 92414069 / +1.2% 0.74 / 0.75 / -1.0%
tpcds_q68/datafusion:parquet 29459016 / 29713764 / -0.9% 50081519 / 47088362 / +6.4% 0.59 / 0.63 / -6.8%
tpcds_q69/datafusion:parquet 43087954 / 43409056 / -0.7% 60196092 / 58228856 / +3.4% 0.72 / 0.75 / -4.0%
tpcds_q70/datafusion:parquet 80908868 / 80976967 / -0.1% 99371749 / 97646049 / +1.8% 0.81 / 0.83 / -1.8%
tpcds_q71/datafusion:parquet 25802317 / 26198760 / -1.5% 36777912 / 38817389 / -5.3% 0.70 / 0.67 / +3.9%
tpcds_q72/datafusion:parquet 524689302 / 520424787 / +0.8% 555048826 / 548824251 / +1.1% 0.95 / 0.95 / -0.3%
tpcds_q73/datafusion:parquet 24138299 / 23774588 / +1.5% 37109663 / 35994926 / +3.1% 0.65 / 0.66 / -1.5%
tpcds_q74/datafusion:parquet 71278650 / 71964559 / -1.0% 89645619 / 88593375 / +1.2% 0.80 / 0.81 / -2.1%
tpcds_q75/datafusion:parquet 156732286 / 155009072 / +1.1% 182523665 / 177967028 / +2.6% 0.86 / 0.87 / -1.4%
tpcds_q76/datafusion:parquet 33046328 / 33216860 / -0.5% 47700546 / 47889564 / -0.4% 0.69 / 0.69 / -0.1%
tpcds_q77/datafusion:parquet 57105613 / 57123894 / -0.0% 75421683 / 75735250 / -0.4% 0.76 / 0.75 / +0.4%
tpcds_q78/datafusion:parquet 86590643 / 85268329 / +1.6% 121131695 / 115062750 / +5.3% 0.71 / 0.74 / -3.5%
tpcds_q79/datafusion:parquet 27054332 / 27016716 / +0.1% 43122617 / 41406123 / +4.1% 0.63 / 0.65 / -3.8%
tpcds_q80/datafusion:parquet 82500320 / 80177621 / +2.9% 112991167 / 107359603 / +5.2% 0.73 / 0.75 / -2.2%
tpcds_q81/datafusion:parquet 36379751 / 36689468 / -0.8% 54319205 / 51731213 / +5.0% 0.67 / 0.71 / -5.6%
tpcds_q82/datafusion:parquet 22009468 / 22566992 / -2.5% 34652229 / 35373497 / -2.0% 0.64 / 0.64 / -0.4%
tpcds_q83/datafusion:parquet 58081908 / 58063186 / +0.0% 74930033 / 75073381 / -0.2% 0.78 / 0.77 / +0.2%
tpcds_q84/datafusion:parquet 26025350 / 26433304 / -1.5% 42876024 / 38836633 / +10.4% 🔴 0.61 / 0.68 / -10.8%
tpcds_q85/datafusion:parquet 81623354 / 80894374 / +0.9% 102523507 / 101416266 / +1.1% 0.80 / 0.80 / -0.2%
tpcds_q86/datafusion:parquet 20751826 / 20851596 / -0.5% 34699799 / 33115555 / +4.8% 0.60 / 0.63 / -5.0%
tpcds_q87/datafusion:parquet 45223070 / 44118442 / +2.5% 62558309 / 64350399 / -2.8% 0.72 / 0.69 / +5.4%
tpcds_q88/datafusion:parquet 37421809 / 37626844 / -0.5% 52815643 / 52415287 / +0.8% 0.71 / 0.72 / -1.3%
tpcds_q89/datafusion:parquet 26015236 / 26014490 / +0.0% 41717735 / 41199555 / +1.3% 0.62 / 0.63 / -1.2%
tpcds_q90/datafusion:parquet 14605552 / 15252398 / -4.2% 27206082 / 27255033 / -0.2% 0.54 / 0.56 / -4.1%
tpcds_q91/datafusion:parquet 32070342 / 32264378 / -0.6% 44651249 / 47253760 / -5.5% 0.72 / 0.68 / +5.2%
tpcds_q92/datafusion:parquet 26425720 / 27016796 / -2.2% 42367584 / 41389571 / +2.4% 0.62 / 0.65 / -4.4%
tpcds_q93/datafusion:parquet 27415152 / 27882475 / -1.7% 49140726 / 45762040 / +7.4% 0.56 / 0.61 / -8.4%
tpcds_q94/datafusion:parquet 35099831 / 35073608 / +0.1% 49376537 / 48864859 / +1.0% 0.71 / 0.72 / -1.0%
tpcds_q95/datafusion:parquet 64542832 / 63547685 / +1.6% 80693298 / 82201726 / -1.8% 0.80 / 0.77 / +3.5%
tpcds_q96/datafusion:parquet 12445898 / 12581218 / -1.1% 25153020 / 24073556 / +4.5% 0.49 / 0.52 / -5.3%
tpcds_q97/datafusion:parquet 35625228 / 35233132 / +1.1% 53350954 / 49607060 / +7.5% 0.67 / 0.71 / -6.0%
tpcds_q98/datafusion:parquet 24823924 / 25180659 / -1.4% 39161033 / 39568618 / -1.0% 0.63 / 0.64 / -0.4%
tpcds_q99/datafusion:parquet 30016811 / 29883085 / +0.4% 42938555 / 42943170 / -0.0% 0.70 / 0.70 / +0.5%
duckdb / vortex-file-compressed / ns (0.992x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/duckdb:vortex-file-compressed 17172950 / 17439644 / -1.5% 25836534 / 27219297 / -5.1% 0.66 / 0.64 / +3.7%
tpcds_q02/duckdb:vortex-file-compressed 15881044 / 16083914 / -1.3% 23235452 / 23502917 / -1.1% 0.68 / 0.68 / -0.1%
tpcds_q03/duckdb:vortex-file-compressed 7192620 / 7170842 / +0.3% 16459993 / 16666916 / -1.2% 0.44 / 0.43 / +1.6%
tpcds_q04/duckdb:vortex-file-compressed 48223340 / 48707472 / -1.0% 57948812 / 58047581 / -0.2% 0.83 / 0.84 / -0.8%
tpcds_q05/duckdb:vortex-file-compressed 23508802 / 23618420 / -0.5% 32209387 / 31794352 / +1.3% 0.73 / 0.74 / -1.7%
tpcds_q06/duckdb:vortex-file-compressed 28050008 / 28492640 / -1.6% 42003116 / 42541896 / -1.3% 0.67 / 0.67 / -0.3%
tpcds_q07/duckdb:vortex-file-compressed 14237130 / 14174695 / +0.4% 26015202 / 25347357 / +2.6% 0.55 / 0.56 / -2.1%
tpcds_q08/duckdb:vortex-file-compressed 18789392 / 18900235 / -0.6% 27198105 / 27718311 / -1.9% 0.69 / 0.68 / +1.3%
tpcds_q09/duckdb:vortex-file-compressed 17892580 / 18138864 / -1.4% 29477025 / 29221507 / +0.9% 0.61 / 0.62 / -2.2%
tpcds_q10/duckdb:vortex-file-compressed 32654018 / 33029630 / -1.1% 46779943 / 46829434 / -0.1% 0.70 / 0.71 / -1.0%
tpcds_q11/duckdb:vortex-file-compressed 39244394 / 39458654 / -0.5% 47630732 / 47656455 / -0.1% 0.82 / 0.83 / -0.5%
tpcds_q12/duckdb:vortex-file-compressed 10560474 / 10685926 / -1.2% 18346304 / 17944220 / +2.2% 0.58 / 0.60 / -3.3%
tpcds_q13/duckdb:vortex-file-compressed 21519006 / 21505498 / +0.1% 35499002 / 34571928 / +2.7% 0.61 / 0.62 / -2.6%
tpcds_q14/duckdb:vortex-file-compressed 59037118 / 59354654 / -0.5% 68904445 / 69010908 / -0.2% 0.86 / 0.86 / -0.4%
tpcds_q15/duckdb:vortex-file-compressed 27933560 / 27865054 / +0.2% 35434970 / 35466133 / -0.1% 0.79 / 0.79 / +0.3%
tpcds_q16/duckdb:vortex-file-compressed 36227064 / 36263682 / -0.1% 47001591 / 46410167 / +1.3% 0.77 / 0.78 / -1.4%
tpcds_q17/duckdb:vortex-file-compressed 26156618 / 26014247 / +0.5% 41809673 / 39653790 / +5.4% 0.63 / 0.66 / -4.6%
tpcds_q18/duckdb:vortex-file-compressed 32600234 / 32597166 / +0.0% 44386158 / 43159512 / +2.8% 0.73 / 0.76 / -2.8%
tpcds_q19/duckdb:vortex-file-compressed 90205702 / 89557922 / +0.7% 103163191 / 101850245 / +1.3% 0.87 / 0.88 / -0.6%
tpcds_q20/duckdb:vortex-file-compressed 11220620 / 11335046 / -1.0% 19323194 / 18866297 / +2.4% 0.58 / 0.60 / -3.4%
tpcds_q21/duckdb:vortex-file-compressed 10651863 / 10550480 / +1.0% 22474595 / 22047254 / +1.9% 0.47 / 0.48 / -1.0%
tpcds_q22/duckdb:vortex-file-compressed 18769912 / 18974138 / -1.1% 29982217 / 28581449 / +4.9% 0.63 / 0.66 / -5.7%
tpcds_q23/duckdb:vortex-file-compressed 39258976 / 39314652 / -0.1% 51397431 / 51213966 / +0.4% 0.76 / 0.77 / -0.5%
tpcds_q24/duckdb:vortex-file-compressed 28379058 / 28884934 / -1.8% 39267902 / 40024470 / -1.9% 0.72 / 0.72 / +0.1%
tpcds_q25/duckdb:vortex-file-compressed 24201707 / 24429660 / -0.9% 38801520 / 36379295 / +6.7% 0.62 / 0.67 / -7.1%
tpcds_q26/duckdb:vortex-file-compressed 13382340 / 13690386 / -2.3% 23059784 / 22307538 / +3.4% 0.58 / 0.61 / -5.4%
tpcds_q27/duckdb:vortex-file-compressed 16850740 / 17139150 / -1.7% 28881721 / 28790767 / +0.3% 0.58 / 0.60 / -2.0%
tpcds_q28/duckdb:vortex-file-compressed 15468590 / 15418094 / +0.3% 24228620 / 24049146 / +0.7% 0.64 / 0.64 / -0.4%
tpcds_q29/duckdb:vortex-file-compressed 24280432 / 24086816 / +0.8% 38155631 / 36218944 / +5.3% 0.64 / 0.67 / -4.3%
tpcds_q30/duckdb:vortex-file-compressed 16405260 / 16423360 / -0.1% 25279252 / 25162420 / +0.5% 0.65 / 0.65 / -0.6%
tpcds_q31/duckdb:vortex-file-compressed 19012162 / 19038258 / -0.1% 27936638 / 27773983 / +0.6% 0.68 / 0.69 / -0.7%
tpcds_q32/duckdb:vortex-file-compressed 13299221 / 13370864 / -0.5% 23135768 / 21994982 / +5.2% 0.57 / 0.61 / -5.4%
tpcds_q33/duckdb:vortex-file-compressed 17511288 / 18050817 / -3.0% 26495352 / 25375692 / +4.4% 0.66 / 0.71 / -7.1%
tpcds_q34/duckdb:vortex-file-compressed 13080552 / 12846442 / +1.8% 23034777 / 22710999 / +1.4% 0.57 / 0.57 / +0.4%
tpcds_q35/duckdb:vortex-file-compressed 29152984 / 29170485 / -0.1% 41187348 / 40616529 / +1.4% 0.71 / 0.72 / -1.4%
tpcds_q36/duckdb:vortex-file-compressed 15364588 / 15500460 / -0.9% 25638355 / 25928680 / -1.1% 0.60 / 0.60 / +0.2%
tpcds_q37/duckdb:vortex-file-compressed 9703532 / 9584120 / +1.2% 24174473 / 23057283 / +4.8% 0.40 / 0.42 / -3.4%
tpcds_q38/duckdb:vortex-file-compressed 25078204 / 25402442 / -1.3% 31839402 / 32979596 / -3.5% 0.79 / 0.77 / +2.3%
tpcds_q39/duckdb:vortex-file-compressed 20648958 / 21551021 / -4.2% 33085695 / 31761303 / +4.2% 0.62 / 0.68 / -8.0%
tpcds_q40/duckdb:vortex-file-compressed 14374512 / 14691824 / -2.2% 21689071 / 21942694 / -1.2% 0.66 / 0.67 / -1.0%
tpcds_q41/duckdb:vortex-file-compressed 15570876 / 15635824 / -0.4% 23686865 / 24539561 / -3.5% 0.66 / 0.64 / +3.2%
tpcds_q42/duckdb:vortex-file-compressed 7055862 / 7127577 / -1.0% 16350530 / 16028414 / +2.0% 0.43 / 0.44 / -3.0%
tpcds_q43/duckdb:vortex-file-compressed 10277848 / 10416310 / -1.3% 19213992 / 19702965 / -2.5% 0.53 / 0.53 / +1.2%
tpcds_q44/duckdb:vortex-file-compressed 15674072 / 15288050 / +2.5% 27254649 / 27312336 / -0.2% 0.58 / 0.56 / +2.7%
tpcds_q45/duckdb:vortex-file-compressed 24944956 / 25522246 / -2.3% 32771088 / 33381185 / -1.8% 0.76 / 0.76 / -0.4%
tpcds_q46/duckdb:vortex-file-compressed 19996516 / 20097704 / -0.5% 29279204 / 29393995 / -0.4% 0.68 / 0.68 / -0.1%
tpcds_q47/duckdb:vortex-file-compressed 36632914 / 36720506 / -0.2% 46386653 / 47230154 / -1.8% 0.79 / 0.78 / +1.6%
tpcds_q48/duckdb:vortex-file-compressed 24203096 / 24168216 / +0.1% 38185216 / 36654957 / +4.2% 0.63 / 0.66 / -3.9%
tpcds_q49/duckdb:vortex-file-compressed 20524552 / 20488396 / +0.2% 34240643 / 33177951 / +3.2% 0.60 / 0.62 / -2.9%
tpcds_q50/duckdb:vortex-file-compressed 17568316 / 17931386 / -2.0% 30609042 / 29638240 / +3.3% 0.57 / 0.61 / -5.1%
tpcds_q51/duckdb:vortex-file-compressed 52177562 / 52500616 / -0.6% 61406318 / 80923259 / -24.1% 🟢 0.85 / 0.65 / +31.0%
tpcds_q52/duckdb:vortex-file-compressed 7473754 / 7319667 / +2.1% 16104641 / 16698794 / -3.6% 0.46 / 0.44 / +5.9%
tpcds_q53/duckdb:vortex-file-compressed 11979957 / 12050183 / -0.6% 21679773 / 20427654 / +6.1% 0.55 / 0.59 / -6.3%
tpcds_q54/duckdb:vortex-file-compressed 20509195 / 20459934 / +0.2% 30327434 / 30721248 / -1.3% 0.68 / 0.67 / +1.5%
tpcds_q55/duckdb:vortex-file-compressed 7219649 / 7112698 / +1.5% 16173396 / 16245077 / -0.4% 0.45 / 0.44 / +2.0%
tpcds_q56/duckdb:vortex-file-compressed 18006709 / 18217444 / -1.2% 27560646 / 26742044 / +3.1% 0.65 / 0.68 / -4.1%
tpcds_q57/duckdb:vortex-file-compressed 27254436 / 27667744 / -1.5% 35724706 / 35748223 / -0.1% 0.76 / 0.77 / -1.4%
tpcds_q58/duckdb:vortex-file-compressed 20541668 / 20594944 / -0.3% 29887681 / 29427011 / +1.6% 0.69 / 0.70 / -1.8%
tpcds_q59/duckdb:vortex-file-compressed 20578662 / 20750972 / -0.8% 29328245 / 29050640 / +1.0% 0.70 / 0.71 / -1.8%
tpcds_q60/duckdb:vortex-file-compressed 18480212 / 19135727 / -3.4% 29582254 / 27636985 / +7.0% 0.62 / 0.69 / -9.8%
tpcds_q61/duckdb:vortex-file-compressed 23999362 / 24108312 / -0.5% 36273017 / 34077043 / +6.4% 0.66 / 0.71 / -6.5%
tpcds_q62/duckdb:vortex-file-compressed 12304778 / 12456039 / -1.2% 20506511 / 20304566 / +1.0% 0.60 / 0.61 / -2.2%
tpcds_q63/duckdb:vortex-file-compressed 11190885 / 11689796 / -4.3% 21202668 / 19906462 / +6.5% 0.53 / 0.59 / -10.1%
tpcds_q64/duckdb:vortex-file-compressed 50856399 / 51378027 / -1.0% 71915360 / 72381847 / -0.6% 0.71 / 0.71 / -0.4%
tpcds_q65/duckdb:vortex-file-compressed 15600722 / 16437374 / -5.1% 25353281 / 25748689 / -1.5% 0.62 / 0.64 / -3.6%
tpcds_q66/duckdb:vortex-file-compressed 30894043 / 33208336 / -7.0% 42846132 / 42336058 / +1.2% 0.72 / 0.78 / -8.1%
tpcds_q67/duckdb:vortex-file-compressed 64457926 / 65435933 / -1.5% 74453907 / 73848023 / +0.8% 0.87 / 0.89 / -2.3%
tpcds_q68/duckdb:vortex-file-compressed 19934359 / 20078928 / -0.7% 29145329 / 29170901 / -0.1% 0.68 / 0.69 / -0.6%
tpcds_q69/duckdb:vortex-file-compressed 23218284 / 23241534 / -0.1% 39283406 / 38850516 / +1.1% 0.59 / 0.60 / -1.2%
tpcds_q70/duckdb:vortex-file-compressed 16238594 / 16538370 / -1.8% 27007313 / 25211757 / +7.1% 0.60 / 0.66 / -8.3%
tpcds_q71/duckdb:vortex-file-compressed 13275820 / 13516254 / -1.8% 22109499 / 22743346 / -2.8% 0.60 / 0.59 / +1.0%
tpcds_q72/duckdb:vortex-file-compressed 58639499 / 58587628 / +0.1% 73863416 / 72788882 / +1.5% 0.79 / 0.80 / -1.4%
tpcds_q73/duckdb:vortex-file-compressed 11850787 / 11713432 / +1.2% 22262986 / 22329312 / -0.3% 0.53 / 0.52 / +1.5%
tpcds_q74/duckdb:vortex-file-compressed 27481344 / 27674992 / -0.7% 34905157 / 35033246 / -0.4% 0.79 / 0.79 / -0.3%
tpcds_q75/duckdb:vortex-file-compressed 29422471 / 29288680 / +0.5% 40979380 / 40611473 / +0.9% 0.72 / 0.72 / -0.4%
tpcds_q76/duckdb:vortex-file-compressed 12990943 / 13116972 / -1.0% 23408423 / 21974451 / +6.5% 0.55 / 0.60 / -7.0%
tpcds_q77/duckdb:vortex-file-compressed 21464935 / 21265524 / +0.9% 31963013 / 32589973 / -1.9% 0.67 / 0.65 / +2.9%
tpcds_q78/duckdb:vortex-file-compressed 43668246 / 44440038 / -1.7% 53340428 / 53650764 / -0.6% 0.82 / 0.83 / -1.2%
tpcds_q79/duckdb:vortex-file-compressed 13755326 / 13880707 / -0.9% 22846429 / 22258998 / +2.6% 0.60 / 0.62 / -3.5%
tpcds_q80/duckdb:vortex-file-compressed 37456940 / 37344568 / +0.3% 51459252 / 49823572 / +3.3% 0.73 / 0.75 / -2.9%
tpcds_q81/duckdb:vortex-file-compressed 22399922 / 22079180 / +1.5% 30758723 / 29931506 / +2.8% 0.73 / 0.74 / -1.3%
tpcds_q82/duckdb:vortex-file-compressed 10101548 / 10058612 / +0.4% 24603548 / 23175922 / +6.2% 0.41 / 0.43 / -5.4%
tpcds_q83/duckdb:vortex-file-compressed 17727468 / 17976734 / -1.4% 25815653 / 25007513 / +3.2% 0.69 / 0.72 / -4.5%
tpcds_q84/duckdb:vortex-file-compressed 15961574 / 16074242 / -0.7% 25277998 / 24634746 / +2.6% 0.63 / 0.65 / -3.2%
tpcds_q85/duckdb:vortex-file-compressed 25075308 / 25467392 / -1.5% 38389360 / 38371984 / +0.0% 0.65 / 0.66 / -1.6%
tpcds_q86/duckdb:vortex-file-compressed 10107517 / 10327764 / -2.1% 18376915 / 18271613 / +0.6% 0.55 / 0.57 / -2.7%
tpcds_q87/duckdb:vortex-file-compressed 27106760 / 27195582 / -0.3% 33844852 / 34082461 / -0.7% 0.80 / 0.80 / +0.4%
tpcds_q88/duckdb:vortex-file-compressed 38534406 / 38891858 / -0.9% 49255316 / 48534789 / +1.5% 0.78 / 0.80 / -2.4%
tpcds_q89/duckdb:vortex-file-compressed 12597346 / 13064133 / -3.6% 22253219 / 22099014 / +0.7% 0.57 / 0.59 / -4.2%
tpcds_q90/duckdb:vortex-file-compressed 8753926 / 8715810 / +0.4% 15082180 / 15807495 / -4.6% 0.58 / 0.55 / +5.3%
tpcds_q91/duckdb:vortex-file-compressed 14401450 / 14795734 / -2.7% 21742748 / 21648977 / +0.4% 0.66 / 0.68 / -3.1%
tpcds_q92/duckdb:vortex-file-compressed 13854754 / 14046564 / -1.4% 23096032 / 23426387 / -1.4% 0.60 / 0.60 / +0.0%
tpcds_q93/duckdb:vortex-file-compressed 11012887 / 11185930 / -1.5% 26739089 / 24912610 / +7.3% 0.41 / 0.45 / -8.3%
tpcds_q94/duckdb:vortex-file-compressed 32506036 / 32675963 / -0.5% 42652926 / 42873121 / -0.5% 0.76 / 0.76 / -0.0%
tpcds_q95/duckdb:vortex-file-compressed 43356820 / 43801560 / -1.0% 53680057 / 54021690 / -0.6% 0.81 / 0.81 / -0.4%
tpcds_q96/duckdb:vortex-file-compressed 6719764 / 6795696 / -1.1% 15840307 / 15466802 / +2.4% 0.42 / 0.44 / -3.4%
tpcds_q97/duckdb:vortex-file-compressed 24436621 / 24096507 / +1.4% 31066350 / 31722642 / -2.1% 0.79 / 0.76 / +3.6%
tpcds_q98/duckdb:vortex-file-compressed 11974109 / 11999761 / -0.2% 20883466 / 20860478 / +0.1% 0.57 / 0.58 / -0.3%
tpcds_q99/duckdb:vortex-file-compressed 15481414 / 15267530 / +1.4% 23320633 / 23326632 / -0.0% 0.66 / 0.65 / +1.4%
duckdb / parquet / ns (0.992x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpcds_q01/duckdb:parquet 27229626 / 27347317 / -0.4% 34965663 / 35303502 / -1.0% 0.78 / 0.77 / +0.5%
tpcds_q02/duckdb:parquet 19262921 / 19487888 / -1.2% 25701308 / 26543727 / -3.2% 0.75 / 0.73 / +2.1%
tpcds_q03/duckdb:parquet 10941895 / 11096145 / -1.4% 18571365 / 18150226 / +2.3% 0.59 / 0.61 / -3.6%
tpcds_q04/duckdb:parquet 131942924 / 131379761 / +0.4% 140942021 / 141158352 / -0.2% 0.94 / 0.93 / +0.6%
tpcds_q05/duckdb:parquet 30617860 / 30833834 / -0.7% 36912963 / 37028776 / -0.3% 0.83 / 0.83 / -0.4%
tpcds_q06/duckdb:parquet 31888728 / 32150086 / -0.8% 42764045 / 42644460 / +0.3% 0.75 / 0.75 / -1.1%
tpcds_q07/duckdb:parquet 33243160 / 33298061 / -0.2% 42340505 / 42603548 / -0.6% 0.79 / 0.78 / +0.5%
tpcds_q08/duckdb:parquet 22384722 / 22679677 / -1.3% 28664912 / 29862720 / -4.0% 0.78 / 0.76 / +2.8%
tpcds_q09/duckdb:parquet 29664757 / 29306652 / +1.2% 33470258 / 34056098 / -1.7% 0.89 / 0.86 / +3.0%
tpcds_q10/duckdb:parquet 40370698 / 41164660 / -1.9% 49347685 / 50308642 / -1.9% 0.82 / 0.82 / -0.0%
tpcds_q11/duckdb:parquet 74708512 / 75149775 / -0.6% 82811872 / 83075332 / -0.3% 0.90 / 0.90 / -0.3%
tpcds_q12/duckdb:parquet 16020636 / 16362310 / -2.1% 22032569 / 22513717 / -2.1% 0.73 / 0.73 / +0.1%
tpcds_q13/duckdb:parquet 32678308 / 33044183 / -1.1% 43692302 / 44182828 / -1.1% 0.75 / 0.75 / +0.0%
tpcds_q14/duckdb:parquet 71735242 / 71174578 / +0.8% 76841101 / 79471883 / -3.3% 0.93 / 0.90 / +4.2%
tpcds_q15/duckdb:parquet 18516490 / 18668916 / -0.8% 25966541 / 26114769 / -0.6% 0.71 / 0.71 / -0.3%
tpcds_q16/duckdb:parquet 43795842 / 44263705 / -1.1% 50992441 / 51154541 / -0.3% 0.86 / 0.87 / -0.7%
tpcds_q17/duckdb:parquet 37919609 / 37858576 / +0.2% 45124129 / 45437532 / -0.7% 0.84 / 0.83 / +0.9%
tpcds_q18/duckdb:parquet 51345372 / 51899668 / -1.1% 60464117 / 59726302 / +1.2% 0.85 / 0.87 / -2.3%
tpcds_q19/duckdb:parquet 20238886 / 20570085 / -1.6% 28557717 / 29074077 / -1.8% 0.71 / 0.71 / +0.2%
tpcds_q20/duckdb:parquet 17122072 / 17192398 / -0.4% 22946344 / 23405915 / -2.0% 0.75 / 0.73 / +1.6%
tpcds_q21/duckdb:parquet 12051943 / 12069398 / -0.1% 19197231 / 19193985 / +0.0% 0.63 / 0.63 / -0.2%
tpcds_q22/duckdb:parquet 22408053 / 22786454 / -1.7% 29756782 / 29371010 / +1.3% 0.75 / 0.78 / -2.9%
tpcds_q23/duckdb:parquet 46130114 / 46531502 / -0.9% 52497231 / 52932614 / -0.8% 0.88 / 0.88 / -0.0%
tpcds_q24/duckdb:parquet 33140632 / 33533062 / -1.2% 41275600 / 41847818 / -1.4% 0.80 / 0.80 / +0.2%
tpcds_q25/duckdb:parquet 33640948 / 34025074 / -1.1% 41938450 / 42410854 / -1.1% 0.80 / 0.80 / -0.0%
tpcds_q26/duckdb:parquet 31091386 / 31858504 / -2.4% 38966212 / 38845727 / +0.3% 0.80 / 0.82 / -2.7%
tpcds_q27/duckdb:parquet 36161265 / 35889354 / +0.8% 45595538 / 45815253 / -0.5% 0.79 / 0.78 / +1.2%
tpcds_q28/duckdb:parquet 30202713 / 30018104 / +0.6% 37826063 / 37590008 / +0.6% 0.80 / 0.80 / -0.0%
tpcds_q29/duckdb:parquet 35438097 / 35842821 / -1.1% 43750936 / 43915527 / -0.4% 0.81 / 0.82 / -0.8%
tpcds_q30/duckdb:parquet 40548133 / 40950778 / -1.0% 50300779 / 53761078 / -6.4% 0.81 / 0.76 / +5.8%
tpcds_q31/duckdb:parquet 38597540 / 38876682 / -0.7% 46969547 / 47252166 / -0.6% 0.82 / 0.82 / -0.1%
tpcds_q32/duckdb:parquet 17418152 / 17467670 / -0.3% 24509224 / 24704014 / -0.8% 0.71 / 0.71 / +0.5%
tpcds_q33/duckdb:parquet 24963430 / 25273202 / -1.2% 31590890 / 32285324 / -2.2% 0.79 / 0.78 / +0.9%
tpcds_q34/duckdb:parquet 18364655 / 18557908 / -1.0% 26672594 / 26435074 / +0.9% 0.69 / 0.70 / -1.9%
tpcds_q35/duckdb:parquet 39408108 / 39911215 / -1.3% 48783393 / 48425176 / +0.7% 0.81 / 0.82 / -2.0%
tpcds_q36/duckdb:parquet 42199552 / 42703088 / -1.2% 51952572 / 52222944 / -0.5% 0.81 / 0.82 / -0.7%
tpcds_q37/duckdb:parquet 14953136 / 14975561 / -0.1% 22206671 / 22350433 / -0.6% 0.67 / 0.67 / +0.5%
tpcds_q38/duckdb:parquet 32225103 / 32298115 / -0.2% 37453599 / 37193818 / +0.7% 0.86 / 0.87 / -0.9%
tpcds_q39/duckdb:parquet 25090211 / 25590262 / -2.0% 32376376 / 33087117 / -2.1% 0.77 / 0.77 / +0.2%
tpcds_q40/duckdb:parquet 17981266 / 18153762 / -1.0% 23954262 / 24397925 / -1.8% 0.75 / 0.74 / +0.9%
tpcds_q41/duckdb:parquet 13967317 / 14246674 / -2.0% 21949989 / 21943308 / +0.0% 0.64 / 0.65 / -2.0%
tpcds_q42/duckdb:parquet 10587416 / 10579660 / +0.1% 17850380 / 17727575 / +0.7% 0.59 / 0.60 / -0.6%
tpcds_q43/duckdb:parquet 13382414 / 13619888 / -1.7% 20933450 / 20808750 / +0.6% 0.64 / 0.65 / -2.3%
tpcds_q44/duckdb:parquet 22573846 / 24287447 / -7.1% 29399833 / 28739059 / +2.3% 0.77 / 0.85 / -9.1%
tpcds_q45/duckdb:parquet 23488134 / 23696610 / -0.9% 30946706 / 31357422 / -1.3% 0.76 / 0.76 / +0.4%
tpcds_q46/duckdb:parquet 37993935 / 38500332 / -1.3% 46889598 / 47718020 / -1.7% 0.81 / 0.81 / +0.4%
tpcds_q47/duckdb:parquet 37628979 / 37871174 / -0.6% 45660273 / 46527552 / -1.9% 0.82 / 0.81 / +1.2%
tpcds_q48/duckdb:parquet 30765002 / 30891434 / -0.4% 40847507 / 40608555 / +0.6% 0.75 / 0.76 / -1.0%
tpcds_q49/duckdb:parquet 33523454 / 31652608 / +5.9% 40814512 / 40689618 / +0.3% 0.82 / 0.78 / +5.6%
tpcds_q50/duckdb:parquet 21333736 / 21500242 / -0.8% 29115304 / 29406199 / -1.0% 0.73 / 0.73 / +0.2%
tpcds_q51/duckdb:parquet 56245138 / 56409870 / -0.3% 83004234 / 64688708 / +28.3% 🔴 0.68 / 0.87 / -22.3%
tpcds_q52/duckdb:parquet 10586898 / 10763580 / -1.6% 17950384 / 18112062 / -0.9% 0.59 / 0.59 / -0.8%
tpcds_q53/duckdb:parquet 15453490 / 15476084 / -0.1% 23367909 / 23446814 / -0.3% 0.66 / 0.66 / +0.2%
tpcds_q54/duckdb:parquet 27195062 / 27484921 / -1.1% 36340228 / 35644381 / +2.0% 0.75 / 0.77 / -2.9%
tpcds_q55/duckdb:parquet 10437970 / 10666912 / -2.1% 17496759 / 17759741 / -1.5% 0.60 / 0.60 / -0.7%
tpcds_q56/duckdb:parquet 26743534 / 26985425 / -0.9% 33938625 / 34252694 / -0.9% 0.79 / 0.79 / +0.0%
tpcds_q57/duckdb:parquet 33797654 / 33679152 / +0.4% 40449372 / 40326070 / +0.3% 0.84 / 0.84 / +0.0%
tpcds_q58/duckdb:parquet 26543561 / 26536364 / +0.0% 33481515 / 33483367 / -0.0% 0.79 / 0.79 / +0.0%
tpcds_q59/duckdb:parquet 24787058 / 25114642 / -1.3% 32551219 / 32525005 / +0.1% 0.76 / 0.77 / -1.4%
tpcds_q60/duckdb:parquet 29365915 / 28401478 / +3.4% 35772512 / 35608805 / +0.5% 0.82 / 0.80 / +2.9%
tpcds_q61/duckdb:parquet 25774940 / 27084780 / -4.8% 31776913 / 32072144 / -0.9% 0.81 / 0.84 / -4.0%
tpcds_q62/duckdb:parquet 14180148 / 14452104 / -1.9% 20475984 / 20694763 / -1.1% 0.69 / 0.70 / -0.8%
tpcds_q63/duckdb:parquet 14687938 / 14807718 / -0.8% 22543500 / 22419485 / +0.6% 0.65 / 0.66 / -1.4%
tpcds_q64/duckdb:parquet 77823231 / 77044416 / +1.0% 89133553 / 88989658 / +0.2% 0.87 / 0.87 / +0.8%
tpcds_q65/duckdb:parquet 22442038 / 21999061 / +2.0% 27253066 / 27453346 / -0.7% 0.82 / 0.80 / +2.8%
tpcds_q66/duckdb:parquet 39947190 / 40164515 / -0.5% 47277873 / 48418907 / -2.4% 0.84 / 0.83 / +1.9%
tpcds_q67/duckdb:parquet 67993237 / 67849475 / +0.2% 75456112 / 76309207 / -1.1% 0.90 / 0.89 / +1.3%
tpcds_q68/duckdb:parquet 30483982 / 30772986 / -0.9% 39956588 / 39496453 / +1.2% 0.76 / 0.78 / -2.1%
tpcds_q69/duckdb:parquet 28208268 / 28968358 / -2.6% 37808255 / 38537349 / -1.9% 0.75 / 0.75 / -0.7%
tpcds_q70/duckdb:parquet 21392033 / 21713808 / -1.5% 29737743 / 29551750 / +0.6% 0.72 / 0.73 / -2.1%
tpcds_q71/duckdb:parquet 18265794 / 18364015 / -0.5% 25927742 / 26083380 / -0.6% 0.70 / 0.70 / +0.1%
tpcds_q72/duckdb:parquet 60172752 / 60419342 / -0.4% 69173739 / 70373632 / -1.7% 0.87 / 0.86 / +1.3%
tpcds_q73/duckdb:parquet 15954240 / 15972982 / -0.1% 23773730 / 24157600 / -1.6% 0.67 / 0.66 / +1.5%
tpcds_q74/duckdb:parquet 92692340 / 92831064 / -0.1% 101639538 / 101609503 / +0.0% 0.91 / 0.91 / -0.2%
tpcds_q75/duckdb:parquet 46939052 / 46978390 / -0.1% 55853878 / 56255548 / -0.7% 0.84 / 0.84 / +0.6%
tpcds_q76/duckdb:parquet 19057716 / 20723146 / -8.0% 25984619 / 25748937 / +0.9% 0.73 / 0.80 / -8.9%
tpcds_q77/duckdb:parquet 26512420 / 26867437 / -1.3% 34042387 / 34106605 / -0.2% 0.78 / 0.79 / -1.1%
tpcds_q78/duckdb:parquet 82428362 / 82669150 / -0.3% 91731281 / 90493928 / +1.4% 0.90 / 0.91 / -1.6%
tpcds_q79/duckdb:parquet 24638183 / 23370406 / +5.4% 32104087 / 31826809 / +0.9% 0.77 / 0.73 / +4.5%
tpcds_q80/duckdb:parquet 39274932 / 39822459 / -1.4% 47826281 / 47482389 / +0.7% 0.82 / 0.84 / -2.1%
tpcds_q81/duckdb:parquet 41262054 / 41480985 / -0.5% 50239858 / 50605131 / -0.7% 0.82 / 0.82 / +0.2%
tpcds_q82/duckdb:parquet 15679304 / 15761252 / -0.5% 23812563 / 23587700 / +1.0% 0.66 / 0.67 / -1.5%
tpcds_q83/duckdb:parquet 22018892 / 22334745 / -1.4% 28576063 / 28123425 / +1.6% 0.77 / 0.79 / -3.0%
tpcds_q84/duckdb:parquet 24498134 / 24533518 / -0.1% 30910195 / 31456642 / -1.7% 0.79 / 0.78 / +1.6%
tpcds_q85/duckdb:parquet 34951216 / 35836572 / -2.5% 43862000 / 44209113 / -0.8% 0.80 / 0.81 / -1.7%
tpcds_q86/duckdb:parquet 13307428 / 13810191 / -3.6% 20216346 / 19817337 / +2.0% 0.66 / 0.70 / -5.5%
tpcds_q87/duckdb:parquet 33880324 / 34206630 / -1.0% 39875902 / 39386514 / +1.2% 0.85 / 0.87 / -2.2%
tpcds_q88/duckdb:parquet 42265301 / 43280864 / -2.3% 49862458 / 54118964 / -7.9% 0.85 / 0.80 / +6.0%
tpcds_q89/duckdb:parquet 15757267 / 15691137 / +0.4% 23824460 / 23659831 / +0.7% 0.66 / 0.66 / -0.3%
tpcds_q90/duckdb:parquet 10701212 / 10859698 / -1.5% 17448904 / 17619035 / -1.0% 0.61 / 0.62 / -0.5%
tpcds_q91/duckdb:parquet 23044740 / 23136540 / -0.4% 31981835 / 31639361 / +1.1% 0.72 / 0.73 / -1.5%
tpcds_q92/duckdb:parquet 18803849 / 19125308 / -1.7% 26311614 / 26458391 / -0.6% 0.71 / 0.72 / -1.1%
tpcds_q93/duckdb:parquet 15513512 / 15483261 / +0.2% 22792375 / 23411350 / -2.6% 0.68 / 0.66 / +2.9%
tpcds_q94/duckdb:parquet 37629092 / 37727360 / -0.3% 45792127 / 45479438 / +0.7% 0.82 / 0.83 / -0.9%
tpcds_q95/duckdb:parquet 48428578 / 47991017 / +0.9% 55055235 / 54105684 / +1.8% 0.88 / 0.89 / -0.8%
tpcds_q96/duckdb:parquet 8834322 / 9126438 / -3.2% 15595289 / 15644767 / -0.3% 0.57 / 0.58 / -2.9%
tpcds_q97/duckdb:parquet 29164854 / 29273749 / -0.4% 35106336 / 37201939 / -5.6% 0.83 / 0.79 / +5.6%
tpcds_q98/duckdb:parquet 18692804 / 18846741 / -0.8% 26837440 / 26462560 / +1.4% 0.70 / 0.71 / -2.2%
tpcds_q99/duckdb:parquet 20320984 / 20298226 / +0.1% 26488244 / 26502711 / -0.1% 0.77 / 0.77 / +0.2%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench on NVME 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.8%
Engines: DataFusion No clear signal (+0.7%, low confidence) · DuckDB No clear signal (+0.9%, low confidence)
Vortex (geomean): hot 0.998x ➖ · cold 0.994x ➖
Parquet (geomean): hot 0.990x ➖ · cold 0.991x ➖
Shifts: Parquet (control) -1.0% · Median polish -0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (1.002x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/datafusion:vortex-file-compressed 1233653 / 1261248 / -2.2% 22391366 / 22208176 / +0.8% 0.06 / 0.06 / -3.0%
clickbench_q01/datafusion:vortex-file-compressed 6109994 / 5741486 / +6.4% 32375972 / 32461466 / -0.3% 0.19 / 0.18 / +6.7%
clickbench_q02/datafusion:vortex-file-compressed 9497854 / 9506805 / -0.1% 37458783 / 36047214 / +3.9% 0.25 / 0.26 / -3.9%
clickbench_q03/datafusion:vortex-file-compressed 10780737 / 10987468 / -1.9% 53498087 / 54059496 / -1.0% 0.20 / 0.20 / -0.9%
clickbench_q04/datafusion:vortex-file-compressed 55135550 / 55368442 / -0.4% 89951890 / 90498730 / -0.6% 0.61 / 0.61 / +0.2%
clickbench_q05/datafusion:vortex-file-compressed 77335106 / 74096078 / +4.4% 118071569 / 114855147 / +2.8% 0.65 / 0.65 / +1.5%
clickbench_q06/datafusion:vortex-file-compressed 1257370 / 1282883 / -2.0% 22751141 / 22415841 / +1.5% 0.06 / 0.06 / -3.4%
clickbench_q07/datafusion:vortex-file-compressed 9400280 / 9278688 / +1.3% 32608234 / 33317213 / -2.1% 0.29 / 0.28 / +3.5%
clickbench_q08/datafusion:vortex-file-compressed 75159376 / 75295750 / -0.2% 117000808 / 119698431 / -2.3% 0.64 / 0.63 / +2.1%
clickbench_q09/datafusion:vortex-file-compressed 164951292 / 168945109 / -2.4% 206646698 / 208476106 / -0.9% 0.80 / 0.81 / -1.5%
clickbench_q10/datafusion:vortex-file-compressed 23150902 / 22039146 / +5.0% 67513562 / 66952078 / +0.8% 0.34 / 0.33 / +4.2%
clickbench_q11/datafusion:vortex-file-compressed 25997786 / 25674424 / +1.3% 65249031 / 70448132 / -7.4% 0.40 / 0.36 / +9.3%
clickbench_q12/datafusion:vortex-file-compressed 71338968 / 71714575 / -0.5% 115930222 / 122310525 / -5.2% 0.62 / 0.59 / +5.0%
clickbench_q13/datafusion:vortex-file-compressed 116626162 / 115821386 / +0.7% 176835786 / 177485708 / -0.4% 0.66 / 0.65 / +1.1%
clickbench_q14/datafusion:vortex-file-compressed 74613922 / 73953617 / +0.9% 114596743 / 121150935 / -5.4% 0.65 / 0.61 / +6.7%
clickbench_q15/datafusion:vortex-file-compressed 61357701 / 60744492 / +1.0% 94808013 / 98857521 / -4.1% 0.65 / 0.61 / +5.3%
clickbench_q16/datafusion:vortex-file-compressed 150959380 / 150124496 / +0.6% 206145576 / 207159238 / -0.5% 0.73 / 0.72 / +1.1%
clickbench_q17/datafusion:vortex-file-compressed 146712709 / 149583786 / -1.9% 203029572 / 209383454 / -3.0% 0.72 / 0.71 / +1.2%
clickbench_q18/datafusion:vortex-file-compressed 282531368 / 296181507 / -4.6% 392386606 / 373254936 / +5.1% 0.72 / 0.79 / -9.3%
clickbench_q19/datafusion:vortex-file-compressed 7870388 / 7476818 / +5.3% 48644023 / 48177529 / +1.0% 0.16 / 0.16 / +4.3%
clickbench_q20/datafusion:vortex-file-compressed 61416600 / 61254057 / +0.3% 222985196 / 224197416 / -0.5% 0.28 / 0.27 / +0.8%
clickbench_q21/datafusion:vortex-file-compressed 90547408 / 87192698 / +3.8% 274454818 / 265857519 / +3.2% 0.33 / 0.33 / +0.6%
clickbench_q22/datafusion:vortex-file-compressed 97855124 / 100680410 / -2.8% 334434269 / 345081792 / -3.1% 0.29 / 0.29 / +0.3%
clickbench_q23/datafusion:vortex-file-compressed 188323744 / 188356090 / -0.0% 438622606 / 384793861 / +14.0% 🔴 0.43 / 0.49 / -12.3%
clickbench_q24/datafusion:vortex-file-compressed 15809070 / 16014626 / -1.3% 67204154 / 65324025 / +2.9% 0.24 / 0.25 / -4.0%
clickbench_q25/datafusion:vortex-file-compressed 17378764 / 17481601 / -0.6% 57527937 / 59875824 / -3.9% 0.30 / 0.29 / +3.5%
clickbench_q26/datafusion:vortex-file-compressed 15650945 / 16242988 / -3.6% 63731214 / 66297846 / -3.9% 0.25 / 0.25 / +0.2%
clickbench_q27/datafusion:vortex-file-compressed 95630964 / 96676686 / -1.1% 240731317 / 239499020 / +0.5% 0.40 / 0.40 / -1.6%
clickbench_q28/datafusion:vortex-file-compressed 554836106 / 551104877 / +0.7% 601571398 / 631233857 / -4.7% 0.92 / 0.87 / +5.6%
clickbench_q29/datafusion:vortex-file-compressed 23105719 / 22995814 / +0.5% 50750417 / 51410757 / -1.3% 0.46 / 0.45 / +1.8%
clickbench_q30/datafusion:vortex-file-compressed 55244954 / 57650175 / -4.2% 105699095 / 108930612 / -3.0% 0.52 / 0.53 / -1.2%
clickbench_q31/datafusion:vortex-file-compressed 66885751 / 67793026 / -1.3% 152896537 / 153714180 / -0.5% 0.44 / 0.44 / -0.8%
clickbench_q32/datafusion:vortex-file-compressed 294523580 / 288644032 / +2.0% 380888976 / 391828553 / -2.8% 0.77 / 0.74 / +5.0%
clickbench_q33/datafusion:vortex-file-compressed 317892510 / 320609870 / -0.8% 422316520 / 427342547 / -1.2% 0.75 / 0.75 / +0.3%
clickbench_q34/datafusion:vortex-file-compressed 317592098 / 319377776 / -0.6% 420726031 / 418909519 / +0.4% 0.75 / 0.76 / -1.0%
clickbench_q35/datafusion:vortex-file-compressed 55160842 / 55197768 / -0.1% 86702495 / 90080396 / -3.7% 0.64 / 0.61 / +3.8%
clickbench_q36/datafusion:vortex-file-compressed 37503398 / 37367441 / +0.4% 65718708 / 65392519 / +0.5% 0.57 / 0.57 / -0.1%
clickbench_q37/datafusion:vortex-file-compressed 22123958 / 21896678 / +1.0% 47578815 / 48368288 / -1.6% 0.46 / 0.45 / +2.7%
clickbench_q38/datafusion:vortex-file-compressed 11822834 / 11694756 / +1.1% 40140846 / 40000035 / +0.4% 0.29 / 0.29 / +0.7%
clickbench_q39/datafusion:vortex-file-compressed 77737182 / 77638046 / +0.1% 110677806 / 110844802 / -0.2% 0.70 / 0.70 / +0.3%
clickbench_q40/datafusion:vortex-file-compressed 11465348 / 11104250 / +3.3% 36640111 / 37516031 / -2.3% 0.31 / 0.30 / +5.7%
clickbench_q41/datafusion:vortex-file-compressed 10973052 / 10684592 / +2.7% 37523328 / 35955665 / +4.4% 0.29 / 0.30 / -1.6%
clickbench_q42/datafusion:vortex-file-compressed 11162262 / 11052988 / +1.0% 35148934 / 36421968 / -3.5% 0.32 / 0.30 / +4.6%
datafusion / parquet / ns (0.995x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/datafusion:parquet 1264672 / 1253978 / +0.9% 51581504 / 51070083 / +1.0% 0.02 / 0.02 / -0.1%
clickbench_q01/datafusion:parquet 15837525 / 16001286 / -1.0% 66915488 / 73865020 / -9.4% 0.24 / 0.22 / +9.3%
clickbench_q02/datafusion:parquet 18983657 / 19313344 / -1.7% 81791368 / 80365040 / +1.8% 0.23 / 0.24 / -3.4%
clickbench_q03/datafusion:parquet 17190454 / 17204936 / -0.1% 83150429 / 80962081 / +2.7% 0.21 / 0.21 / -2.7%
clickbench_q04/datafusion:parquet 61227186 / 62535487 / -2.1% 126492692 / 124742286 / +1.4% 0.48 / 0.50 / -3.4%
clickbench_q05/datafusion:parquet 87945234 / 87995028 / -0.1% 156582443 / 160052326 / -2.2% 0.56 / 0.55 / +2.2%
clickbench_q06/datafusion:parquet 1265967 / 1285248 / -1.5% 51039954 / 50118233 / +1.8% 0.02 / 0.03 / -3.3%
clickbench_q07/datafusion:parquet 16741380 / 16962812 / -1.3% 69579475 / 68012807 / +2.3% 0.24 / 0.25 / -3.5%
clickbench_q08/datafusion:parquet 85309407 / 86004940 / -0.8% 167971269 / 162557590 / +3.3% 0.51 / 0.53 / -4.0%
clickbench_q09/datafusion:parquet 188788360 / 189220114 / -0.2% 272903867 / 265396654 / +2.8% 0.69 / 0.71 / -3.0%
clickbench_q10/datafusion:parquet 36483752 / 36977369 / -1.3% 100725192 / 101980767 / -1.2% 0.36 / 0.36 / -0.1%
clickbench_q11/datafusion:parquet 42792970 / 42919521 / -0.3% 112469935 / 111759799 / +0.6% 0.38 / 0.38 / -0.9%
clickbench_q12/datafusion:parquet 94761080 / 95408308 / -0.7% 161769854 / 164379422 / -1.6% 0.59 / 0.58 / +0.9%
clickbench_q13/datafusion:parquet 148033262 / 148886972 / -0.6% 225370407 / 227207886 / -0.8% 0.66 / 0.66 / +0.2%
clickbench_q14/datafusion:parquet 101692430 / 101473982 / +0.2% 172486028 / 173272347 / -0.5% 0.59 / 0.59 / +0.7%
clickbench_q15/datafusion:parquet 71192344 / 70604414 / +0.8% 131359944 / 131741062 / -0.3% 0.54 / 0.54 / +1.1%
clickbench_q16/datafusion:parquet 155458576 / 156500464 / -0.7% 233696527 / 237592083 / -1.6% 0.67 / 0.66 / +1.0%
clickbench_q17/datafusion:parquet 154164040 / 156087693 / -1.2% 235059234 / 237996379 / -1.2% 0.66 / 0.66 / +0.0%
clickbench_q18/datafusion:parquet 304594702 / 308928661 / -1.4% 414456676 / 422772746 / -2.0% 0.73 / 0.73 / +0.6%
clickbench_q19/datafusion:parquet 19163338 / 19176332 / -0.1% 78235795 / 77162837 / +1.4% 0.24 / 0.25 / -1.4%
clickbench_q20/datafusion:parquet 177913492 / 178482614 / -0.3% 286044751 / 280657834 / +1.9% 0.62 / 0.64 / -2.2%
clickbench_q21/datafusion:parquet 172058269 / 175119702 / -1.7% 299476654 / 300961775 / -0.5% 0.57 / 0.58 / -1.3%
clickbench_q22/datafusion:parquet 259854427 / 261557145 / -0.7% 430553000 / 429921012 / +0.1% 0.60 / 0.61 / -0.8%
clickbench_q23/datafusion:parquet 1009410374 / 1009086440 / +0.0% 1185713787 / 1218589573 / -2.7% 0.85 / 0.83 / +2.8%
clickbench_q24/datafusion:parquet 29709364 / 29748389 / -0.1% 88569373 / 89405958 / -0.9% 0.34 / 0.33 / +0.8%
clickbench_q25/datafusion:parquet 36836372 / 36886880 / -0.1% 104960880 / 102788329 / +2.1% 0.35 / 0.36 / -2.2%
clickbench_q26/datafusion:parquet 30493954 / 30452891 / +0.1% 89840956 / 90123702 / -0.3% 0.34 / 0.34 / +0.4%
clickbench_q27/datafusion:parquet 192527234 / 193338084 / -0.4% 292397570 / 297193685 / -1.6% 0.66 / 0.65 / +1.2%
clickbench_q28/datafusion:parquet 616184190 / 620037760 / -0.6% 700476470 / 707915517 / -1.1% 0.88 / 0.88 / +0.4%
clickbench_q29/datafusion:parquet 29186668 / 28969171 / +0.8% 92083784 / 90649284 / +1.6% 0.32 / 0.32 / -0.8%
clickbench_q30/datafusion:parquet 90001586 / 91789734 / -1.9% 174031849 / 173497366 / +0.3% 0.52 / 0.53 / -2.2%
clickbench_q31/datafusion:parquet 104085066 / 102789277 / +1.3% 201193209 / 197970932 / +1.6% 0.52 / 0.52 / -0.4%
clickbench_q32/datafusion:parquet 309279462 / 310018836 / -0.2% 432742743 / 432955253 / -0.0% 0.71 / 0.72 / -0.2%
clickbench_q33/datafusion:parquet 376498816 / 378390285 / -0.5% 477298714 / 478744919 / -0.3% 0.79 / 0.79 / -0.2%
clickbench_q34/datafusion:parquet 377768508 / 379447670 / -0.4% 476846637 / 484818964 / -1.6% 0.79 / 0.78 / +1.2%
clickbench_q35/datafusion:parquet 64491245 / 63527172 / +1.5% 123409771 / 126279210 / -2.3% 0.52 / 0.50 / +3.9%
clickbench_q36/datafusion:parquet 73286000 / 73459316 / -0.2% 137826193 / 135267962 / +1.9% 0.53 / 0.54 / -2.1%
clickbench_q37/datafusion:parquet 35425102 / 35504100 / -0.2% 91843507 / 92586204 / -0.8% 0.39 / 0.38 / +0.6%
clickbench_q38/datafusion:parquet 47255421 / 47666606 / -0.9% 108041286 / 110007885 / -1.8% 0.44 / 0.43 / +0.9%
clickbench_q39/datafusion:parquet 143544473 / 143325492 / +0.2% 211622194 / 215368185 / -1.7% 0.68 / 0.67 / +1.9%
clickbench_q40/datafusion:parquet 19755820 / 20218712 / -2.3% 78171567 / 79247199 / -1.4% 0.25 / 0.26 / -0.9%
clickbench_q41/datafusion:parquet 18823872 / 18665490 / +0.8% 75788195 / 75999552 / -0.3% 0.25 / 0.25 / +1.1%
clickbench_q42/datafusion:parquet 19303983 / 19457247 / -0.8% 75714521 / 75763974 / -0.1% 0.25 / 0.26 / -0.7%
duckdb / vortex-file-compressed / ns (0.994x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/duckdb:vortex-file-compressed 2409724 / 2473686 / -2.6% 25222143 / 25641112 / -1.6% 0.10 / 0.10 / -1.0%
clickbench_q01/duckdb:vortex-file-compressed 7656032 / 7611955 / +0.6% 29967346 / 30157460 / -0.6% 0.26 / 0.25 / +1.2%
clickbench_q02/duckdb:vortex-file-compressed 8392265 / 8320431 / +0.9% 34765718 / 36188808 / -3.9% 0.24 / 0.23 / +5.0%
clickbench_q03/duckdb:vortex-file-compressed 16083951 / 16123425 / -0.2% 62587618 / 60601006 / +3.3% 0.26 / 0.27 / -3.4%
clickbench_q04/duckdb:vortex-file-compressed 56557552 / 58327280 / -3.0% 103802887 / 102164949 / +1.6% 0.54 / 0.57 / -4.6%
clickbench_q05/duckdb:vortex-file-compressed 66151414 / 65073504 / +1.7% 97943283 / 95638431 / +2.4% 0.68 / 0.68 / -0.7%
clickbench_q06/duckdb:vortex-file-compressed 2757642 / 2745149 / +0.5% 30028030 / 33337882 / -9.9% 0.09 / 0.08 / +11.5%
clickbench_q07/duckdb:vortex-file-compressed 8854762 / 8903376 / -0.5% 29566018 / 32661695 / -9.5% 0.30 / 0.27 / +9.9%
clickbench_q08/duckdb:vortex-file-compressed 67909638 / 68774498 / -1.3% 115482638 / 116793085 / -1.1% 0.59 / 0.59 / -0.1%
clickbench_q09/duckdb:vortex-file-compressed 91432690 / 89691031 / +1.9% 135359324 / 138135714 / -2.0% 0.68 / 0.65 / +4.0%
clickbench_q10/duckdb:vortex-file-compressed 27392934 / 27774694 / -1.4% 71842532 / 73410011 / -2.1% 0.38 / 0.38 / +0.8%
clickbench_q11/duckdb:vortex-file-compressed 30156426 / 29951371 / +0.7% 74425832 / 75434535 / -1.3% 0.41 / 0.40 / +2.0%
clickbench_q12/duckdb:vortex-file-compressed 72401627 / 71791413 / +0.8% 103295098 / 101998086 / +1.3% 0.70 / 0.70 / -0.4%
clickbench_q13/duckdb:vortex-file-compressed 128662120 / 130243302 / -1.2% 169370890 / 171518396 / -1.3% 0.76 / 0.76 / +0.0%
clickbench_q14/duckdb:vortex-file-compressed 74665338 / 76517858 / -2.4% 107717374 / 105806229 / +1.8% 0.69 / 0.72 / -4.2%
clickbench_q15/duckdb:vortex-file-compressed 76962926 / 77428818 / -0.6% 117976693 / 116171970 / +1.6% 0.65 / 0.67 / -2.1%
clickbench_q16/duckdb:vortex-file-compressed 144872904 / 140817846 / +2.9% 184231368 / 187034386 / -1.5% 0.79 / 0.75 / +4.4%
clickbench_q17/duckdb:vortex-file-compressed 142153094 / 143503642 / -0.9% 181350765 / 180996517 / +0.2% 0.78 / 0.79 / -1.1%
clickbench_q18/duckdb:vortex-file-compressed 263398758 / 259813888 / +1.4% 323980859 / 327416375 / -1.0% 0.81 / 0.79 / +2.5%
clickbench_q19/duckdb:vortex-file-compressed 9463344 / 9322268 / +1.5% 45862707 / 46185175 / -0.7% 0.21 / 0.20 / +2.2%
clickbench_q20/duckdb:vortex-file-compressed 66835924 / 66135222 / +1.1% 170660320 / 176566155 / -3.3% 0.39 / 0.37 / +4.6%
clickbench_q21/duckdb:vortex-file-compressed 97749104 / 99385166 / -1.6% 288700284 / 283471200 / +1.8% 0.34 / 0.35 / -3.4%
clickbench_q22/duckdb:vortex-file-compressed 177095407 / 177169149 / -0.0% 450968198 / 442764855 / +1.9% 0.39 / 0.40 / -1.9%
clickbench_q23/duckdb:vortex-file-compressed 35340740 / 35823536 / -1.3% 91671688 / 91055304 / +0.7% 0.39 / 0.39 / -2.0%
clickbench_q24/duckdb:vortex-file-compressed 14199758 / 14829160 / -4.2% 40677006 / 41006563 / -0.8% 0.35 / 0.36 / -3.5%
clickbench_q25/duckdb:vortex-file-compressed 18868881 / 19130250 / -1.4% 53321862 / 54855838 / -2.8% 0.35 / 0.35 / +1.5%
clickbench_q26/duckdb:vortex-file-compressed 11592736 / 11709151 / -1.0% 38509827 / 38067292 / +1.2% 0.30 / 0.31 / -2.1%
clickbench_q27/duckdb:vortex-file-compressed 55306377 / 55375238 / -0.1% 226982612 / 228375116 / -0.6% 0.24 / 0.24 / +0.5%
clickbench_q28/duckdb:vortex-file-compressed 455852508 / 451705399 / +0.9% 529326855 / 524329649 / +1.0% 0.86 / 0.86 / -0.0%
clickbench_q29/duckdb:vortex-file-compressed 18073450 / 18569736 / -2.7% 46319027 / 45930727 / +0.8% 0.39 / 0.40 / -3.5%
clickbench_q30/duckdb:vortex-file-compressed 59761331 / 60649438 / -1.5% 113887105 / 114083074 / -0.2% 0.52 / 0.53 / -1.3%
clickbench_q31/duckdb:vortex-file-compressed 112682398 / 114332830 / -1.4% 199561011 / 179105668 / +11.4% 🔴 0.56 / 0.64 / -11.5%
clickbench_q32/duckdb:vortex-file-compressed 369101272 / 374520922 / -1.4% 407363904 / 411681052 / -1.0% 0.91 / 0.91 / -0.4%
clickbench_q33/duckdb:vortex-file-compressed 349506164 / 348384500 / +0.3% 449350396 / 455141387 / -1.3% 0.78 / 0.77 / +1.6%
clickbench_q34/duckdb:vortex-file-compressed 364452629 / 368452730 / -1.1% 462904271 / 472667423 / -2.1% 0.79 / 0.78 / +1.0%
clickbench_q35/duckdb:vortex-file-compressed 57522846 / 58682670 / -2.0% 94813211 / 96284674 / -1.5% 0.61 / 0.61 / -0.5%
clickbench_q36/duckdb:vortex-file-compressed 12470818 / 12338751 / +1.1% 33951488 / 34262539 / -0.9% 0.37 / 0.36 / +2.0%
clickbench_q37/duckdb:vortex-file-compressed 8492016 / 8753183 / -3.0% 31356365 / 30762892 / +1.9% 0.27 / 0.28 / -4.8%
clickbench_q38/duckdb:vortex-file-compressed 9121829 / 9137472 / -0.2% 30765235 / 31828746 / -3.3% 0.30 / 0.29 / +3.3%
clickbench_q39/duckdb:vortex-file-compressed 20436080 / 20703902 / -1.3% 42310424 / 43783996 / -3.4% 0.48 / 0.47 / +2.1%
clickbench_q40/duckdb:vortex-file-compressed 7769211 / 7791591 / -0.3% 30681083 / 31038524 / -1.2% 0.25 / 0.25 / +0.9%
clickbench_q41/duckdb:vortex-file-compressed 8302956 / 8373800 / -0.8% 32846242 / 30679660 / +7.1% 0.25 / 0.27 / -7.4%
clickbench_q42/duckdb:vortex-file-compressed 7465295 / 7588680 / -1.6% 30859642 / 30317986 / +1.8% 0.24 / 0.25 / -3.4%
duckdb / parquet / ns (0.986x ➖, 0↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
clickbench_q00/duckdb:parquet 12537189 / 12650054 / -0.9% 19476636 / 20273137 / -3.9% 0.64 / 0.62 / +3.2%
clickbench_q01/duckdb:parquet 18703416 / 19809408 / -5.6% 25446345 / 26257577 / -3.1% 0.74 / 0.75 / -2.6%
clickbench_q02/duckdb:parquet 27501830 / 27390572 / +0.4% 41075412 / 37198607 / +10.4% 🔴 0.67 / 0.74 / -9.1%
clickbench_q03/duckdb:parquet 25971739 / 26730794 / -2.8% 41207928 / 38768087 / +6.3% 0.63 / 0.69 / -8.6%
clickbench_q04/duckdb:parquet 64776265 / 66184226 / -2.1% 78470625 / 80656303 / -2.7% 0.83 / 0.82 / +0.6%
clickbench_q05/duckdb:parquet 88014498 / 91007850 / -3.3% 105126491 / 109148979 / -3.7% 0.84 / 0.83 / +0.4%
clickbench_q06/duckdb:parquet 25596690 / 25562459 / +0.1% 35460995 / 34065390 / +4.1% 0.72 / 0.75 / -3.8%
clickbench_q07/duckdb:parquet 21650179 / 22205884 / -2.5% 30413046 / 29438201 / +3.3% 0.71 / 0.75 / -5.6%
clickbench_q08/duckdb:parquet 77416080 / 80949642 / -4.4% 96284516 / 95053383 / +1.3% 0.80 / 0.85 / -5.6%
clickbench_q09/duckdb:parquet 105279113 / 106525661 / -1.2% 122498938 / 125075821 / -2.1% 0.86 / 0.85 / +0.9%
clickbench_q10/duckdb:parquet 44745188 / 45409953 / -1.5% 61565428 / 60499553 / +1.8% 0.73 / 0.75 / -3.2%
clickbench_q11/duckdb:parquet 50001716 / 50835093 / -1.6% 65115785 / 66973884 / -2.8% 0.77 / 0.76 / +1.2%
clickbench_q12/duckdb:parquet 97486210 / 99540686 / -2.1% 118635881 / 119225411 / -0.5% 0.82 / 0.83 / -1.6%
clickbench_q13/duckdb:parquet 156868052 / 159564938 / -1.7% 175525123 / 184286331 / -4.8% 0.89 / 0.87 / +3.2%
clickbench_q14/duckdb:parquet 107077521 / 107740879 / -0.6% 128510924 / 130760619 / -1.7% 0.83 / 0.82 / +1.1%
clickbench_q15/duckdb:parquet 91506553 / 94285780 / -2.9% 105743534 / 107428276 / -1.6% 0.87 / 0.88 / -1.4%
clickbench_q16/duckdb:parquet 187068506 / 197607024 / -5.3% 190418454 / 191238549 / -0.4% 0.98 / 1.03 / -4.9%
clickbench_q17/duckdb:parquet 182087555 / 181182310 / +0.5% 190607378 / 203278137 / -6.2% 0.96 / 0.89 / +7.2%
clickbench_q18/duckdb:parquet 305868732 / 314302903 / -2.7% 342863355 / 353583023 / -3.0% 0.89 / 0.89 / +0.4%
clickbench_q19/duckdb:parquet 23813058 / 23914886 / -0.4% 35849132 / 32319404 / +10.9% 🔴 0.66 / 0.74 / -10.2%
clickbench_q20/duckdb:parquet 189361498 / 193695783 / -2.2% 251177351 / 242302698 / +3.7% 0.75 / 0.80 / -5.7%
clickbench_q21/duckdb:parquet 232202194 / 245648786 / -5.5% 274727013 / 279351140 / -1.7% 0.85 / 0.88 / -3.9%
clickbench_q22/duckdb:parquet 333454042 / 337148476 / -1.1% 381225141 / 372113452 / +2.4% 0.87 / 0.91 / -3.5%
clickbench_q23/duckdb:parquet 176828220 / 186685502 / -5.3% 253956920 / 256326831 / -0.9% 0.70 / 0.73 / -4.4%
clickbench_q24/duckdb:parquet 34712822 / 36682046 / -5.4% 43707125 / 54262723 / -19.5% 🟢 0.79 / 0.68 / +17.5%
clickbench_q25/duckdb:parquet 47975020 / 46988930 / +2.1% 63730382 / 71447665 / -10.8% 🟢 0.75 / 0.66 / +14.5%
clickbench_q26/duckdb:parquet 36631650 / 36955640 / -0.9% 52564879 / 51050191 / +3.0% 0.70 / 0.72 / -3.7%
clickbench_q27/duckdb:parquet 204520644 / 193576787 / +5.7% 246376927 / 242956218 / +1.4% 0.83 / 0.80 / +4.2%
clickbench_q28/duckdb:parquet 875454802 / 843733842 / +3.8% 846095558 / 840858308 / +0.6% 1.03 / 1.00 / +3.1%
clickbench_q29/duckdb:parquet 31049177 / 31183474 / -0.4% 38307756 / 39691605 / -3.5% 0.81 / 0.79 / +3.2%
clickbench_q30/duckdb:parquet 110295868 / 113654239 / -3.0% 137637704 / 141845146 / -3.0% 0.80 / 0.80 / +0.0%
clickbench_q31/duckdb:parquet 166123812 / 166963099 / -0.5% 184379926 / 212836273 / -13.4% 🟢 0.90 / 0.78 / +14.9%
clickbench_q32/duckdb:parquet 407139770 / 405030908 / +0.5% 418789542 / 417974618 / +0.2% 0.97 / 0.97 / +0.3%
clickbench_q33/duckdb:parquet 492875424 / 477225110 / +3.3% 465359965 / 488382159 / -4.7% 1.06 / 0.98 / +8.4%
clickbench_q34/duckdb:parquet 484150689 / 479203214 / +1.0% 474348522 / 467016979 / +1.6% 1.02 / 1.03 / -0.5%
clickbench_q35/duckdb:parquet 67088116 / 67239655 / -0.2% 80466564 / 80118372 / +0.4% 0.83 / 0.84 / -0.7%
clickbench_q36/duckdb:parquet 37122628 / 37914602 / -2.1% 45107648 / 45883790 / -1.7% 0.82 / 0.83 / -0.4%
clickbench_q37/duckdb:parquet 28187778 / 28606758 / -1.5% 36719044 / 37711912 / -2.6% 0.77 / 0.76 / +1.2%
clickbench_q38/duckdb:parquet 29976072 / 30529641 / -1.8% 38649251 / 40054896 / -3.5% 0.78 / 0.76 / +1.8%
clickbench_q39/duckdb:parquet 62231477 / 63057700 / -1.3% 72142729 / 72923579 / -1.1% 0.86 / 0.86 / -0.2%
clickbench_q40/duckdb:parquet 18150414 / 18709288 / -3.0% 26672589 / 27059683 / -1.4% 0.68 / 0.69 / -1.6%
clickbench_q41/duckdb:parquet 18343861 / 18954402 / -3.2% 26144033 / 27031776 / -3.3% 0.70 / 0.70 / +0.1%
clickbench_q42/duckdb:parquet 18190651 / 18036739 / +0.9% 27003690 / 27671709 / -2.4% 0.67 / 0.65 / +3.3%

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on S3 📖

Commits: PR e922dfcb vs base 31027fc2
Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -3.0%
Engines: DataFusion No clear signal (-10.9%, environment too noisy confidence) · DuckDB No clear signal (+5.6%, environment too noisy confidence)
Vortex (geomean): hot 0.913x ➖ · cold 0.883x ➖
Parquet (geomean): hot 0.942x ➖ · cold 0.934x ➖
Shifts: Parquet (control) -5.8% · Median polish -5.5%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

datafusion / vortex-file-compressed / ns (0.838x ➖, 6↑ 3↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:vortex-file-compressed 172514487 / 267707148 / -35.6% 🟢 521179705 / 1286047577 / -59.5% 🟢 0.33 / 0.21 / +59.0%
tpch_q02/datafusion:vortex-file-compressed 391504233 / 416827196 / -6.1% 620485775 / 964511425 / -35.7% 🟢 0.63 / 0.43 / +46.0%
tpch_q03/datafusion:vortex-file-compressed 447180179 / 448775125 / -0.4% 746457630 / 1484291328 / -49.7% 🟢 0.60 / 0.30 / +98.1%
tpch_q04/datafusion:vortex-file-compressed 242307872 / 242301955 / +0.0% 458887923 / 695566848 / -34.0% 🟢 0.53 / 0.35 / +51.6%
tpch_q05/datafusion:vortex-file-compressed 391726099 / 446320311 / -12.2% 533419190 / 696805981 / -23.4% 0.73 / 0.64 / +14.7%
tpch_q06/datafusion:vortex-file-compressed 167225557 / 428614632 / -61.0% 🟢 280035198 / 494628790 / -43.4% 🟢 0.60 / 0.87 / -31.1%
tpch_q07/datafusion:vortex-file-compressed 419286327 / 435168624 / -3.6% 650950191 / 545378043 / +19.4% 0.64 / 0.80 / -19.3%
tpch_q08/datafusion:vortex-file-compressed 479011332 / 521383232 / -8.1% 665126964 / 663032925 / +0.3% 0.72 / 0.79 / -8.4%
tpch_q09/datafusion:vortex-file-compressed 345726853 / 487434394 / -29.1% 668187700 / 646172232 / +3.4% 0.52 / 0.75 / -31.4%
tpch_q10/datafusion:vortex-file-compressed 346948557 / 416314867 / -16.7% 678493094 / 854774764 / -20.6% 0.51 / 0.49 / +5.0%
tpch_q11/datafusion:vortex-file-compressed 233164580 / 364692198 / -36.1% 🟢 357674993 / 478470177 / -25.2% 0.65 / 0.76 / -14.5%
tpch_q12/datafusion:vortex-file-compressed 238095435 / 752496903 / -68.4% 🟢 359447606 / 1208065625 / -70.2% 🟢 0.66 / 0.62 / +6.3%
tpch_q13/datafusion:vortex-file-compressed 209738736 / 147340225 / +42.3% 🔴 368283920 / 350492133 / +5.1% 0.57 / 0.42 / +35.5%
tpch_q14/datafusion:vortex-file-compressed 229020323 / 197745573 / +15.8% 382343678 / 362499493 / +5.5% 0.60 / 0.55 / +9.8%
tpch_q15/datafusion:vortex-file-compressed 306475564 / 342774677 / -10.6% 539537831 / 612815149 / -12.0% 0.57 / 0.56 / +1.6%
tpch_q16/datafusion:vortex-file-compressed 110625327 / 156820251 / -29.5% 232619832 / 272808337 / -14.7% 0.48 / 0.57 / -17.3%
tpch_q17/datafusion:vortex-file-compressed 362954387 / 637566919 / -43.1% 🟢 554001065 / 696135197 / -20.4% 0.66 / 0.92 / -28.5%
tpch_q18/datafusion:vortex-file-compressed 640600319 / 271840370 / +135.7% 🔴 551350763 / 462638470 / +19.2% 1.16 / 0.59 / +97.7%
tpch_q19/datafusion:vortex-file-compressed 246495201 / 456263692 / -46.0% 🟢 335719166 / 554818440 / -39.5% 🟢 0.73 / 0.82 / -10.7%
tpch_q20/datafusion:vortex-file-compressed 398852872 / 304001086 / +31.2% 🔴 509571356 / 536483639 / -5.0% 0.78 / 0.57 / +38.1%
tpch_q21/datafusion:vortex-file-compressed 648920105 / 593234606 / +9.4% 774033757 / 838985520 / -7.7% 0.84 / 0.71 / +18.6%
tpch_q22/datafusion:vortex-file-compressed 168637993 / 196364260 / -14.1% 427914434 / 380134121 / +12.6% 0.39 / 0.52 / -23.7%
datafusion / parquet / ns (0.941x ➖, 1↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/datafusion:parquet 107326621 / 108985789 / -1.5% 354345768 / 388303497 / -8.7% 0.30 / 0.28 / +7.9%
tpch_q02/datafusion:parquet 5321227452 / 5615566732 / -5.2% 5541814141 / 6272268641 / -11.6% 0.96 / 0.90 / +7.2%
tpch_q03/datafusion:parquet 296901239 / 315366453 / -5.9% 759446759 / 676120001 / +12.3% 0.39 / 0.47 / -16.2%
tpch_q04/datafusion:parquet 189138094 / 219699700 / -13.9% 279696396 / 385841975 / -27.5% 0.68 / 0.57 / +18.8%
tpch_q05/datafusion:parquet 2940169137 / 2975299663 / -1.2% 3065378044 / 3405014240 / -10.0% 0.96 / 0.87 / +9.8%
tpch_q06/datafusion:parquet 97497278 / 116087462 / -16.0% 205809703 / 230485772 / -10.7% 0.47 / 0.50 / -5.9%
tpch_q07/datafusion:parquet 3037309902 / 3652918284 / -16.9% 2842820970 / 3129960199 / -9.2% 1.07 / 1.17 / -8.5%
tpch_q08/datafusion:parquet 2966894183 / 3261344197 / -9.0% 2875841922 / 3460035446 / -16.9% 1.03 / 0.94 / +9.5%
tpch_q09/datafusion:parquet 2877412281 / 3193894735 / -9.9% 3215250427 / 3165740637 / +1.6% 0.89 / 1.01 / -11.3%
tpch_q10/datafusion:parquet 273304364 / 311770813 / -12.3% 421742303 / 457433990 / -7.8% 0.65 / 0.68 / -4.9%
tpch_q11/datafusion:parquet 5107117847 / 5485462724 / -6.9% 5393470966 / 5439356571 / -0.8% 0.95 / 1.01 / -6.1%
tpch_q12/datafusion:parquet 240772789 / 219515797 / +9.7% 273165609 / 353540494 / -22.7% 0.88 / 0.62 / +42.0%
tpch_q13/datafusion:parquet 165977701 / 179562615 / -7.6% 263330344 / 440611745 / -40.2% 🟢 0.63 / 0.41 / +54.7%
tpch_q14/datafusion:parquet 202050912 / 195907293 / +3.1% 511571050 / 379968760 / +34.6% 🔴 0.39 / 0.52 / -23.4%
tpch_q15/datafusion:parquet 3001178176 / 2912710831 / +3.0% 3007579330 / 3553580199 / -15.4% 1.00 / 0.82 / +21.7%
tpch_q16/datafusion:parquet 2915318017 / 2800592128 / +4.1% 4441273361 / 2731497775 / +62.6% 🔴 0.66 / 1.03 / -36.0%
tpch_q17/datafusion:parquet 324547702 / 329983591 / -1.6% 430170128 / 447417787 / -3.9% 0.75 / 0.74 / +2.3%
tpch_q18/datafusion:parquet 395168827 / 396053617 / -0.2% 601231722 / 553482367 / +8.6% 0.66 / 0.72 / -8.1%
tpch_q19/datafusion:parquet 221722539 / 224212601 / -1.1% 368303397 / 304969421 / +20.8% 0.60 / 0.74 / -18.1%
tpch_q20/datafusion:parquet 2793696000 / 2874525016 / -2.8% 2879744979 / 3029607551 / -4.9% 0.97 / 0.95 / +2.2%
tpch_q21/datafusion:parquet 3040779600 / 2896165949 / +5.0% 3262405574 / 3788385940 / -13.9% 0.93 / 0.76 / +21.9%
tpch_q22/datafusion:parquet 337590971 / 502695029 / -32.8% 🟢 500947956 / 647722641 / -22.7% 0.67 / 0.78 / -13.2%
duckdb / vortex-file-compressed / ns (0.996x ➖, 1↑ 0↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:vortex-file-compressed 192881195 / 212170199 / -9.1% 378497594 / 417486268 / -9.3% 0.51 / 0.51 / +0.3%
tpch_q02/duckdb:vortex-file-compressed 211611980 / 225704631 / -6.2% 224037106 / 255415474 / -12.3% 0.94 / 0.88 / +6.9%
tpch_q03/duckdb:vortex-file-compressed 419618654 / 400479101 / +4.8% 440287920 / 429449138 / +2.5% 0.95 / 0.93 / +2.2%
tpch_q04/duckdb:vortex-file-compressed 234540799 / 208866401 / +12.3% 248247597 / 275077405 / -9.8% 0.94 / 0.76 / +24.4%
tpch_q05/duckdb:vortex-file-compressed 393101101 / 431572870 / -8.9% 476266539 / 498909098 / -4.5% 0.83 / 0.87 / -4.6%
tpch_q06/duckdb:vortex-file-compressed 302623065 / 321586325 / -5.9% 339221179 / 311084295 / +9.0% 0.89 / 1.03 / -13.7%
tpch_q07/duckdb:vortex-file-compressed 405417623 / 312826181 / +29.6% 605917266 / 352106299 / +72.1% 🔴 0.67 / 0.89 / -24.7%
tpch_q08/duckdb:vortex-file-compressed 506632685 / 468481423 / +8.1% 526908331 / 503729645 / +4.6% 0.96 / 0.93 / +3.4%
tpch_q09/duckdb:vortex-file-compressed 355519613 / 354663942 / +0.2% 354859132 / 393317006 / -9.8% 1.00 / 0.90 / +11.1%
tpch_q10/duckdb:vortex-file-compressed 386363812 / 423180082 / -8.7% 428040692 / 494454690 / -13.4% 0.90 / 0.86 / +5.5%
tpch_q11/duckdb:vortex-file-compressed 174214270 / 172615825 / +0.9% 205969404 / 210317145 / -2.1% 0.85 / 0.82 / +3.1%
tpch_q12/duckdb:vortex-file-compressed 486264917 / 437263266 / +11.2% 507141370 / 581248292 / -12.7% 0.96 / 0.75 / +27.5%
tpch_q13/duckdb:vortex-file-compressed 148537885 / 272711896 / -45.5% 🟢 166195062 / 221427711 / -24.9% 0.89 / 1.23 / -27.4%
tpch_q14/duckdb:vortex-file-compressed 235770269 / 197200811 / +19.6% 264050609 / 298794927 / -11.6% 0.89 / 0.66 / +35.3%
tpch_q15/duckdb:vortex-file-compressed 179081774 / 187068995 / -4.3% 224366212 / 218923011 / +2.5% 0.80 / 0.85 / -6.6%
tpch_q16/duckdb:vortex-file-compressed 134904399 / 129667478 / +4.0% 149694965 / 165462258 / -9.5% 0.90 / 0.78 / +15.0%
tpch_q17/duckdb:vortex-file-compressed 466501295 / 384689541 / +21.3% 682177734 / 380988777 / +79.1% 🔴 0.68 / 1.01 / -32.3%
tpch_q18/duckdb:vortex-file-compressed 276059747 / 297389355 / -7.2% 329667277 / 334448442 / -1.4% 0.84 / 0.89 / -5.8%
tpch_q19/duckdb:vortex-file-compressed 364323211 / 364134618 / +0.1% 409291235 / 414685202 / -1.3% 0.89 / 0.88 / +1.4%
tpch_q20/duckdb:vortex-file-compressed 360599905 / 370054109 / -2.6% 457641363 / 451797355 / +1.3% 0.79 / 0.82 / -3.8%
tpch_q21/duckdb:vortex-file-compressed 626301885 / 561206678 / +11.6% 582757090 / 563983743 / +3.3% 1.07 / 1.00 / +8.0%
tpch_q22/duckdb:vortex-file-compressed 148497640 / 160119572 / -7.3% 204306422 / 191379818 / +6.8% 0.73 / 0.84 / -13.1%
duckdb / parquet / ns (0.943x ➖, 1↑ 2↓)
name hot ns (PR / base / %diff) cold ns (PR / base / %diff) hot/cold (PR / base / %diff)
tpch_q01/duckdb:parquet 260840783 / 138502921 / +88.3% 🔴 240371673 / 177305776 / +35.6% 🔴 1.09 / 0.78 / +38.9%
tpch_q02/duckdb:parquet 498812624 / 426957352 / +16.8% 564548512 / 534202633 / +5.7% 0.88 / 0.80 / +10.5%
tpch_q03/duckdb:parquet 459871949 / 475792397 / -3.3% 516988766 / 552872261 / -6.5% 0.89 / 0.86 / +3.4%
tpch_q04/duckdb:parquet 415845778 / 310016445 / +34.1% 🔴 519800162 / 389724946 / +33.4% 🔴 0.80 / 0.80 / +0.6%
tpch_q05/duckdb:parquet 641134616 / 621459893 / +3.2% 778379974 / 646958910 / +20.3% 0.82 / 0.96 / -14.3%
tpch_q06/duckdb:parquet 167668024 / 190001524 / -11.8% 282704554 / 254943682 / +10.9% 0.59 / 0.75 / -20.4%
tpch_q07/duckdb:parquet 478705983 / 556321217 / -14.0% 526010731 / 527569475 / -0.3% 0.91 / 1.05 / -13.7%
tpch_q08/duckdb:parquet 630191104 / 681392973 / -7.5% 1082771917 / 800967629 / +35.2% 🔴 0.58 / 0.85 / -31.6%
tpch_q09/duckdb:parquet 598255697 / 672271671 / -11.0% 1567110215 / 659438316 / +137.6% 🔴 0.38 / 1.02 / -62.6%
tpch_q10/duckdb:parquet 558645341 / 557699757 / +0.2% 631555724 / 614578057 / +2.8% 0.88 / 0.91 / -2.5%
tpch_q11/duckdb:parquet 250079916 / 298371800 / -16.2% 332978834 / 1266956609 / -73.7% 🟢 0.75 / 0.24 / +218.9%
tpch_q12/duckdb:parquet 254701384 / 351495069 / -27.5% 356200580 / 484645496 / -26.5% 0.72 / 0.73 / -1.4%
tpch_q13/duckdb:parquet 329379632 / 332590739 / -1.0% 447321772 / 348579089 / +28.3% 0.74 / 0.95 / -22.8%
tpch_q14/duckdb:parquet 318514778 / 362923328 / -12.2% 340090892 / 445643531 / -23.7% 0.94 / 0.81 / +15.0%
tpch_q15/duckdb:parquet 220240013 / 231548955 / -4.9% 329821678 / 251613746 / +31.1% 🔴 0.67 / 0.92 / -27.4%
tpch_q16/duckdb:parquet 365845482 / 615657818 / -40.6% 🟢 451373503 / 1569573083 / -71.2% 🟢 0.81 / 0.39 / +106.6%
tpch_q17/duckdb:parquet 297044360 / 413544607 / -28.2% 289279319 / 537406489 / -46.2% 🟢 1.03 / 0.77 / +33.4%
tpch_q18/duckdb:parquet 404882521 / 425986187 / -5.0% 435537587 / 468945283 / -7.1% 0.93 / 0.91 / +2.3%
tpch_q19/duckdb:parquet 326398228 / 344498828 / -5.3% 386089675 / 333092103 / +15.9% 0.85 / 1.03 / -18.3%
tpch_q20/duckdb:parquet 516001195 / 514154054 / +0.4% 504626441 / 531220937 / -5.0% 1.02 / 0.97 / +5.6%
tpch_q21/duckdb:parquet 440280931 / 551584435 / -20.2% 445003818 / 717665038 / -38.0% 🟢 0.99 / 0.77 / +28.7%
tpch_q22/duckdb:parquet 339095395 / 349008457 / -2.8% 436324729 / 430769821 / +1.3% 0.78 / 0.81 / -4.1%

@joseph-isaacs

Copy link
Copy Markdown
Contributor Author

Result (manual dispatch of the SQL benchmark, run 40047049933, vs develop 31027fc): TPC-H SF1 NVMe hot 1.018 (full branch #10694: 1.003), SF10 NVMe 0.995 (0.987), SF1 on S3 0.913 (0.780). One segment source per partition does not close the SF1 gap on the 96-core runner and costs most of the S3 win, which comes from sharing reads across partitions. Hypothesis refuted; the shared source stays.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action/bench-sql Run SQL benchmarks without Vortex Compact on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant