From 94c67b9b0cab9f300c1e2fae46d7cbcbc5d568f6 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Thu, 14 May 2026 15:11:53 +0800 Subject: [PATCH 01/79] Add blog: Sort Pushdown in DataFusion: Skip Sorts, Skip I/O MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A walkthrough of the sort pushdown work landed and in flight on Apache DataFusion. Covers: - Why SortExec is expensive and what `Exact` / `Inexact` ordering mean at runtime (static `fetch` vs `TopK` dynamic filter). - Phase 1 (#19064): the `PushdownSort` rule + reverse row-group case. - Phase 2 (#21182): statistics-based file sort that upgrades `Unsupported` to `Exact`, eliminating the `SortExec` on non-overlapping ASC scans. Includes the BufferExec compensation (#21426) so the SPM above doesn't lose its implicit memory buffer. - Reverse scans: today's row-group reverse (Inexact, #18817) and the community decision to wait for arrow-rs page-level reverse (#9937) before pursuing Exact reverse, after memory-profile pushback on the original row-group-level proposal. - Benchmarks: 2.1×-49× on the ASC-LIMIT sort_pushdown suite. - What's next: the dynamic / TopK-driven path (#21351 merged, #21733, #21712, #21956, #21580) including the precise RG-pruning vs mid-stream-early-return distinction, and the EnsureRequirements unification (#21976). - Links into the prior dynamic filters and limit pruning posts so the series reads as a coherent thread. --- content/blog/2026-05-11-sort-pushdown.md | 592 ++++++++++++++++++ content/images/sort-pushdown/benchmark.svg | 75 +++ .../sort-pushdown/phase1-file-reorder.svg | 88 +++ .../sort-pushdown/phase2-stats-overlap.svg | 79 +++ content/images/sort-pushdown/plan-diff.svg | 70 +++ content/images/sort-pushdown/reverse-scan.svg | 100 +++ 6 files changed, 1004 insertions(+) create mode 100644 content/blog/2026-05-11-sort-pushdown.md create mode 100644 content/images/sort-pushdown/benchmark.svg create mode 100644 content/images/sort-pushdown/phase1-file-reorder.svg create mode 100644 content/images/sort-pushdown/phase2-stats-overlap.svg create mode 100644 content/images/sort-pushdown/plan-diff.svg create mode 100644 content/images/sort-pushdown/reverse-scan.svg diff --git a/content/blog/2026-05-11-sort-pushdown.md b/content/blog/2026-05-11-sort-pushdown.md new file mode 100644 index 00000000..d8726038 --- /dev/null +++ b/content/blog/2026-05-11-sort-pushdown.md @@ -0,0 +1,592 @@ +--- +layout: post +title: Sort Pushdown in DataFusion: Skip Sorts, Skip I/O +date: 2026-05-11 +author: Qi Zhu +categories: [performance] +--- + + + +[TOC] + +*Qi Zhu, [Massive](https://www.massive.com/)* + +Many [Apache Parquet] datasets are already sorted on disk. Time-series +files are usually written in ingestion-time order. Event logs are sharded +and sorted by event id. Partitioned tables come with a natural ordering +implied by the partition key. The information about that ordering is +sitting right there in the file metadata. + +[Apache Parquet]: https://parquet.apache.org/ + +Until recently, [Apache DataFusion] would still re-sort those files on +every `ORDER BY` query. Every `SELECT ... ORDER BY ts LIMIT 100` did a +full external sort across the entire scan, even though the data was +already in that order. CPU wasted. Memory wasted. Streaming defeated. + +[Apache DataFusion]: https://datafusion.apache.org/ + +This post walks through the **sort pushdown** work that closed that gap. +It is structured in two phases — file rearrangement first, then a +statistics-based proof of non-overlap — and lands real benchmark +speedups of **2.1×–49× on common queries**. The same machinery extends +to `ORDER BY ... DESC`, and the page-level reverse primitive we are +adding upstream in [arrow-rs] will push the gains further still. + +[arrow-rs]: https://github.com/apache/arrow-rs + +## TL;DR + +* DataFusion can now **skip `SortExec` entirely** when input files are + already in the requested order. +* Two phases: + * **Phase 1** — establish the `PushdownSort` rule and the + `Exact` / `Inexact` / `Unsupported` protocol; ship the reverse + row-group case for `ORDER BY ... DESC` (reports `Inexact`). + * **Phase 2** — sort files within each partition by Parquet + `min/max` statistics and *prove* non-overlap, upgrading + `Unsupported` to `Exact` so `PushdownSort` removes the `SortExec` + that `EnforceSorting` inserted earlier. +* Real-world benchmarks on the `sort_pushdown` suite: + `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full + `ORDER BY` scans get **~2×** faster. +* Reverse scans (`ORDER BY ... DESC`) ride the same machinery: a + merged row-group-level reverse returns `Inexact` (Sort stays, but + `TopK` terminates early); the page-level reverse primitive needed + for `Exact` reverse — and so for full `SortExec` removal on `DESC` + queries — is in flight in arrow-rs. + +## Why Sort Pushdown Matters + +`SortExec` is one of the most expensive operators in a query plan. +It is blocking by construction — no row can leave until every input +row has been seen and compared — so it tends to dominate both latency +and peak memory. The cost gets paid even when: + +* the file is already ordered by the sort key (very common for + timestamp columns); +* the query only needs the top *N* rows (`ORDER BY ts LIMIT 100`), in + which case full sort + truncate is wildly wasteful; +* the next operator (`SortPreservingMergeExec`, `SortMergeJoinExec`, + a window function) was going to consume ordered input anyway. + +The data DataFusion needs to avoid this work is **already in the file +metadata**. Parquet writers can record per-column statistics (`min`, +`max`) at the row-group level. Files written by Spark, DuckDB, +arrow-rs, and others routinely include them. And explicit `WITH ORDER` +clauses in DataFusion's SQL `CREATE EXTERNAL TABLE` give the optimizer +a direct ordering hint. The job of sort pushdown is to **use that +information**. + +## How DataFusion Tracks Ordering + +EXPLAIN before / after: SortExec eliminated once ordering is Exact + +Each `FileScanConfig` carries an `output_ordering` — the ordering +that the optimizer is willing to claim for the scan's output. There +are two flavours: + +* **`Exact`** — the optimizer is *certain* the output is in this order. + Sort-handling rules treat an `Exact` ordering as a proof and **remove + the surrounding `SortExec`**. ([`EnforceSorting`] does this when the + scan declares `Exact` from the start; the sort pushdown rule covered + in this post does the same upgrade later in the pipeline.) +* **`Inexact`** — the optimizer *believes* the output is probably + ordered, but cannot prove it. Downstream operators like + `SortPreservingMergeExec` can still benefit from this hint, but the + explicit `SortExec` stays for safety. + +[`EnforceSorting`]: https://docs.rs/datafusion-physical-optimizer/latest/datafusion_physical_optimizer/enforce_sorting/struct.EnforceSorting.html + +A helper called `validated_output_ordering()` is the gatekeeper. It +walks the list of files inside a partition, checks whether the +declared per-file ordering is consistent with the file order on disk, +and either confirms the ordering or **strips it entirely** if it +sees something ambiguous (e.g. file `b` comes before file `a` in the +file list but file `a`'s range comes first). + +### `Exact` and `Inexact` at runtime + +`Exact` and `Inexact` lead to different runtime behaviour, and +distinguishing them up front makes the rest of this post easier to +follow: + +* With **`Exact`**, the `SortExec` is removed and the LIMIT becomes + a **static fetch** on the source. The reader stops the moment the + requested number of rows has been emitted — early termination + at batch granularity, no dynamic state needed. +* With **`Inexact`**, the `SortExec` stays in place. The LIMIT + materialises inside the sort as a `TopK` heap of size K. `TopK` + exposes a [**dynamic filter**][dyn-filters-blog] — a runtime + expression of the form *"only rows that could still beat the + current K-th-best value are worth considering"* — and pushes it + back to the parquet scanner. As more data is processed and the + heap tightens, the filter's threshold tightens with it, and entire + row groups can be skipped by checking the live threshold against + the row group's min/max statistics. (See the earlier + [dynamic filters][dyn-filters-blog] and [limit pruning][limit-pruning-blog] + posts for the full background on this mechanism.) + +Both paths use the same underlying min/max statistics, but for +different purposes: `Exact` uses them at plan time to prove +non-overlap and justify removing the sort; `Inexact` uses them at +runtime to skip row groups that can no longer improve the heap. + +[dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ +[limit-pruning-blog]: https://datafusion.apache.org/blog/2026/03/20/limit-pruning/ + +The diagram above shows the result we want: the plan after sort +pushdown loses the `SortExec` node. Everything downstream — the +`SortPreservingMergeExec`, the `RepartitionExec`, the +`DataSourceExec` — was already in the plan. We just need the +optimizer to convince itself that the bottom of the plan is +producing the order requested. + +## Phase 1: The Pushdown API and Reverse Scans + +Phase 1 ([#19064]) introduced the **`PushdownSort`** physical +optimizer rule and a uniform API for asking each `ExecutionPlan` two +questions: + +[#19064]: https://github.com/apache/datafusion/pull/19064 + +1. "Can you produce output in *this* ordering?" +2. "If yes, please rearrange yourself so that it actually does." + +The protocol uses three results — `Exact`, `Inexact`, `Unsupported` — +that downstream operators can interpret uniformly. The Parquet +`FileSource` answers by comparing the requested ordering against the +per-file declared ordering: if natural ordering satisfies the request, +it returns `Exact`; if the *reverse* of the declared ordering does, +it returns `Inexact` and flips on `reverse_row_groups=true` so the +scan reads row groups from last to first (the row-group-level reverse +covered later in this post); otherwise it returns `Unsupported`. + +Phase 1's scope was deliberately narrow. It set up the API and +delivered the reverse-scan case end-to-end, but it did **not** add +any statistics-based file rearrangement — that came later in Phase 2. +A finer-grained extension that reorders row groups *within* each file +by min/max statistics — so the row group with the best sort-key value +is read first and TopK can tighten its threshold faster — is also +in progress in [#21956]. + +Phase 1 also produced a useful side improvement: + +* **Reverse-output redesign** ([#19446], [#19557]) extended the same + rule to `DESC` queries — picked up again in the reverse-scan + section below. + +[#19446]: https://github.com/apache/datafusion/pull/19446 +[#19557]: https://github.com/apache/datafusion/pull/19557 + +## Phase 2: Use Statistics to Prove Non-Overlap + +Phase 2: rearranging files within a partition by min/max statistics so the file list is in range order + +Phase 1 left a sharp edge that motivated Phase 2 ([#21182]). Consider +this realistic scenario: + +[#21182]: https://github.com/apache/datafusion/pull/21182 + +* Three files: `a.parquet`, `b.parquet`, `c.parquet`. +* Each declares `WITH ORDER (ts ASC)`. +* Internally each file *is* sorted by `ts`. +* But they were written by different ingestion jobs and end up listed + in the **wrong order** on disk (e.g. alphabetical by name, not by + time). + +`validated_output_ordering()` looks at this, sees that the +file-internal ordering disagrees with the file-list order, and +**strips the ordering entirely**. From the optimizer's point of view +the scan now has no declared ordering, so `EnforceSorting` (which runs +earlier in the pipeline) inserts a `SortExec`. The data is sorted on +disk; the optimizer just can't tell. + +Phase 2 fixes this in `PushdownSort`, which runs late — after +`EnforceDistribution` and `EnforceSorting` have already shaped the +plan. When `PushdownSort` finds a `SortExec` above a file scan whose +ordering was stripped (a `FileSource` `Unsupported` result), it does +three things inside `FileScanConfig::try_pushdown_sort`: + +1. **Sort the file list by per-file statistics on the sort + column(s)** within each file group (the diagram above). The + pre-existing [`MinMaxStatistics`] helper (introduced in [#9593]) + reads each file's `column_statistics[c].min_value` / + `.max_value` for each sort column `c`, then sorts the file list by + the min row. Phase 2 wires this helper into the optimizer's + `Unsupported` branch — `sort_files_within_groups_by_statistics` + does the per-group orchestration and decides whether any group is + non-overlapping after the sort. +2. **Check adjacency within each group**: walk each sorted file group + independently and ask whether `file[i].max ≤ file[i+1].min` for + every adjacent pair (touching at the boundary is fine — value `v` + showing up as the last row of one file and the first row of the + next still produces a sorted stream). The check is **per file + group**, not across groups; cross-group ordering is the job of + `SortPreservingMergeExec` at runtime (more on this below). +3. **Upgrade `Unsupported` to `Exact`** when adjacency holds, the + table has a declared `output_ordering` (from `WITH ORDER` or + parquet `sorting_columns`), and the sort columns are null-free — + the last condition preserves `NULLS LAST`/`NULLS FIRST` semantics + across file boundaries. `PushdownSort` then removes the `SortExec` + itself and the plan becomes streamable. + +[`MinMaxStatistics`]: https://github.com/apache/datafusion/blob/main/datafusion/datasource/src/statistics.rs +[#9593]: https://github.com/apache/datafusion/pull/9593 + +One caveat that comes straight from `MinMaxStatistics`: the stats +sort only fires when every `ORDER BY` expression is a plain column. +`ORDER BY date_trunc('hour', ts)` silently skips the upgrade — there +is no per-file min/max for the function output to compare against. +Extending sort pushdown across monotonic function wrappers is one of +the open follow-ups. + +Phase 2: detecting non-overlapping ranges via min/max statistics + +The diagram above contrasts the two cases. On the left, ranges are +non-overlapping after sort, so we can guarantee that emitting the +files in min-order produces a globally sorted stream. On the right, +the ranges overlap, so even after sorting the files by `min(ts)` we +cannot guarantee global ordering — Phase 2 correctly bails out and +keeps `SortExec` in place. + +The implementation handles a few edge cases worth calling out: + +* **Buffering the eliminated `SortExec`.** When the `SortExec` was + sitting under a `SortPreservingMergeExec` with + `preserve_partitioning=true`, it wasn't just sorting — it was also + acting as an *implicit in-memory buffer* for the SPM above it. The + SPM picks rows from each partition stream one at a time; without + the upstream `SortExec` holding batches in memory, the SPM would + read directly from I/O-bound sources and stall on every pick. Phase + 2 compensates by inserting a [`BufferExec`] in the `SortExec`'s + place — bounded streaming buffer, same throughput shape, no + blocking sort. Capacity is configurable via + [`sort_pushdown_buffer_capacity`] ([#21426]). +* **`fetch` preservation** through `EnforceDistribution`. The + distribution rule sometimes strips a `SortExec`'s `fetch` field and + re-adds the node later. Phase 2 plumbs `fetch` through so a + surviving `LIMIT` is not lost. +* **Per-group, not global, non-overlap.** Phase 2's adjacency check is + scoped to each file group. Two file groups can have *overlapping* + ranges and the upgrade still fires, as long as each group is + internally non-overlapping. That works because each group already + produces an independently ordered stream at runtime, and + `SortPreservingMergeExec` then picks rows across streams in value + order to produce the final globally sorted output. Phase 2 only has + to prove the per-stream property. +* **Single-partition vs multi-partition execution**. With the default + multi-partition setup, `EnforceDistribution` byte-range-splits files + into single-file groups, after which `validated_output_ordering()` + works correctly on its own. Phase 2 only triggers when files have + not been split — typically `--partitions 1` runs, or files small + enough that the splitter leaves them alone. In the typical `--partitions + 1` case the "per-group" distinction collapses (one group equals the + whole table), which is why the example earlier in this section is + drawn that way. + +[`BufferExec`]: https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs +[`sort_pushdown_buffer_capacity`]: https://github.com/apache/datafusion/pull/21426 +[#21426]: https://github.com/apache/datafusion/pull/21426 + +## Benchmarks + +Sort pushdown phase 2 benchmark: 2x-49x speedup across four queries + +The [`sort_pushdown`] benchmark suite reproduces the +"wrong-order file list" scenario by generating Parquet files whose +names are intentionally reversed against their sort-key ranges. Numbers +below are `--partitions 1`, release build, on the merged Phase 2 +branch versus `main`: + +[`sort_pushdown`]: https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown + +| Query | Before | After | Speedup | +| ------------------------------------------- | -------:| -------:| -------:| +| Q1 — `ORDER BY key` (full scan) | 259 ms | 122 ms | **2.1×** | +| Q2 — `ORDER BY key LIMIT 100` | 80 ms | 3 ms | **27×** | +| Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | +| Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | + +The shape of the speedup is what you would expect once `SortExec` is +removed: + +* **Full-scan queries (Q1, Q3)** still have to push every row through + the pipeline, so the gain is "just" the cost of the sort itself — + roughly half the original time. This matches the rule of thumb that + a blocking sort doubles end-to-end latency on data that fits in + memory. +* **`LIMIT` queries (Q2, Q4)** benefit much more because removing + `SortExec` converts the LIMIT into a static `fetch` on the data + source — the reader stops the moment K rows have been emitted, + instead of reading the full file, sorting, and truncating. + This is the "early termination at batch granularity" case from + the runtime-difference section above. A 342 ms full-file scan + collapses into a 7 ms K-row read. + +It is worth saying explicitly what this change does **not** affect. +The default multi-partition execution path is unchanged: those plans +already produced correct orderings via byte-range splitting, so +Phase 2 simply does not trigger. There is no regression and no behavior +change for the typical multi-threaded query. + +## Reverse Scans for `ORDER BY ... DESC` + +Row-group reverse vs page reverse: 128MB and 8 pages vs 1MB and 1 page + +`ORDER BY ts DESC` is the same problem in reverse. If a file is sorted +ascending and the query wants descending, we should be able to skip +the sort — we just need to read the data in the opposite order. + +The first iteration of this lives in [#18817] and operates at the +**row group** level: it reverses the *iteration order of row groups* +so the last RG is opened first, but rows within each RG are still +decoded forward. The resulting stream is "RGs descending × rows +ascending" — close to the requested order, but not strictly DESC. The +optimizer therefore reports this as `Inexact` and leaves the +`SortExec` in place; the win is that `TopK`'s dynamic filter tightens +much faster, because the very first row groups read already contain +values near the final answer. A tight threshold means subsequent row +groups can be skipped via min/max statistics. This ships today and +is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted files. + +[#18817]: https://github.com/apache/datafusion/pull/18817 + +To turn this into `Exact` reverse — so the `SortExec` can be removed +outright — each emitted batch itself has to be in DESC order. The +straightforward row-group-level approach (decode an entire RG forward, +materialize all rows, reverse the buffer, then emit) is correct and +was actually proposed first, in an earlier iteration of this work +([#18817], later closed and split into smaller pieces). Review +feedback there — primarily from [@2010YOUY01] — flagged the memory +profile as too aggressive: caching an entire row group's worth of +decoded rows before any batch can be emitted is roughly: + +* **Peak buffer of one whole row group** (~128 MB by default), versus + the few-MB-per-batch streaming profile readers normally have. +* **First-batch latency = full last-row-group decode**. For + `ORDER BY ts DESC LIMIT 10` that means decoding ~1 million rows to + return 10 — defeating the point of the `LIMIT`. + +The agreed direction coming out of that discussion was to ship the +narrower `Inexact` row-group-reverse first (which became Phase 1 in +[#19064]), and to build `Exact` reverse on a finer-grained primitive +once `arrow-rs` exposed one. + +That primitive is the **page-level** reverse traversal. Parquet's +`OffsetIndex` already gives us byte-precise locations for every data +page in a column chunk, so we can `seek` directly to the last page, +decode it forward, reverse the resulting batch, and emit. Peak buffer +drops to one page (~1 MB) and first-batch latency drops to the cost +of one page decode — the row-group-level memory cliff disappears. + +We are landing this primitive upstream in arrow-rs as +[#9937], with the discussion in [#9934]. Early numbers on a 100k-row, +98-page column chunk show **~50× faster time-to-first-N** for `n ≤ 1 +page` and **~9× faster** for `n` spanning 10 pages, compared with the +row-group-level Exact reverse described above. The DataFusion-side +integration that turns this primitive into an `Exact` result is a +follow-up to #9937 and is gated on its merge. + +[@2010YOUY01]: https://github.com/2010YOUY01 + +[#9937]: https://github.com/apache/arrow-rs/pull/9937 +[#9934]: https://github.com/apache/arrow-rs/issues/9934 + +One natural question: why not reverse the rows *within* a page +directly? Because we can't. Parquet's page encodings (RLE, dictionary, +delta, bit-packing) are all forward streams — you cannot decode the +last value without decoding every value that came before it. The +design therefore is: **reverse the page traversal, forward-decode +each page, reverse the resulting RecordBatch**. This is the algorithm +shape that DataFusion's Phase-2 `RecordBatchReader` integration will +use once arrow-rs ships the primitive. + +The killer use case is **filtered reverse TopK**: + +```sql +SELECT * FROM events +WHERE user_id = 42 +ORDER BY ts DESC +LIMIT 10 +``` + +Here `RowSelection::with_limit` cannot help — you don't know in +advance which rows match `user_id = 42`, so you can't pre-compute a +selection of the "last 10 matching rows". The only correct strategy +is to stream pages backward, evaluate the filter on each, and stop +when 10 matches are collected. Row-group reverse stops at a +~128 MB granularity. Page reverse stops at ~1 MB granularity. For a +selective filter, the saving compounds. + +## What's Next + +Sort pushdown is a long-running line of work and there is more to do. +Beyond the `Exact` path described above, there is a complementary +**dynamic / TopK-driven path** that helps when `Exact` cannot apply — +e.g. when file ranges genuinely overlap, or when the sort is on a +function output rather than a plain column. The two directions are +not alternatives; they compose: + +* **`Exact` reverse for `ORDER BY ... DESC`.** Today's row-group + reverse returns `Inexact` and the `SortExec` stays on top; the + arrow-rs page-level reverse primitive ([#9937]) is what unlocks + `Exact` reverse on `DESC` queries (and therefore full `SortExec` + elimination on `DESC`). Memory + first-batch latency rule out doing + the same thing at the row-group level. Gated on #9937. +* **Dynamic / TopK-driven path.** When `Exact` cannot fire, `TopK`'s + [dynamic filter][dyn-filters-blog] still benefits enormously from + reading the *best* data first. This thread also builds on the + [limit pruning][limit-pruning-blog] work that turned `LIMIT` into + an I/O optimization across the pruning pipeline. The + recently-merged morsel-style work scheduling in `FileStream` + ([#21351]) gives sibling partitions a *shared work queue* with + file-level work-stealing — no CPU sits idle when one partition + runs out of files. The proposed [#21733] sorts files in + that shared queue by per-file statistics *before* any partition + picks, so the first file read is globally optimal and tightens the + dynamic filter immediately. Combined with **TopK threshold init from + parquet statistics** ([#21712]) and **row-group reorder within each + file** ([#21956]), the threshold can be set before reading a single + byte. The combined statistics-driven `TopK` pipeline is in flight + as [#21580]. + + The mechanism here is **RG-level pruning, not mid-stream early + return**. With the threshold known up front, the parquet + `PruningPredicate` rejects entire row groups against their min/max + statistics before any I/O — those row groups are never decoded. + The row group(s) the reader *does* open still have their sort + column decoded in full to feed the dynamic filter. On the #21580 + microbenchmark (single file, 61 sorted row groups, `--partitions 1`), + **60 of the 61 row groups are skipped** and only one is decoded: + + | Query | Baseline | With pipeline | Speedup | + | ------------------------------ | -------: | ------------: | ------: | + | `ORDER BY col DESC LIMIT 100` | 28.5 ms | 1.64 ms | **17×** | + | `ORDER BY col DESC LIMIT 1000` | 22.2 ms | 0.37 ms | **60×** | + | `SELECT * ORDER BY ... LIMIT 100` | 22.5 ms | 0.66 ms | **34×** | + | `SELECT * ORDER BY ... LIMIT 1000` | 22.4 ms | 0.61 ms | **37×** | + + The stack reports `Inexact` — the `SortExec` stays on top to + enforce correctness across overlapping ranges — so this path + cannot do *true* mid-stream early return. Once the parquet reader + opens a row group, the sort column has to be decoded all the way + through; once a `FileStream` picks up a file from the shared work + queue, it has to finish that file. Today's dynamic work scheduling + ([#21351]) is **file-granular**: idle partitions stop pulling + new files from the queue once a global limit is satisfied, but + the partition that's currently inside a file decodes that file's + remaining row groups regardless. Mid-file RG-level early return + on `TopK` convergence is **not implemented yet** — the work + queue holds `PartitionedFile`, not row-group descriptors. + + Closing the tap the moment `TopK` has K confirmed winners therefore + needs either: + + * the **`Exact` path**, where the `SortExec` is gone entirely and + the data source's own `fetch` becomes a static limit that the + reader can honour at batch granularity; or + * **finer-grained dynamic scheduling** — having the shared queue + hold row-group descriptors instead of whole files, so a partition + can release its current file's remaining row groups back to the + pool once a global signal says enough TopK winners have been + found. This is a natural extension of [#21351] and [#21733] but + is not yet on a PR. + + The three mechanisms compose. Stats pruning saves the row groups + that *can't* matter (skipped without I/O). The dynamic filter + narrows what's decoded inside the row groups the reader does + open. `Exact` or finer-grained scheduling is what eventually + closes the tap once `TopK` is satisfied. +* **Phase 3 — filter + sort early termination.** `WHERE filter ORDER + BY ts DESC LIMIT N` is the dominant observability query shape and + the one where the arrow-rs page-reverse primitive matters most: + `RowSelection::with_limit` cannot pre-compute the last `N` matching + rows when the filter is selective, so the only correct strategy is + to stream pages backward, evaluate the filter, and stop when `N` + matches are collected. The DataFusion-side integration is the + follow-up to #9937. +* **Unifying `EnforceDistribution` and `EnforceSorting`** into a + single `EnsureRequirements` rule ([#21976]). The two existing rules + are coupled through `SortExec.preserve_partitioning`, which makes + their composition non-idempotent and has caused a class of + production bugs. Other engines (Spark's `EnsureRequirements`, + Trino's `AddExchanges`) handle both in a single rule. Merging them + also gives future sort-related optimizations a single coherent place + to live. In progress. +* **OFFSET pushdown to parquet** ([#21828]) so `ORDER BY ts LIMIT K + OFFSET N` queries can skip the first `N` rows at the row-group level + instead of decoding and discarding them. In progress. + +[#21976]: https://github.com/apache/datafusion/pull/21976 +[#21956]: https://github.com/apache/datafusion/pull/21956 +[#21712]: https://github.com/apache/datafusion/pull/21712 +[#21580]: https://github.com/apache/datafusion/pull/21580 +[#21828]: https://github.com/apache/datafusion/pull/21828 +[#21351]: https://github.com/apache/datafusion/pull/21351 +[#21733]: https://github.com/apache/datafusion/issues/21733 + +Concretely useful issues for new contributors: + +* [#17348] — the umbrella issue for sort pushdown. +* [#21317] — sort pushdown: reorder row groups by statistics within + each file. +* [#19394] — add more `ExecutionPlan` impls to support sort pushdown. + +[#17348]: https://github.com/apache/datafusion/issues/17348 +[#21317]: https://github.com/apache/datafusion/issues/21317 +[#19394]: https://github.com/apache/datafusion/issues/19394 + +## Acknowledgements + +Thank you to [@alamb], [@adriangb], [@xudong963], [@2010YOUY01], and +[@Dandandan] for reviewing the design and the patches across many +iterations. The DataFusion community's willingness to engage deeply +with optimizer changes — including the ones that touch foundational +invariants — is what made this work possible. + +[@alamb]: https://github.com/alamb +[@adriangb]: https://github.com/adriangb +[@xudong963]: https://github.com/xudong963 +[@2010YOUY01]: https://github.com/2010YOUY01 +[@Dandandan]: https://github.com/Dandandan + +## References + +Prior posts this work builds on: + +* [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. +* [Turning LIMIT into an I/O Optimization: Inside DataFusion's Multi-Layer Pruning Stack][limit-pruning-blog] — the pruning pipeline this work plugs into. + +Issues and PRs: + +* Umbrella issue: [apache/datafusion#17348][#17348] +* `MinMaxStatistics` foundation: [apache/datafusion#9593][#9593] +* Phase 1: [apache/datafusion#19064][#19064] +* Phase 2: [apache/datafusion#21182][#21182] +* `BufferExec` capacity for sort elimination: [apache/datafusion#21426][#21426] +* Dynamic / TopK-driven path: [apache/datafusion#21351][#21351] (morsel-style work scheduling), + [apache/datafusion#21733][#21733] (global file reorder in shared queue) +* Benchmark suite: [`sort_pushdown`] +* Row-group reverse scan: [apache/datafusion#18817][#18817] +* Page-level reverse (arrow-rs): [apache/arrow-rs#9934][#9934], + [apache/arrow-rs#9937][#9937] +* `EnsureRequirements`: [apache/datafusion#21976][#21976] diff --git a/content/images/sort-pushdown/benchmark.svg b/content/images/sort-pushdown/benchmark.svg new file mode 100644 index 00000000..30afb7b2 --- /dev/null +++ b/content/images/sort-pushdown/benchmark.svg @@ -0,0 +1,75 @@ + + + + sort_pushdown benchmark (single partition, release, reversed-name data) + + + + 700ms + + 259ms + + 80ms + + 7ms + + 0 + + + + Q1 + ORDER BY full + + 259 + + 122 + 2.1× + + + Q2 + ORDER BY LIMIT + + 80 + + 3 + 27× + + + Q3 + SELECT * ORDER BY + + 700 + + 313 + 2.2× + + + Q4 + SELECT * ORDER BY LIMIT + + 342 + + 7 + 49× + + + latency (ms) + + + + main (before) + + sort pushdown phase 2 + Lower is better + --partitions 1, release + diff --git a/content/images/sort-pushdown/phase1-file-reorder.svg b/content/images/sort-pushdown/phase1-file-reorder.svg new file mode 100644 index 00000000..9ae798ba --- /dev/null +++ b/content/images/sort-pushdown/phase1-file-reorder.svg @@ -0,0 +1,88 @@ + + + + + + + + + + Phase 1: file rearrangement by declared ordering + + + Before — directory order: + + + + a.parquet + ts ∈ [200, 300] + + + b.parquet + ts ∈ [100, 200] + + + c.parquet + ts ∈ [0, 100] + + validated_output_ordering() = None + → SortExec required + + + + PushdownSort + sort by min(ts) + + + After — sorted by stats: + + + c.parquet + ts ∈ [0, 100] + + + b.parquet + ts ∈ [100, 200] + + + a.parquet + ts ∈ [200, 300] + + validated_output_ordering() = Exact + → SortExec removed + + + Range layout + + + + + + 0 + 100 + 200 + 300 + + + + c + + b + + a + + Non-overlapping → ordering provable + + + SELECT * FROM events ORDER BY ts + diff --git a/content/images/sort-pushdown/phase2-stats-overlap.svg b/content/images/sort-pushdown/phase2-stats-overlap.svg new file mode 100644 index 00000000..027860ef --- /dev/null +++ b/content/images/sort-pushdown/phase2-stats-overlap.svg @@ -0,0 +1,79 @@ + + + + Phase 2: use min/max statistics to prove non-overlap + + + + Non-overlapping ranges + + + + + + + + 0 + 100 + 200 + 300 + min(ts) / max(ts) + + + + file_c [0..100] + + file_b [100..200] + + file_a [200..300] + + + + + + Ordering: Exact ✓ + SortExec can be removed + + + + Overlapping ranges + + + + + + + 0 + 100 + 200 + 300 + min(ts) / max(ts) + + + + file_x [0..180] + + file_y [80..260] + + file_z [140..300] + + + + + + Ordering: Inexact (or stripped) + SortExec stays + + + PushdownSort sorts files by min, checks adjacency, upgrades to Exact only when ranges don't overlap. + diff --git a/content/images/sort-pushdown/plan-diff.svg b/content/images/sort-pushdown/plan-diff.svg new file mode 100644 index 00000000..a4d08673 --- /dev/null +++ b/content/images/sort-pushdown/plan-diff.svg @@ -0,0 +1,70 @@ + + + + + + + + + EXPLAIN before / after sort pushdown + + + + Before — SortExec on top + + + CoalescePartitionsExec + + + + + SortExec + expr=[ts ASC], full sort + + + + + RepartitionExec + + + + + DataSourceExec + files: [a.parquet, b.parquet, c.parquet] + + + + After — SortExec eliminated + + + SortPreservingMergeExec + + + + + + SortExec (removed) + no longer needed + + + + + + + RepartitionExec + + + + + DataSourceExec + files: [c.parquet, b.parquet, a.parquet] + diff --git a/content/images/sort-pushdown/reverse-scan.svg b/content/images/sort-pushdown/reverse-scan.svg new file mode 100644 index 00000000..443a0a1c --- /dev/null +++ b/content/images/sort-pushdown/reverse-scan.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + ORDER BY ts DESC LIMIT 10 — row-group reverse vs page reverse + + + + Row-group reverse (today, merged) + + + + RowGroup (last, ~128 MB) + + + + + + + + + + + + P0 + P1 + P2 + P3 + P4 + P5 + P6 + P7 + + + Decode the entire row group, reverse in memory, take 10. + Peak buffer: ~128 MB + Pages decoded: 8 + Time-to-first-N: ~29 µs + + + + + + + + + + + + + + Page reverse (upstream POC, arrow-rs #9937) + + + RowGroup (last) + + + + + + + + + + + P0 + P1 + P2 + P3 + P4 + P5 + P6 + P7 + + + + + + Seek to last page only via OffsetIndex, decode, reverse, return. + Peak buffer: ~1 MB + Pages decoded: 1 + Time-to-first-N: ~565 ns (≈ 50× faster) + From f1372660cc1df7e73e283b85fe6db45e2e128be2 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Thu, 14 May 2026 15:34:17 +0800 Subject: [PATCH 02/79] Push draft date to 2026-05-25 --- ...{2026-05-11-sort-pushdown.md => 2026-05-25-sort-pushdown.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename content/blog/{2026-05-11-sort-pushdown.md => 2026-05-25-sort-pushdown.md} (99%) diff --git a/content/blog/2026-05-11-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md similarity index 99% rename from content/blog/2026-05-11-sort-pushdown.md rename to content/blog/2026-05-25-sort-pushdown.md index d8726038..8dd9d8b8 100644 --- a/content/blog/2026-05-11-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -1,7 +1,7 @@ --- layout: post title: Sort Pushdown in DataFusion: Skip Sorts, Skip I/O -date: 2026-05-11 +date: 2026-05-25 author: Qi Zhu categories: [performance] --- From f897e38444ee653f74970d992f985b7d87f284bd Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 15 May 2026 17:40:51 +0800 Subject: [PATCH 03/79] Add Phase 3 section covering #21956 runtime reorder pipeline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The post previously only mentioned #21956 in passing. The PR is landing the full mechanism — `try_pushdown_sort` decision tree, two flags on `ParquetSource`, three composable runtime steps (file reorder + RG reorder + reverse), and a `sort_prefix`- preserving short-circuit — so cover it as a dedicated phase between Phase 2 and the existing reverse-scan section. - TL;DR: add a Phase 3 bullet alongside Phase 1 and Phase 2. - Phase 1: replace the in-flight `#21956` aside with a cross-link to the new section. - Phase 2: keep the caveat about function-wrapped sorts but note that #21956's `Inexact` path now covers them via monotonicity inference. - New `## Phase 3` section with two SVG diagrams: a decision tree for the three protocol outcomes, and a three-step pipeline for the `Inexact` runtime. Covers the two-flag design, the nested file/RG layers, when EXPLAIN surfaces each flag, and four scenarios where Phase 3 does not fire (aggregations, multi- column secondary keys, function-wrapped sorts without a declared ordering, source declares a forward prefix of the request). - "What's Next": rename the old "Phase 3 — filter + sort" bullet to "Filtered reverse TopK end-to-end" so the label doesn't clash with the new section, and add a follow-up bullet referencing #22198 for multi-column / function-wrapped reorder. --- content/blog/2026-05-25-sort-pushdown.md | 178 ++++++++++++++++-- .../images/sort-pushdown/pr21956-decision.svg | 66 +++++++ .../pr21956-runtime-pipeline.svg | 69 +++++++ 3 files changed, 298 insertions(+), 15 deletions(-) create mode 100644 content/images/sort-pushdown/pr21956-decision.svg create mode 100644 content/images/sort-pushdown/pr21956-runtime-pipeline.svg diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 8dd9d8b8..32366246 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -56,8 +56,10 @@ adding upstream in [arrow-rs] will push the gains further still. ## TL;DR * DataFusion can now **skip `SortExec` entirely** when input files are - already in the requested order. -* Two phases: + already in the requested order, and **read the most-promising data + first** when they aren't — so `TopK` converges fast and the rest + gets pruned by statistics. +* Three phases: * **Phase 1** — establish the `PushdownSort` rule and the `Exact` / `Inexact` / `Unsupported` protocol; ship the reverse row-group case for `ORDER BY ... DESC` (reports `Inexact`). @@ -65,9 +67,16 @@ adding upstream in [arrow-rs] will push the gains further still. `min/max` statistics and *prove* non-overlap, upgrading `Unsupported` to `Exact` so `PushdownSort` removes the `SortExec` that `EnforceSorting` inserted earlier. -* Real-world benchmarks on the `sort_pushdown` suite: - `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full - `ORDER BY` scans get **~2×** faster. + * **Phase 3** ([#21956]) — generalise `Inexact`: whenever the + leading sort key is a plain column in the file schema (or the + source's reversed declared ordering satisfies the request), + `try_pushdown_sort` stamps two flags on the source and the + opener runs a three-step runtime pipeline — file-level reorder + in the shared morsel queue, row-group reorder by min/max stats, + then optional iteration reverse for `DESC` requests. +* Real-world benchmarks on the `sort_pushdown` suite (Phase 2's + `Exact` upgrade): `ORDER BY ... LIMIT` queries get **27× and 49× + faster**; full `ORDER BY` scans get **~2×** faster. * Reverse scans (`ORDER BY ... DESC`) ride the same machinery: a merged row-group-level reverse returns `Inexact` (Sort stays, but `TopK` terminates early); the page-level reverse primitive needed @@ -183,10 +192,9 @@ covered later in this post); otherwise it returns `Unsupported`. Phase 1's scope was deliberately narrow. It set up the API and delivered the reverse-scan case end-to-end, but it did **not** add any statistics-based file rearrangement — that came later in Phase 2. -A finer-grained extension that reorders row groups *within* each file -by min/max statistics — so the row group with the best sort-key value -is read first and TopK can tighten its threshold faster — is also -in progress in [#21956]. +A finer-grained extension that broadens this `Inexact` path with a +three-step runtime reorder pipeline lands in [#21956] — covered in +[Phase 3](#phase-3-runtime-reorder-for-inexact-pushdown) below. Phase 1 also produced a useful side improvement: @@ -259,6 +267,12 @@ is no per-file min/max for the function output to compare against. Extending sort pushdown across monotonic function wrappers is one of the open follow-ups. +*(Within #21956's `Inexact` path, `EquivalenceProperties`'s +monotonicity inference does let function-wrapped sorts benefit from +row-group iteration reverse when the source declares a compatible +natural ordering — but stats-based reorder still needs a plain +column.)* + Phase 2: detecting non-overlapping ranges via min/max statistics The diagram above contrasts the two cases. On the left, ranges are @@ -348,6 +362,130 @@ already produced correct orderings via byte-range splitting, so Phase 2 simply does not trigger. There is no regression and no behavior change for the typical multi-threaded query. +## Phase 3: Runtime Reorder for Inexact Pushdown + +Phase 2 handles the `Exact` upgrade — strong correctness, sort +elimination — but only when the table has a declared +`output_ordering` *and* the files are provably non-overlapping after +sorting by min. Two large classes of queries fall outside that +window: + +* **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. + Phase 2 cannot fire because there is no ordering claim to upgrade. +* **Overlapping ranges** — files written by different ingestion + jobs share time windows. Phase 2 keeps the `SortExec` because the + global ordering can't be proven, even though the files often do + contain large stretches of in-order data. + +For both, a full external `SortExec` is overkill. The parquet +metadata is right there, and reading the *most-promising* data +first lets `TopK`'s dynamic filter threshold tighten quickly so the +rest gets pruned. Phase 3 ([#21956]) wires that up by generalising +the `Inexact` path Phase 1 introduced. + +### `try_pushdown_sort` — one decision, three outcomes + +try_pushdown_sort decision tree: Exact, Inexact, or Unsupported + +The `Exact` / `Inexact` / `Unsupported` protocol from Phase 1 stays. +Phase 3 broadens the **conditions** that route a query into +`Inexact`: + +| Condition | Outcome | +| --- | --- | +| `eq_properties.ordering_satisfy(request)` | `Exact` — Phase 1 / 2 sort elimination | +| Leading sort key is a plain `Column` in the file schema, **or** the source's reversed declared ordering satisfies the request | `Inexact` — Phase 3 runtime pipeline | +| Neither | `Unsupported` — `SortExec` stays, no source-side optimisation | + +The "reversed satisfies" branch is what handles function-wrapped +sorts (`date_trunc('day', ts) DESC`, `ceil(value) DESC`, +`CAST(x AS Date) DESC`) — `EquivalenceProperties`'s monotonicity +reasoning recognises that `f(col) DESC` is satisfied by `col ASC` +reversed, even though parquet has no stats keyed by `f(col)` +itself. + +### Two flags on `ParquetSource`, three runtime steps + +Phase 3 runtime pipeline: file reorder, RG reorder, then optional reverse + +When `try_pushdown_sort` returns `Inexact`, it stamps two fields on +the `ParquetSource`: + +```rust +struct ParquetSource { + sort_order_for_reorder: Option, // what to reorder by + reverse_row_groups: bool, // whether to flip iteration + // ... +} +``` + +The opener reads them at scan time to drive three composable steps: + +1. **File-level reorder.** `FileSource::reorder_files` sits in the + shared morsel queue (the [#21351] work-stealing primitive) and + sorts the partitioned-file list by `min(col)`. The first file + picked across all partitions is globally the most-promising one. +2. **Row-group-level reorder.** Once a file is opened, + `PreparedAccessPlan::reorder_by_statistics` sorts that file's + `row_group_indexes` by `min(col)` ASC. The row group most likely + to contribute to `TopK` is decoded first. +3. **Reverse.** For `DESC` requests, + `PreparedAccessPlan::reverse` flips the iteration after the + stats reorder normalises everything to ASC-by-min. Same + primitive Phase 1 introduced for declared reverse scans — Phase + 3 just routes more queries through it. + +The two layers **nest by construction**: file `i`'s `min(col)` is +a lower bound on every row group inside it, so the file queue's +order is a natural prefix of the within-file row-group order. +Choosing the same key (`min`) in both layers keeps the strategies +consistent. + +`reverse_row_groups`'s meaning depends on which way `Inexact` was +reached. When the column-in-schema condition fires, the stats +reorder produces ASC-by-min, so `reverse_row_groups` simply mirrors +the request direction. When only the reversed-equivalence +condition fires (function-wrapped case with a declared source +ordering), `reverse_row_groups` is `true` unconditionally — there +is no stats reorder to compose with, just a flip of the file's +natural order. + +Both flags surface on the `DataSourceExec` line in `EXPLAIN` so +plan inspection and snapshot tests can confirm the pushdown fired: + +```text +DataSourceExec: file_groups=..., file_type=parquet, + sort_order_for_reorder=[a@0 ASC], reverse_row_groups=true +``` + +Absence of either flag means the corresponding runtime step is a +no-op. + +### When Phase 3 does *not* fire + +* **Aggregations on top of the sort key.** `SELECT URL, COUNT(*) AS c + FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10` (the ClickBench + TopK shape) — the leading sort key (`c`) is an aggregation result + and has no per-RG stats in the parquet file, so the + column-in-schema check fails. Pushing sort metadata through + `AggregateExec` is a separate problem: the aggregated value + doesn't exist before aggregation, so even if the metadata reached + the scan there'd be nothing actionable to do with it. +* **Multi-column sort secondary keys.** The reorder currently only + uses the leading sort expression — secondary keys are ignored. + Tracked as a follow-up in [#22198]. +* **Function-wrapped sort without a source-declared ordering.** + Without a declared ordering to invert, the reversed-equivalence + branch has nothing to satisfy. Tracked in the same follow-up. +* **Source declares a forward prefix of the request.** When the + source's declared `output_ordering` is a non-empty proper prefix + of the request (e.g. source `[a DESC, b ASC]`, request + `[a DESC, b ASC, c DESC]`), `try_pushdown_sort` returns + `Unsupported` so the surrounding `SortExec` can keep its + `sort_prefix` annotation — prefix-aware early termination in + `TopK` is strictly better than the Phase 3 reorder on data that + is already in prefix order on disk. + ## Reverse Scans for `ORDER BY ... DESC` Row-group reverse vs page reverse: 128MB and 8 pages vs 1MB and 1 page @@ -464,9 +602,11 @@ not alternatives; they compose: that shared queue by per-file statistics *before* any partition picks, so the first file read is globally optimal and tightens the dynamic filter immediately. Combined with **TopK threshold init from - parquet statistics** ([#21712]) and **row-group reorder within each - file** ([#21956]), the threshold can be set before reading a single - byte. The combined statistics-driven `TopK` pipeline is in flight + parquet statistics** ([#21712]) and **`try_pushdown_sort` driving + runtime row-group / file reorder + reverse** ([#21956], landed), + the threshold can be set before reading a single byte. The reorder + mechanism applies to any `ORDER BY [LIMIT N]` on + parquet, not just TopK queries with a dynamic filter. The combined statistics-driven `TopK` pipeline is in flight as [#21580]. The mechanism here is **RG-level pruning, not mid-stream early @@ -516,9 +656,9 @@ not alternatives; they compose: narrows what's decoded inside the row groups the reader does open. `Exact` or finer-grained scheduling is what eventually closes the tap once `TopK` is satisfied. -* **Phase 3 — filter + sort early termination.** `WHERE filter ORDER - BY ts DESC LIMIT N` is the dominant observability query shape and - the one where the arrow-rs page-reverse primitive matters most: +* **Filtered reverse TopK end-to-end.** `WHERE filter ORDER BY ts + DESC LIMIT N` is the dominant observability query shape and the + one where the arrow-rs page-reverse primitive matters most: `RowSelection::with_limit` cannot pre-compute the last `N` matching rows when the filter is selective, so the only correct strategy is to stream pages backward, evaluate the filter, and stop when `N` @@ -535,9 +675,17 @@ not alternatives; they compose: * **OFFSET pushdown to parquet** ([#21828]) so `ORDER BY ts LIMIT K OFFSET N` queries can skip the first `N` rows at the row-group level instead of decoding and discarding them. In progress. +* **Multi-column and function-wrapped reorder follow-ups** ([#22198]). + The reorder mechanism in #21956 currently only uses the leading + sort key and only fires on plain columns. Lexicographic multi-key + reorder via `arrow::compute::lexsort_to_indices` is low-hanging + fruit; extending to monotonic function wrappers via leaf-column + extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs a + bit more `EquivalenceProperties` integration but is doable. [#21976]: https://github.com/apache/datafusion/pull/21976 [#21956]: https://github.com/apache/datafusion/pull/21956 +[#22198]: https://github.com/apache/datafusion/issues/22198 [#21712]: https://github.com/apache/datafusion/pull/21712 [#21580]: https://github.com/apache/datafusion/pull/21580 [#21828]: https://github.com/apache/datafusion/pull/21828 diff --git a/content/images/sort-pushdown/pr21956-decision.svg b/content/images/sort-pushdown/pr21956-decision.svg new file mode 100644 index 00000000..a8203241 --- /dev/null +++ b/content/images/sort-pushdown/pr21956-decision.svg @@ -0,0 +1,66 @@ + + + + + + + + + try_pushdown_sort: Exact / Inexact / Unsupported decision + + + + PushdownSort rule + source.try_pushdown_sort(req, eq) + + + + + + eq.ordering_satisfy(req)? + (natural ordering already matches?) + + + + yes + + Exact + drop SortExec + + + + no + + + + column_in_file_schema + || reversed_satisfies ? + + + + yes + + Inexact + set both flags + + + + no + + Unsupported + SortExec stays + + + + Exact + → Phase 2 sort elimination · fetch becomes static limit + Inexact + → #21956 runtime pipeline: file reorder + RG reorder + reverse · SortExec / TopK kept on top for correctness + diff --git a/content/images/sort-pushdown/pr21956-runtime-pipeline.svg b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg new file mode 100644 index 00000000..5bb8d678 --- /dev/null +++ b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg @@ -0,0 +1,69 @@ + + + + + + + + + Inexact pushdown: two flags drive a three-step runtime pipeline + + + + ParquetSource carries the inexact-pushdown decision + sort_order_for_reorder = Some([req_col ASC | DESC]) + reverse_row_groups = bool + // set by try_pushdown_sort, read by the opener at scan time + + + + + + + 1 + File-level reorder · shared morsel queue + FileSource::reorder_files + → sort files by min(col); first file picked across all + partitions is globally the most-promising one + + + for each opened file + + + + + 2 + Row-group-level reorder · per file + PreparedAccessPlan::reorder_by_statistics + → row_group_indexes sorted ASC by min(col) + using parquet column statistics + + + if reverse_row_groups + + + + + 3 + Reverse iteration · DESC requests + PreparedAccessPlan::reverse + → row_group_indexes.into_iter().rev() + + + + + + Decoder reads row groups in this order + SortExec / TopK above the source still enforces final ordering + — the stats reorder is approximate, not strict — + From 247fc557471b786d7ea3a5a551fe4425e7a5d8a9 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sat, 16 May 2026 09:42:52 +0800 Subject: [PATCH 04/79] Add empirical note: why we keep an out-of-tree RG-level Exact reverse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an ### Empirical note subsection inside "Reverse Scans for `ORDER BY ... DESC`" that records what we found running an in-house RG-level `Exact` reverse against upstream `Inexact` + `TopK`: - `LIMIT N` does not propagate as a static stop signal in the Inexact path. The dynamic filter pushdown can stats-prune *subsequent* row groups once the threshold tightens, but inside the row group `TopK` is currently reading the sort column has to be fully decoded so the filter can be evaluated row by row. `LIMIT 10` on a 1M-row row group is still ~1M sort-column decodes regardless of N. LIMIT only saves work on non-sort columns inside that row group and on whole subsequent row groups the threshold prunes. - `SortExec` stays on top of `Inexact`, so the final ordering pass and per-row heap maintenance are both extra costs the `Exact` path (which deletes `SortExec`) does not pay. Then explain why we run RG-level `Exact` in production but did not upstream it: parquet does not allow partial row-group reads, so any RG-level `Exact` implementation peaks at one whole row group (~128 MB) of decoded data in memory — the same constraint that closed `#18817`. Our runtime advantage comes from skipping heap / filter / `SortExec` overhead, not from decoding less. Frame the page-level `Exact` reverse work in arrow-rs `#9937` as the path that keeps the runtime win we measured while bringing peak memory back into the streaming regime via `OffsetIndex` page-level seek. --- content/blog/2026-05-25-sort-pushdown.md | 74 ++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 32366246..96708cd0 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -529,6 +529,80 @@ narrower `Inexact` row-group-reverse first (which became Phase 1 in [#19064]), and to build `Exact` reverse on a finer-grained primitive once `arrow-rs` exposed one. +### Empirical note — runtime cost of `Inexact` + `TopK` + +We run an internal row-group-level `Exact` reverse implementation in +production and tested swapping in upstream's `Inexact` row-group +reverse + `TopK` on `ORDER BY ts DESC LIMIT N` queries. End-to-end +latency went **up**, not down. A few cost components stack up on the +`Inexact` + `TopK` side: + +* **`LIMIT N` does not propagate as a static stop signal to the + source.** In the `Inexact` path the `SortExec` stays on top and + `TopK`'s fetch belongs to `SortExec`, not to the parquet scan. The + only mechanism that can cut work below the `SortExec` is the + dynamic-filter pushdown: as the heap fills, the filter (`ts > + threshold`) is pushed to the source and its threshold tightens + with every batch. That filter is enough to **stats-prune + subsequent, not-yet-opened row groups** entirely — if a row + group's `max(ts) < threshold` it is skipped without decode. But + inside the row group the source is currently reading, the + filter pushdown does not unwind to "stop": the sort column has + to be **fully decoded** so the filter can be evaluated row by + row, the surviving rows feed the heap to tighten the threshold, + and only then can the resulting `RowSelection` skip the *other* + columns for rows that didn't pass. For + `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that is still + ~1M sort-column decodes regardless of `N`; the LIMIT only saves + work on non-sort columns inside the same row group and on whole + *subsequent* row groups that the tightened threshold can prune. + The internal `Exact` reverse path, by contrast, deletes the + `SortExec` so the LIMIT becomes a static fetch on the source. + The source walks pages of the target row group from the back, + decodes each batch, reverses the batch row-wise, emits — and + stops the moment K rows have been delivered. For + `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that is one + batch worth of decode work, not 1M. No filter machinery, no + heap, no per-row threshold check. +* **`SortExec` itself adds ordering work on top of `Inexact`.** The + reversed-RG stream is not strictly DESC (rows within each RG are + still forward), so `Inexact` keeps the surrounding `SortExec`. + Even when the heap is settled and the dynamic filter has + pruned the tail, the outer operator does its own final ordering + pass — overhead that `Exact` (which deletes the `SortExec`) + does not pay. + +Why didn't we just upstream the internal `Exact` reverse, then? +**Memory.** Parquet does not allow reading only part of a row +group, so any RG-level `Exact` implementation — ours included — +has to decode the entire row group, reverse the buffer in +memory, and only then emit. That is the same memory profile that +`#18817` was rejected for: a peak of one whole row group +(~128 MB) of decoded data, vs. the few-MB-per-batch streaming +profile readers normally have. Our runtime advantage over +`Inexact` + `TopK` does *not* come from decoding less — both +paths decode the relevant row group's sort column in full — it +comes from skipping the per-row heap maintenance, the dynamic +filter evaluation, and the `SortExec` final ordering pass that +`Inexact` keeps on top. So we end up running our `Exact` reverse +in-house but cannot land it as the upstream default for the same +memory reason that closed `#18817`. + +**That is the direct motivation behind the page-level `Exact` +reverse work we are pushing upstream in arrow-rs `#9937`.** It +shrinks the unit of work from one whole row group down to one +page (~1 MB): the reader uses parquet's `OffsetIndex` to `seek` +to the last page of the column chunk, decode it forward, reverse +the resulting batch, and emit — without ever materialising the +rest of the row group in memory. The streaming memory profile is +preserved and the runtime advantage we measured internally is +kept. Once `#9937` and the DataFusion follow-up land, the +upstream default for `ORDER BY ts DESC LIMIT N` becomes `Exact` +reverse at page granularity: `SortExec` removed, static fetch on +the source, peak memory in the streaming regime, no `TopK` heap +overhead, with K rows returned after roughly one page's worth of +decode work. + That primitive is the **page-level** reverse traversal. Parquet's `OffsetIndex` already gives us byte-precise locations for every data page in a column chunk, so we can `seek` directly to the last page, From 8d3ebed45a08978da367674c853fd88cda7e00db Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sat, 16 May 2026 16:13:48 +0800 Subject: [PATCH 05/79] Correct internal RG-Exact description and trim arrow-rs #9937 duplication MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two corrections in the empirical-note / reverse-scans section: 1. The internal RG-level `Exact` reverse path was incorrectly described as "walks pages from the back, decodes each batch, reverses row-wise, stops the moment K rows have been delivered." That is actually the page-level `Exact` shape (arrow-rs #9937), not the in-house RG-level implementation. Parquet does not allow partial row-group reads, so the in-house path has to decode the entire target row group, reverse the buffer in memory, take the first K rows, and stop — same memory profile as #18817's proposal. The runtime advantage over `Inexact` + `TopK` comes from removing the per-row heap maintenance, dynamic-filter evaluation, and `SortExec` final ordering pass, not from decoding less sort-column data. Sort col decode on the target row group is the same on both paths. 2. The arrow-rs #9937 paragraph I previously added duplicated the technical detail already present in the long-standing "That primitive is the page-level reverse traversal..." paragraph. Replaced with a one-sentence bridge ("The fix that keeps both the runtime win and a streaming memory profile is page-level `Exact` reverse via arrow-rs #9937, described next.") so the existing paragraph carries the explanation without repetition. --- content/blog/2026-05-25-sort-pushdown.md | 35 +++++++++--------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 96708cd0..acafec65 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -556,14 +556,16 @@ latency went **up**, not down. A few cost components stack up on the ~1M sort-column decodes regardless of `N`; the LIMIT only saves work on non-sort columns inside the same row group and on whole *subsequent* row groups that the tightened threshold can prune. - The internal `Exact` reverse path, by contrast, deletes the - `SortExec` so the LIMIT becomes a static fetch on the source. - The source walks pages of the target row group from the back, - decodes each batch, reverses the batch row-wise, emits — and - stops the moment K rows have been delivered. For - `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that is one - batch worth of decode work, not 1M. No filter machinery, no - heap, no per-row threshold check. + The internal RG-level `Exact` reverse path, by contrast, deletes + the `SortExec` so the LIMIT becomes a static fetch on the source. + The source still has to decode the target row group in full — + parquet does not allow partial row-group reads, so this part is + the same as `Inexact` — but it then reverses the buffer in + memory, takes the first K rows, and **stops**. No subsequent row + group is opened, no stats check, no filter machinery, no per-row + heap maintenance, no `SortExec` final ordering pass. The wins + come from removing those per-row and per-RG overheads on top, not + from decoding less sort-column data on the target row group. * **`SortExec` itself adds ordering work on top of `Inexact`.** The reversed-RG stream is not strictly DESC (rows within each RG are still forward), so `Inexact` keeps the surrounding `SortExec`. @@ -588,20 +590,9 @@ filter evaluation, and the `SortExec` final ordering pass that in-house but cannot land it as the upstream default for the same memory reason that closed `#18817`. -**That is the direct motivation behind the page-level `Exact` -reverse work we are pushing upstream in arrow-rs `#9937`.** It -shrinks the unit of work from one whole row group down to one -page (~1 MB): the reader uses parquet's `OffsetIndex` to `seek` -to the last page of the column chunk, decode it forward, reverse -the resulting batch, and emit — without ever materialising the -rest of the row group in memory. The streaming memory profile is -preserved and the runtime advantage we measured internally is -kept. Once `#9937` and the DataFusion follow-up land, the -upstream default for `ORDER BY ts DESC LIMIT N` becomes `Exact` -reverse at page granularity: `SortExec` removed, static fetch on -the source, peak memory in the streaming regime, no `TopK` heap -overhead, with K rows returned after roughly one page's worth of -decode work. +**The fix that keeps both the runtime win and a streaming memory +profile is page-level `Exact` reverse via arrow-rs [#9937]**, +described next. That primitive is the **page-level** reverse traversal. Parquet's `OffsetIndex` already gives us byte-precise locations for every data From 0fc60d42875c9dd6525acef5c70cfe66f89b3ec3 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 13:16:47 +0800 Subject: [PATCH 06/79] Mark #21956 as landed (merged via merge queue) --- content/blog/2026-05-25-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index acafec65..082dede7 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -193,7 +193,7 @@ Phase 1's scope was deliberately narrow. It set up the API and delivered the reverse-scan case end-to-end, but it did **not** add any statistics-based file rearrangement — that came later in Phase 2. A finer-grained extension that broadens this `Inexact` path with a -three-step runtime reorder pipeline lands in [#21956] — covered in +three-step runtime reorder pipeline landed in [#21956] — covered in [Phase 3](#phase-3-runtime-reorder-for-inexact-pushdown) below. Phase 1 also produced a useful side improvement: From e6ab13308624ba8beced8d81902cae2b3ae6da06 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 14:25:09 +0800 Subject: [PATCH 07/79] =?UTF-8?q?Reframe=20blog=20from=20Phase=20N=20?= =?UTF-8?q?=E2=86=92=20capability-based=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All three sort-pushdown PRs have now landed, so the chronological 'Phase 1/2/3' framing is less useful for readers than a capability breakdown. Sections are now: - The PushdownSort Rule (#19064) - Sort Elimination via Statistics (#21182) - Runtime Reorder for TopK Convergence (#21956) - Reverse Scans for ORDER BY ... DESC (unchanged) In-body Phase references replaced with PR numbers or capability names; anchor links updated; references section restructured. --- content/blog/2026-05-25-sort-pushdown.md | 194 ++++++++++++----------- 1 file changed, 104 insertions(+), 90 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 082dede7..205d4807 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -44,12 +44,13 @@ already in that order. CPU wasted. Memory wasted. Streaming defeated. [Apache DataFusion]: https://datafusion.apache.org/ -This post walks through the **sort pushdown** work that closed that gap. -It is structured in two phases — file rearrangement first, then a -statistics-based proof of non-overlap — and lands real benchmark -speedups of **2.1×–49× on common queries**. The same machinery extends -to `ORDER BY ... DESC`, and the page-level reverse primitive we are -adding upstream in [arrow-rs] will push the gains further still. +This post walks through the **sort pushdown** work that closed that +gap. It covers two complementary capabilities — sort elimination via +statistics, and runtime reorder for `TopK` convergence — and lands +real benchmark speedups of **2.1×–49× on common queries**. The same +machinery extends to `ORDER BY ... DESC`, and the page-level reverse +primitive we are adding upstream in [arrow-rs] will push the gains +further still. [arrow-rs]: https://github.com/apache/arrow-rs @@ -59,29 +60,36 @@ adding upstream in [arrow-rs] will push the gains further still. already in the requested order, and **read the most-promising data first** when they aren't — so `TopK` converges fast and the rest gets pruned by statistics. -* Three phases: - * **Phase 1** — establish the `PushdownSort` rule and the - `Exact` / `Inexact` / `Unsupported` protocol; ship the reverse - row-group case for `ORDER BY ... DESC` (reports `Inexact`). - * **Phase 2** — sort files within each partition by Parquet - `min/max` statistics and *prove* non-overlap, upgrading - `Unsupported` to `Exact` so `PushdownSort` removes the `SortExec` - that `EnforceSorting` inserted earlier. - * **Phase 3** ([#21956]) — generalise `Inexact`: whenever the - leading sort key is a plain column in the file schema (or the - source's reversed declared ordering satisfies the request), +* What's supported today: + * **The `PushdownSort` rule** ([#19064]) — a physical optimizer + rule that asks each `ExecutionPlan` "can you produce output in + *this* ordering?" and uses the + `Exact` / `Inexact` / `Unsupported` answer to decide whether to + delete the surrounding `SortExec`, leave it in place with a + hint, or give up. + * **Sort elimination via statistics** ([#21182]) — `PushdownSort` + sorts files within each partition by Parquet `min/max` + statistics and, when the resulting ranges are provably + non-overlapping, upgrades the source's ordering claim from + `Unsupported` to `Exact` and **removes the `SortExec`** that + `EnforceSorting` inserted earlier. + * **Runtime reorder for `TopK` convergence** ([#21956]) — whenever + the leading sort key is a plain column in the file schema (or + the source's reversed declared ordering satisfies the request), `try_pushdown_sort` stamps two flags on the source and the opener runs a three-step runtime pipeline — file-level reorder in the shared morsel queue, row-group reorder by min/max stats, - then optional iteration reverse for `DESC` requests. -* Real-world benchmarks on the `sort_pushdown` suite (Phase 2's - `Exact` upgrade): `ORDER BY ... LIMIT` queries get **27× and 49× - faster**; full `ORDER BY` scans get **~2×** faster. -* Reverse scans (`ORDER BY ... DESC`) ride the same machinery: a - merged row-group-level reverse returns `Inexact` (Sort stays, but - `TopK` terminates early); the page-level reverse primitive needed - for `Exact` reverse — and so for full `SortExec` removal on `DESC` - queries — is in flight in arrow-rs. + then optional iteration reverse for `DESC` requests. `SortExec` + stays, but `TopK`'s dynamic filter tightens fast on the + most-promising data and the rest is pruned. + * **Reverse scans for `ORDER BY ... DESC`** ([#19446], [#19557]) — + a row-group-level reverse returns `Inexact` (Sort stays, but + `TopK` terminates early). The page-level reverse primitive + needed for `Exact` reverse — and so for full `SortExec` removal + on `DESC` queries — is in flight in arrow-rs ([#9937]). +* Real-world benchmarks on the `sort_pushdown` suite (`Exact` path): + `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full + `ORDER BY` scans get **~2×** faster. ## Why Sort Pushdown Matters @@ -169,11 +177,10 @@ pushdown loses the `SortExec` node. Everything downstream — the optimizer to convince itself that the bottom of the plan is producing the order requested. -## Phase 1: The Pushdown API and Reverse Scans +## The `PushdownSort` Rule -Phase 1 ([#19064]) introduced the **`PushdownSort`** physical -optimizer rule and a uniform API for asking each `ExecutionPlan` two -questions: +[#19064] introduced the **`PushdownSort`** physical optimizer rule +and a uniform API for asking each `ExecutionPlan` two questions: [#19064]: https://github.com/apache/datafusion/pull/19064 @@ -189,14 +196,17 @@ it returns `Inexact` and flips on `reverse_row_groups=true` so the scan reads row groups from last to first (the row-group-level reverse covered later in this post); otherwise it returns `Unsupported`. -Phase 1's scope was deliberately narrow. It set up the API and -delivered the reverse-scan case end-to-end, but it did **not** add -any statistics-based file rearrangement — that came later in Phase 2. -A finer-grained extension that broadens this `Inexact` path with a -three-step runtime reorder pipeline landed in [#21956] — covered in -[Phase 3](#phase-3-runtime-reorder-for-inexact-pushdown) below. +The initial PR's scope was deliberately narrow. It set up the API +and delivered the reverse-scan case end-to-end, but did **not** add +any statistics-based file rearrangement — that came later via +[#21182], covered in +[Sort Elimination via Statistics](#sort-elimination-via-statistics) +below. A finer-grained extension that broadens this `Inexact` path +with a three-step runtime reorder pipeline landed in [#21956] — +covered in +[Runtime Reorder for TopK Convergence](#runtime-reorder-for-topk-convergence). -Phase 1 also produced a useful side improvement: +[#19064] also produced a useful side improvement: * **Reverse-output redesign** ([#19446], [#19557]) extended the same rule to `DESC` queries — picked up again in the reverse-scan @@ -205,12 +215,13 @@ Phase 1 also produced a useful side improvement: [#19446]: https://github.com/apache/datafusion/pull/19446 [#19557]: https://github.com/apache/datafusion/pull/19557 -## Phase 2: Use Statistics to Prove Non-Overlap +## Sort Elimination via Statistics -Phase 2: rearranging files within a partition by min/max statistics so the file list is in range order +Sort elimination: rearranging files within a partition by min/max statistics so the file list is in range order -Phase 1 left a sharp edge that motivated Phase 2 ([#21182]). Consider -this realistic scenario: +The initial `Inexact`-only path left a sharp edge that motivated +stats-based sort elimination ([#21182]). Consider this realistic +scenario: [#21182]: https://github.com/apache/datafusion/pull/21182 @@ -228,7 +239,7 @@ the scan now has no declared ordering, so `EnforceSorting` (which runs earlier in the pipeline) inserts a `SortExec`. The data is sorted on disk; the optimizer just can't tell. -Phase 2 fixes this in `PushdownSort`, which runs late — after +[#21182] fixes this in `PushdownSort`, which runs late — after `EnforceDistribution` and `EnforceSorting` have already shaped the plan. When `PushdownSort` finds a `SortExec` above a file scan whose ordering was stripped (a `FileSource` `Unsupported` result), it does @@ -239,7 +250,7 @@ three things inside `FileScanConfig::try_pushdown_sort`: pre-existing [`MinMaxStatistics`] helper (introduced in [#9593]) reads each file's `column_statistics[c].min_value` / `.max_value` for each sort column `c`, then sorts the file list by - the min row. Phase 2 wires this helper into the optimizer's + the min row. The PR wires this helper into the optimizer's `Unsupported` branch — `sort_files_within_groups_by_statistics` does the per-group orchestration and decides whether any group is non-overlapping after the sort. @@ -273,14 +284,14 @@ row-group iteration reverse when the source declares a compatible natural ordering — but stats-based reorder still needs a plain column.)* -Phase 2: detecting non-overlapping ranges via min/max statistics +Detecting non-overlapping ranges via min/max statistics The diagram above contrasts the two cases. On the left, ranges are non-overlapping after sort, so we can guarantee that emitting the files in min-order produces a globally sorted stream. On the right, the ranges overlap, so even after sorting the files by `min(ts)` we -cannot guarantee global ordering — Phase 2 correctly bails out and -keeps `SortExec` in place. +cannot guarantee global ordering — the upgrade is skipped and +`SortExec` stays in place. The implementation handles a few edge cases worth calling out: @@ -290,32 +301,32 @@ The implementation handles a few edge cases worth calling out: acting as an *implicit in-memory buffer* for the SPM above it. The SPM picks rows from each partition stream one at a time; without the upstream `SortExec` holding batches in memory, the SPM would - read directly from I/O-bound sources and stall on every pick. Phase - 2 compensates by inserting a [`BufferExec`] in the `SortExec`'s + read directly from I/O-bound sources and stall on every pick. The + rule compensates by inserting a [`BufferExec`] in the `SortExec`'s place — bounded streaming buffer, same throughput shape, no blocking sort. Capacity is configurable via [`sort_pushdown_buffer_capacity`] ([#21426]). * **`fetch` preservation** through `EnforceDistribution`. The distribution rule sometimes strips a `SortExec`'s `fetch` field and - re-adds the node later. Phase 2 plumbs `fetch` through so a + re-adds the node later. The PR plumbs `fetch` through so a surviving `LIMIT` is not lost. -* **Per-group, not global, non-overlap.** Phase 2's adjacency check is +* **Per-group, not global, non-overlap.** The adjacency check is scoped to each file group. Two file groups can have *overlapping* ranges and the upgrade still fires, as long as each group is internally non-overlapping. That works because each group already produces an independently ordered stream at runtime, and `SortPreservingMergeExec` then picks rows across streams in value - order to produce the final globally sorted output. Phase 2 only has - to prove the per-stream property. + order to produce the final globally sorted output. The rule only + has to prove the per-stream property. * **Single-partition vs multi-partition execution**. With the default multi-partition setup, `EnforceDistribution` byte-range-splits files into single-file groups, after which `validated_output_ordering()` - works correctly on its own. Phase 2 only triggers when files have - not been split — typically `--partitions 1` runs, or files small - enough that the splitter leaves them alone. In the typical `--partitions - 1` case the "per-group" distinction collapses (one group equals the - whole table), which is why the example earlier in this section is - drawn that way. + works correctly on its own. Stats-based reorder only triggers when + files have not been split — typically `--partitions 1` runs, or + files small enough that the splitter leaves them alone. In the + typical `--partitions 1` case the "per-group" distinction collapses + (one group equals the whole table), which is why the example earlier + in this section is drawn that way. [`BufferExec`]: https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs [`sort_pushdown_buffer_capacity`]: https://github.com/apache/datafusion/pull/21426 @@ -323,13 +334,13 @@ The implementation handles a few edge cases worth calling out: ## Benchmarks -Sort pushdown phase 2 benchmark: 2x-49x speedup across four queries +Sort pushdown benchmark: 2x-49x speedup across four queries The [`sort_pushdown`] benchmark suite reproduces the "wrong-order file list" scenario by generating Parquet files whose names are intentionally reversed against their sort-key ranges. Numbers -below are `--partitions 1`, release build, on the merged Phase 2 -branch versus `main`: +below are `--partitions 1`, release build, with stats-based sort +elimination ([#21182]) enabled, versus `main`: [`sort_pushdown`]: https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown @@ -359,42 +370,44 @@ removed: It is worth saying explicitly what this change does **not** affect. The default multi-partition execution path is unchanged: those plans already produced correct orderings via byte-range splitting, so -Phase 2 simply does not trigger. There is no regression and no behavior -change for the typical multi-threaded query. +stats-based sort elimination simply does not trigger. There is no +regression and no behavior change for the typical multi-threaded +query. -## Phase 3: Runtime Reorder for Inexact Pushdown +## Runtime Reorder for TopK Convergence -Phase 2 handles the `Exact` upgrade — strong correctness, sort -elimination — but only when the table has a declared -`output_ordering` *and* the files are provably non-overlapping after -sorting by min. Two large classes of queries fall outside that -window: +Stats-based sort elimination handles the `Exact` upgrade — strong +correctness, sort elimination — but only when the table has a +declared `output_ordering` *and* the files are provably +non-overlapping after sorting by min. Two large classes of queries +fall outside that window: * **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. - Phase 2 cannot fire because there is no ordering claim to upgrade. + The `Exact` upgrade cannot fire because there is no ordering + claim to upgrade. * **Overlapping ranges** — files written by different ingestion - jobs share time windows. Phase 2 keeps the `SortExec` because the - global ordering can't be proven, even though the files often do - contain large stretches of in-order data. + jobs share time windows. The `Exact` upgrade keeps the `SortExec` + because the global ordering can't be proven, even though the + files often do contain large stretches of in-order data. For both, a full external `SortExec` is overkill. The parquet metadata is right there, and reading the *most-promising* data first lets `TopK`'s dynamic filter threshold tighten quickly so the -rest gets pruned. Phase 3 ([#21956]) wires that up by generalising -the `Inexact` path Phase 1 introduced. +rest gets pruned. [#21956] wires that up by generalising the +`Inexact` path that [#19064] introduced. ### `try_pushdown_sort` — one decision, three outcomes try_pushdown_sort decision tree: Exact, Inexact, or Unsupported -The `Exact` / `Inexact` / `Unsupported` protocol from Phase 1 stays. -Phase 3 broadens the **conditions** that route a query into -`Inexact`: +The `Exact` / `Inexact` / `Unsupported` protocol from [#19064] +stays. The new PR broadens the **conditions** that route a query +into `Inexact`: | Condition | Outcome | | --- | --- | -| `eq_properties.ordering_satisfy(request)` | `Exact` — Phase 1 / 2 sort elimination | -| Leading sort key is a plain `Column` in the file schema, **or** the source's reversed declared ordering satisfies the request | `Inexact` — Phase 3 runtime pipeline | +| `eq_properties.ordering_satisfy(request)` | `Exact` — sort elimination | +| Leading sort key is a plain `Column` in the file schema, **or** the source's reversed declared ordering satisfies the request | `Inexact` — runtime reorder pipeline | | Neither | `Unsupported` — `SortExec` stays, no source-side optimisation | The "reversed satisfies" branch is what handles function-wrapped @@ -406,7 +419,7 @@ itself. ### Two flags on `ParquetSource`, three runtime steps -Phase 3 runtime pipeline: file reorder, RG reorder, then optional reverse +Runtime reorder pipeline: file reorder, RG reorder, then optional reverse When `try_pushdown_sort` returns `Inexact`, it stamps two fields on the `ParquetSource`: @@ -432,8 +445,8 @@ The opener reads them at scan time to drive three composable steps: 3. **Reverse.** For `DESC` requests, `PreparedAccessPlan::reverse` flips the iteration after the stats reorder normalises everything to ASC-by-min. Same - primitive Phase 1 introduced for declared reverse scans — Phase - 3 just routes more queries through it. + primitive [#19064] introduced for declared reverse scans — + [#21956] just routes more queries through it. The two layers **nest by construction**: file `i`'s `min(col)` is a lower bound on every row group inside it, so the file queue's @@ -461,7 +474,7 @@ DataSourceExec: file_groups=..., file_type=parquet, Absence of either flag means the corresponding runtime step is a no-op. -### When Phase 3 does *not* fire +### When runtime reorder does *not* fire * **Aggregations on top of the sort key.** `SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10` (the ClickBench @@ -483,7 +496,7 @@ no-op. `[a DESC, b ASC, c DESC]`), `try_pushdown_sort` returns `Unsupported` so the surrounding `SortExec` can keep its `sort_prefix` annotation — prefix-aware early termination in - `TopK` is strictly better than the Phase 3 reorder on data that + `TopK` is strictly better than the runtime reorder on data that is already in prefix order on disk. ## Reverse Scans for `ORDER BY ... DESC` @@ -525,7 +538,7 @@ decoded rows before any batch can be emitted is roughly: return 10 — defeating the point of the `LIMIT`. The agreed direction coming out of that discussion was to ship the -narrower `Inexact` row-group-reverse first (which became Phase 1 in +narrower `Inexact` row-group-reverse first (which landed in [#19064]), and to build `Exact` reverse on a finer-grained primitive once `arrow-rs` exposed one. @@ -620,8 +633,8 @@ delta, bit-packing) are all forward streams — you cannot decode the last value without decoding every value that came before it. The design therefore is: **reverse the page traversal, forward-decode each page, reverse the resulting RecordBatch**. This is the algorithm -shape that DataFusion's Phase-2 `RecordBatchReader` integration will -use once arrow-rs ships the primitive. +shape DataFusion's `RecordBatchReader` integration will use once +arrow-rs ships the primitive. The killer use case is **filtered reverse TopK**: @@ -793,8 +806,9 @@ Issues and PRs: * Umbrella issue: [apache/datafusion#17348][#17348] * `MinMaxStatistics` foundation: [apache/datafusion#9593][#9593] -* Phase 1: [apache/datafusion#19064][#19064] -* Phase 2: [apache/datafusion#21182][#21182] +* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064][#19064] +* Sort elimination via statistics: [apache/datafusion#21182][#21182] +* Runtime reorder for TopK convergence: [apache/datafusion#21956][#21956] * `BufferExec` capacity for sort elimination: [apache/datafusion#21426][#21426] * Dynamic / TopK-driven path: [apache/datafusion#21351][#21351] (morsel-style work scheduling), [apache/datafusion#21733][#21733] (global file reorder in shared queue) From 75553f6c399807fb410ee3e76cf76cf8b2e729bd Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 14:49:43 +0800 Subject: [PATCH 08/79] Clarify two-layer composability: same key (min), not 'nest by construction' The previous wording 'nest by construction' could be read as a code- enforced property. It's actually a logical consequence of using the same sort key (min) at both file and row-group level: a file's min(col) is just the minimum over its row groups' min(col) values, so the most-promising file contains the most-promising row group. The rewritten paragraph spells that out and ties it to why TopK's dynamic filter tightens fast. --- content/blog/2026-05-25-sort-pushdown.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 205d4807..05bf141f 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -448,11 +448,15 @@ The opener reads them at scan time to drive three composable steps: primitive [#19064] introduced for declared reverse scans — [#21956] just routes more queries through it. -The two layers **nest by construction**: file `i`'s `min(col)` is -a lower bound on every row group inside it, so the file queue's -order is a natural prefix of the within-file row-group order. -Choosing the same key (`min`) in both layers keeps the strategies -consistent. +The two layers compose naturally because they sort by the same +key. A file's `min(col)` is the minimum over its row groups' +`min(col)` values, so the file with the smallest `min` contains +the row group with the smallest `min`. Sorting files by `min(col)` +and then sorting row groups by `min(col)` within each file +produces an approximately min-ordered global stream — the first +batch comes from the most-promising row group in the +most-promising file, exactly what `TopK`'s dynamic filter needs +to tighten its threshold fast. `reverse_row_groups`'s meaning depends on which way `Inexact` was reached. When the column-in-schema condition fires, the stats From b1d03c13e8c1cf7d4a7838dfe690a4f1d5c688e9 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 15:11:02 +0800 Subject: [PATCH 09/79] Strip inline PR refs from narrative; collect all links in References Match the dynamic-filter blog's style: narrative talks about capabilities/mechanisms, not 'PR #21956 did X / PR #19064 introduced Y'. The 81 inline PR/issue references in the body were dropping the reader out of the narrative; they belong in a single Issues-and-PRs list at the end. Changes: - TL;DR: drop 6 inline PR refs from the 4 capability bullets - Body sections (PushdownSort Rule, Sort Elimination, Runtime Reorder, Reverse Scans, Empirical Note): drop ~30 inline refs to historical PRs; replace with capability names or 'the rule' / 'the runtime reorder path' style descriptions - What's Next: switch from [#NNNNN] format to named markdown links (matching dynamic-filter's Future Work style) - Issues for new contributors: same conversion - References section: rewrite using full URLs (no link-ref indirection); split into 'Landed' vs 'In flight / open' for clarity Net: ~90 lines removed, all PR/issue numbers now consolidated at the bottom of the post. --- content/blog/2026-05-25-sort-pushdown.md | 435 +++++++++++------------ 1 file changed, 214 insertions(+), 221 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 05bf141f..8e12170c 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -61,32 +61,31 @@ further still. first** when they aren't — so `TopK` converges fast and the rest gets pruned by statistics. * What's supported today: - * **The `PushdownSort` rule** ([#19064]) — a physical optimizer - rule that asks each `ExecutionPlan` "can you produce output in - *this* ordering?" and uses the - `Exact` / `Inexact` / `Unsupported` answer to decide whether to - delete the surrounding `SortExec`, leave it in place with a - hint, or give up. - * **Sort elimination via statistics** ([#21182]) — `PushdownSort` - sorts files within each partition by Parquet `min/max` - statistics and, when the resulting ranges are provably - non-overlapping, upgrades the source's ordering claim from - `Unsupported` to `Exact` and **removes the `SortExec`** that - `EnforceSorting` inserted earlier. - * **Runtime reorder for `TopK` convergence** ([#21956]) — whenever - the leading sort key is a plain column in the file schema (or - the source's reversed declared ordering satisfies the request), + * **The `PushdownSort` rule** — a physical optimizer rule that + asks each `ExecutionPlan` "can you produce output in *this* + ordering?" and uses the `Exact` / `Inexact` / `Unsupported` + answer to decide whether to delete the surrounding `SortExec`, + leave it in place with a hint, or give up. + * **Sort elimination via statistics** — `PushdownSort` sorts + files within each partition by Parquet `min/max` statistics + and, when the resulting ranges are provably non-overlapping, + upgrades the source's ordering claim from `Unsupported` to + `Exact` and **removes the `SortExec`** that `EnforceSorting` + inserted earlier. + * **Runtime reorder for `TopK` convergence** — whenever the + leading sort key is a plain column in the file schema (or the + source's reversed declared ordering satisfies the request), `try_pushdown_sort` stamps two flags on the source and the opener runs a three-step runtime pipeline — file-level reorder in the shared morsel queue, row-group reorder by min/max stats, then optional iteration reverse for `DESC` requests. `SortExec` stays, but `TopK`'s dynamic filter tightens fast on the most-promising data and the rest is pruned. - * **Reverse scans for `ORDER BY ... DESC`** ([#19446], [#19557]) — - a row-group-level reverse returns `Inexact` (Sort stays, but - `TopK` terminates early). The page-level reverse primitive - needed for `Exact` reverse — and so for full `SortExec` removal - on `DESC` queries — is in flight in arrow-rs ([#9937]). + * **Reverse scans for `ORDER BY ... DESC`** — a row-group-level + reverse returns `Inexact` (Sort stays, but `TopK` terminates + early). The page-level reverse primitive needed for `Exact` + reverse — and so for full `SortExec` removal on `DESC` queries + — is in flight in arrow-rs. * Real-world benchmarks on the `sort_pushdown` suite (`Exact` path): `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full `ORDER BY` scans get **~2×** faster. @@ -179,10 +178,8 @@ producing the order requested. ## The `PushdownSort` Rule -[#19064] introduced the **`PushdownSort`** physical optimizer rule -and a uniform API for asking each `ExecutionPlan` two questions: - -[#19064]: https://github.com/apache/datafusion/pull/19064 +The **`PushdownSort`** physical optimizer rule defines a uniform +API for asking each `ExecutionPlan` two questions: 1. "Can you produce output in *this* ordering?" 2. "If yes, please rearrange yourself so that it actually does." @@ -196,34 +193,24 @@ it returns `Inexact` and flips on `reverse_row_groups=true` so the scan reads row groups from last to first (the row-group-level reverse covered later in this post); otherwise it returns `Unsupported`. -The initial PR's scope was deliberately narrow. It set up the API -and delivered the reverse-scan case end-to-end, but did **not** add -any statistics-based file rearrangement — that came later via -[#21182], covered in +The rule's initial scope was deliberately narrow. It set up the +API and delivered the reverse-scan case end-to-end, but did **not** +add any statistics-based file rearrangement — that came later, +covered in [Sort Elimination via Statistics](#sort-elimination-via-statistics) below. A finer-grained extension that broadens this `Inexact` path -with a three-step runtime reorder pipeline landed in [#21956] — -covered in +with a three-step runtime reorder pipeline is covered in [Runtime Reorder for TopK Convergence](#runtime-reorder-for-topk-convergence). -[#19064] also produced a useful side improvement: - -* **Reverse-output redesign** ([#19446], [#19557]) extended the same - rule to `DESC` queries — picked up again in the reverse-scan - section below. - -[#19446]: https://github.com/apache/datafusion/pull/19446 -[#19557]: https://github.com/apache/datafusion/pull/19557 +The same rule also handles **reverse-output** for `DESC` queries — +picked up again in the reverse-scan section below. ## Sort Elimination via Statistics Sort elimination: rearranging files within a partition by min/max statistics so the file list is in range order The initial `Inexact`-only path left a sharp edge that motivated -stats-based sort elimination ([#21182]). Consider this realistic -scenario: - -[#21182]: https://github.com/apache/datafusion/pull/21182 +stats-based sort elimination. Consider this realistic scenario: * Three files: `a.parquet`, `b.parquet`, `c.parquet`. * Each declares `WITH ORDER (ts ASC)`. @@ -239,21 +226,21 @@ the scan now has no declared ordering, so `EnforceSorting` (which runs earlier in the pipeline) inserts a `SortExec`. The data is sorted on disk; the optimizer just can't tell. -[#21182] fixes this in `PushdownSort`, which runs late — after -`EnforceDistribution` and `EnforceSorting` have already shaped the -plan. When `PushdownSort` finds a `SortExec` above a file scan whose -ordering was stripped (a `FileSource` `Unsupported` result), it does -three things inside `FileScanConfig::try_pushdown_sort`: +Stats-based sort elimination fixes this in `PushdownSort`, which +runs late — after `EnforceDistribution` and `EnforceSorting` have +already shaped the plan. When `PushdownSort` finds a `SortExec` +above a file scan whose ordering was stripped (a `FileSource` +`Unsupported` result), it does three things inside +`FileScanConfig::try_pushdown_sort`: 1. **Sort the file list by per-file statistics on the sort column(s)** within each file group (the diagram above). The - pre-existing [`MinMaxStatistics`] helper (introduced in [#9593]) - reads each file's `column_statistics[c].min_value` / - `.max_value` for each sort column `c`, then sorts the file list by - the min row. The PR wires this helper into the optimizer's - `Unsupported` branch — `sort_files_within_groups_by_statistics` - does the per-group orchestration and decides whether any group is - non-overlapping after the sort. + pre-existing [`MinMaxStatistics`] helper reads each file's + `column_statistics[c].min_value` / `.max_value` for each sort + column `c`, then sorts the file list by the min row. + `sort_files_within_groups_by_statistics` does the per-group + orchestration and decides whether any group is non-overlapping + after the sort. 2. **Check adjacency within each group**: walk each sorted file group independently and ask whether `file[i].max ≤ file[i+1].min` for every adjacent pair (touching at the boundary is fine — value `v` @@ -269,7 +256,6 @@ three things inside `FileScanConfig::try_pushdown_sort`: itself and the plan becomes streamable. [`MinMaxStatistics`]: https://github.com/apache/datafusion/blob/main/datafusion/datasource/src/statistics.rs -[#9593]: https://github.com/apache/datafusion/pull/9593 One caveat that comes straight from `MinMaxStatistics`: the stats sort only fires when every `ORDER BY` expression is a plain column. @@ -278,11 +264,11 @@ is no per-file min/max for the function output to compare against. Extending sort pushdown across monotonic function wrappers is one of the open follow-ups. -*(Within #21956's `Inexact` path, `EquivalenceProperties`'s -monotonicity inference does let function-wrapped sorts benefit from -row-group iteration reverse when the source declares a compatible -natural ordering — but stats-based reorder still needs a plain -column.)* +*(The runtime reorder path covered later does let function-wrapped +sorts benefit from row-group iteration reverse via +`EquivalenceProperties`'s monotonicity inference, when the source +declares a compatible natural ordering — but stats-based sort +elimination still needs a plain column.)* Detecting non-overlapping ranges via min/max statistics @@ -305,7 +291,7 @@ The implementation handles a few edge cases worth calling out: rule compensates by inserting a [`BufferExec`] in the `SortExec`'s place — bounded streaming buffer, same throughput shape, no blocking sort. Capacity is configurable via - [`sort_pushdown_buffer_capacity`] ([#21426]). + [`sort_pushdown_buffer_capacity`]. * **`fetch` preservation** through `EnforceDistribution`. The distribution rule sometimes strips a `SortExec`'s `fetch` field and re-adds the node later. The PR plumbs `fetch` through so a @@ -330,7 +316,6 @@ The implementation handles a few edge cases worth calling out: [`BufferExec`]: https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs [`sort_pushdown_buffer_capacity`]: https://github.com/apache/datafusion/pull/21426 -[#21426]: https://github.com/apache/datafusion/pull/21426 ## Benchmarks @@ -340,7 +325,7 @@ The [`sort_pushdown`] benchmark suite reproduces the "wrong-order file list" scenario by generating Parquet files whose names are intentionally reversed against their sort-key ranges. Numbers below are `--partitions 1`, release build, with stats-based sort -elimination ([#21182]) enabled, versus `main`: +elimination enabled, versus `main`: [`sort_pushdown`]: https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown @@ -393,16 +378,16 @@ fall outside that window: For both, a full external `SortExec` is overkill. The parquet metadata is right there, and reading the *most-promising* data first lets `TopK`'s dynamic filter threshold tighten quickly so the -rest gets pruned. [#21956] wires that up by generalising the -`Inexact` path that [#19064] introduced. +rest gets pruned. Runtime reorder wires that up by generalising +the `Inexact` path the rule introduced. ### `try_pushdown_sort` — one decision, three outcomes try_pushdown_sort decision tree: Exact, Inexact, or Unsupported -The `Exact` / `Inexact` / `Unsupported` protocol from [#19064] -stays. The new PR broadens the **conditions** that route a query -into `Inexact`: +The `Exact` / `Inexact` / `Unsupported` protocol stays. The +runtime reorder path broadens the **conditions** that route a +query into `Inexact`: | Condition | Outcome | | --- | --- | @@ -435,9 +420,10 @@ struct ParquetSource { The opener reads them at scan time to drive three composable steps: 1. **File-level reorder.** `FileSource::reorder_files` sits in the - shared morsel queue (the [#21351] work-stealing primitive) and - sorts the partitioned-file list by `min(col)`. The first file - picked across all partitions is globally the most-promising one. + shared morsel queue (a work-stealing primitive that lets sibling + partitions share a single file pool) and sorts the + partitioned-file list by `min(col)`. The first file picked across + all partitions is globally the most-promising one. 2. **Row-group-level reorder.** Once a file is opened, `PreparedAccessPlan::reorder_by_statistics` sorts that file's `row_group_indexes` by `min(col)` ASC. The row group most likely @@ -445,8 +431,9 @@ The opener reads them at scan time to drive three composable steps: 3. **Reverse.** For `DESC` requests, `PreparedAccessPlan::reverse` flips the iteration after the stats reorder normalises everything to ASC-by-min. Same - primitive [#19064] introduced for declared reverse scans — - [#21956] just routes more queries through it. + primitive the rule originally introduced for declared reverse + scans — the runtime pipeline just routes more queries through + it. The two layers compose naturally because they sort by the same key. A file's `min(col)` is the minimum over its row groups' @@ -490,10 +477,10 @@ no-op. the scan there'd be nothing actionable to do with it. * **Multi-column sort secondary keys.** The reorder currently only uses the leading sort expression — secondary keys are ignored. - Tracked as a follow-up in [#22198]. + An open follow-up. * **Function-wrapped sort without a source-declared ordering.** Without a declared ordering to invert, the reversed-equivalence - branch has nothing to satisfy. Tracked in the same follow-up. + branch has nothing to satisfy. Same follow-up. * **Source declares a forward prefix of the request.** When the source's declared `output_ordering` is a non-empty proper prefix of the request (e.g. source `[a DESC, b ASC]`, request @@ -511,26 +498,25 @@ no-op. ascending and the query wants descending, we should be able to skip the sort — we just need to read the data in the opposite order. -The first iteration of this lives in [#18817] and operates at the -**row group** level: it reverses the *iteration order of row groups* -so the last RG is opened first, but rows within each RG are still -decoded forward. The resulting stream is "RGs descending × rows -ascending" — close to the requested order, but not strictly DESC. The -optimizer therefore reports this as `Inexact` and leaves the -`SortExec` in place; the win is that `TopK`'s dynamic filter tightens -much faster, because the very first row groups read already contain -values near the final answer. A tight threshold means subsequent row -groups can be skipped via min/max statistics. This ships today and -is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted files. - -[#18817]: https://github.com/apache/datafusion/pull/18817 +The first iteration of this operates at the **row group** level: +it reverses the *iteration order of row groups* so the last RG is +opened first, but rows within each RG are still decoded forward. +The resulting stream is "RGs descending × rows ascending" — close +to the requested order, but not strictly DESC. The optimizer +therefore reports this as `Inexact` and leaves the `SortExec` in +place; the win is that `TopK`'s dynamic filter tightens much +faster, because the very first row groups read already contain +values near the final answer. A tight threshold means subsequent +row groups can be skipped via min/max statistics. This ships today +and is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted +files. To turn this into `Exact` reverse — so the `SortExec` can be removed outright — each emitted batch itself has to be in DESC order. The straightforward row-group-level approach (decode an entire RG forward, materialize all rows, reverse the buffer, then emit) is correct and was actually proposed first, in an earlier iteration of this work -([#18817], later closed and split into smaller pieces). Review +that was later closed and split into smaller pieces. Review feedback there — primarily from [@2010YOUY01] — flagged the memory profile as too aggressive: caching an entire row group's worth of decoded rows before any batch can be emitted is roughly: @@ -542,9 +528,8 @@ decoded rows before any batch can be emitted is roughly: return 10 — defeating the point of the `LIMIT`. The agreed direction coming out of that discussion was to ship the -narrower `Inexact` row-group-reverse first (which landed in -[#19064]), and to build `Exact` reverse on a finer-grained primitive -once `arrow-rs` exposed one. +narrower `Inexact` row-group-reverse first, and to build `Exact` +reverse on a finer-grained primitive once `arrow-rs` exposed one. ### Empirical note — runtime cost of `Inexact` + `TopK` @@ -596,20 +581,20 @@ Why didn't we just upstream the internal `Exact` reverse, then? group, so any RG-level `Exact` implementation — ours included — has to decode the entire row group, reverse the buffer in memory, and only then emit. That is the same memory profile that -`#18817` was rejected for: a peak of one whole row group -(~128 MB) of decoded data, vs. the few-MB-per-batch streaming -profile readers normally have. Our runtime advantage over -`Inexact` + `TopK` does *not* come from decoding less — both -paths decode the relevant row group's sort column in full — it -comes from skipping the per-row heap maintenance, the dynamic +got the earlier RG-level proposal rejected: a peak of one whole +row group (~128 MB) of decoded data, vs. the few-MB-per-batch +streaming profile readers normally have. Our runtime advantage +over `Inexact` + `TopK` does *not* come from decoding less — +both paths decode the relevant row group's sort column in full — +it comes from skipping the per-row heap maintenance, the dynamic filter evaluation, and the `SortExec` final ordering pass that `Inexact` keeps on top. So we end up running our `Exact` reverse -in-house but cannot land it as the upstream default for the same -memory reason that closed `#18817`. +in-house but cannot land it as the upstream default, for the +same memory reason that closed the earlier proposal. **The fix that keeps both the runtime win and a streaming memory -profile is page-level `Exact` reverse via arrow-rs [#9937]**, -described next. +profile is page-level `Exact` reverse via arrow-rs**, described +next. That primitive is the **page-level** reverse traversal. Parquet's `OffsetIndex` already gives us byte-precise locations for every data @@ -618,19 +603,16 @@ decode it forward, reverse the resulting batch, and emit. Peak buffer drops to one page (~1 MB) and first-batch latency drops to the cost of one page decode — the row-group-level memory cliff disappears. -We are landing this primitive upstream in arrow-rs as -[#9937], with the discussion in [#9934]. Early numbers on a 100k-row, -98-page column chunk show **~50× faster time-to-first-N** for `n ≤ 1 -page` and **~9× faster** for `n` spanning 10 pages, compared with the -row-group-level Exact reverse described above. The DataFusion-side -integration that turns this primitive into an `Exact` result is a -follow-up to #9937 and is gated on its merge. +We are landing this primitive upstream in arrow-rs. Early numbers +on a 100k-row, 98-page column chunk show **~50× faster +time-to-first-N** for `n ≤ 1 page` and **~9× faster** for `n` +spanning 10 pages, compared with the row-group-level Exact reverse +described above. The DataFusion-side integration that turns this +primitive into an `Exact` result is a follow-up and is gated on +the arrow-rs merge. [@2010YOUY01]: https://github.com/2010YOUY01 -[#9937]: https://github.com/apache/arrow-rs/pull/9937 -[#9934]: https://github.com/apache/arrow-rs/issues/9934 - One natural question: why not reverse the rows *within* a page directly? Because we can't. Parquet's page encodings (RLE, dictionary, delta, bit-packing) are all forward streams — you cannot decode the @@ -666,39 +648,42 @@ e.g. when file ranges genuinely overlap, or when the sort is on a function output rather than a plain column. The two directions are not alternatives; they compose: -* **`Exact` reverse for `ORDER BY ... DESC`.** Today's row-group +* [`Exact` reverse for `ORDER BY ... DESC`]. Today's row-group reverse returns `Inexact` and the `SortExec` stays on top; the - arrow-rs page-level reverse primitive ([#9937]) is what unlocks - `Exact` reverse on `DESC` queries (and therefore full `SortExec` - elimination on `DESC`). Memory + first-batch latency rule out doing - the same thing at the row-group level. Gated on #9937. -* **Dynamic / TopK-driven path.** When `Exact` cannot fire, `TopK`'s - [dynamic filter][dyn-filters-blog] still benefits enormously from - reading the *best* data first. This thread also builds on the - [limit pruning][limit-pruning-blog] work that turned `LIMIT` into - an I/O optimization across the pruning pipeline. The - recently-merged morsel-style work scheduling in `FileStream` - ([#21351]) gives sibling partitions a *shared work queue* with + arrow-rs page-level reverse primitive is what unlocks `Exact` + reverse on `DESC` queries (and therefore full `SortExec` + elimination on `DESC`). Memory + first-batch latency rule out + doing the same thing at the row-group level. Gated on the + arrow-rs side. +* **Dynamic / TopK-driven path.** When `Exact` cannot fire, + `TopK`'s [dynamic filter][dyn-filters-blog] still benefits + enormously from reading the *best* data first. This thread also + builds on the [limit pruning][limit-pruning-blog] work that + turned `LIMIT` into an I/O optimization across the pruning + pipeline. The recently-merged [morsel-style work scheduling] in + `FileStream` gives sibling partitions a *shared work queue* with file-level work-stealing — no CPU sits idle when one partition - runs out of files. The proposed [#21733] sorts files in - that shared queue by per-file statistics *before* any partition - picks, so the first file read is globally optimal and tightens the - dynamic filter immediately. Combined with **TopK threshold init from - parquet statistics** ([#21712]) and **`try_pushdown_sort` driving - runtime row-group / file reorder + reverse** ([#21956], landed), - the threshold can be set before reading a single byte. The reorder + runs out of files. The proposed + [global file reorder in the shared queue] sorts files in that + shared queue by per-file statistics *before* any partition + picks, so the first file read is globally optimal and tightens + the dynamic filter immediately. Combined with + [TopK threshold init from parquet statistics] and the runtime + row-group / file reorder + reverse path described above, the + threshold can be set before reading a single byte. The reorder mechanism applies to any `ORDER BY [LIMIT N]` on - parquet, not just TopK queries with a dynamic filter. The combined statistics-driven `TopK` pipeline is in flight - as [#21580]. + parquet, not just TopK queries with a dynamic filter. The + [combined statistics-driven `TopK` pipeline] is in flight. The mechanism here is **RG-level pruning, not mid-stream early return**. With the threshold known up front, the parquet - `PruningPredicate` rejects entire row groups against their min/max - statistics before any I/O — those row groups are never decoded. - The row group(s) the reader *does* open still have their sort - column decoded in full to feed the dynamic filter. On the #21580 - microbenchmark (single file, 61 sorted row groups, `--partitions 1`), - **60 of the 61 row groups are skipped** and only one is decoded: + `PruningPredicate` rejects entire row groups against their + min/max statistics before any I/O — those row groups are never + decoded. The row group(s) the reader *does* open still have + their sort column decoded in full to feed the dynamic filter. + On the in-flight microbenchmark (single file, 61 sorted row + groups, `--partitions 1`), **60 of the 61 row groups are + skipped** and only one is decoded: | Query | Baseline | With pipeline | Speedup | | ------------------------------ | -------: | ------------: | ------: | @@ -709,81 +694,81 @@ not alternatives; they compose: The stack reports `Inexact` — the `SortExec` stays on top to enforce correctness across overlapping ranges — so this path - cannot do *true* mid-stream early return. Once the parquet reader - opens a row group, the sort column has to be decoded all the way - through; once a `FileStream` picks up a file from the shared work - queue, it has to finish that file. Today's dynamic work scheduling - ([#21351]) is **file-granular**: idle partitions stop pulling - new files from the queue once a global limit is satisfied, but - the partition that's currently inside a file decodes that file's - remaining row groups regardless. Mid-file RG-level early return - on `TopK` convergence is **not implemented yet** — the work - queue holds `PartitionedFile`, not row-group descriptors. - - Closing the tap the moment `TopK` has K confirmed winners therefore - needs either: - - * the **`Exact` path**, where the `SortExec` is gone entirely and - the data source's own `fetch` becomes a static limit that the - reader can honour at batch granularity; or + cannot do *true* mid-stream early return. Once the parquet + reader opens a row group, the sort column has to be decoded all + the way through; once a `FileStream` picks up a file from the + shared work queue, it has to finish that file. Today's dynamic + work scheduling is **file-granular**: idle partitions stop + pulling new files from the queue once a global limit is + satisfied, but the partition that's currently inside a file + decodes that file's remaining row groups regardless. Mid-file + RG-level early return on `TopK` convergence is **not implemented + yet** — the work queue holds `PartitionedFile`, not row-group + descriptors. + + Closing the tap the moment `TopK` has K confirmed winners + therefore needs either: + + * the **`Exact` path**, where the `SortExec` is gone entirely + and the data source's own `fetch` becomes a static limit that + the reader can honour at batch granularity; or * **finer-grained dynamic scheduling** — having the shared queue - hold row-group descriptors instead of whole files, so a partition - can release its current file's remaining row groups back to the - pool once a global signal says enough TopK winners have been - found. This is a natural extension of [#21351] and [#21733] but - is not yet on a PR. - - The three mechanisms compose. Stats pruning saves the row groups - that *can't* matter (skipped without I/O). The dynamic filter - narrows what's decoded inside the row groups the reader does - open. `Exact` or finer-grained scheduling is what eventually - closes the tap once `TopK` is satisfied. -* **Filtered reverse TopK end-to-end.** `WHERE filter ORDER BY ts - DESC LIMIT N` is the dominant observability query shape and the - one where the arrow-rs page-reverse primitive matters most: - `RowSelection::with_limit` cannot pre-compute the last `N` matching - rows when the filter is selective, so the only correct strategy is - to stream pages backward, evaluate the filter, and stop when `N` - matches are collected. The DataFusion-side integration is the - follow-up to #9937. -* **Unifying `EnforceDistribution` and `EnforceSorting`** into a - single `EnsureRequirements` rule ([#21976]). The two existing rules - are coupled through `SortExec.preserve_partitioning`, which makes + hold row-group descriptors instead of whole files, so a + partition can release its current file's remaining row groups + back to the pool once a global signal says enough TopK + winners have been found. A natural extension of the existing + morsel work but not yet on a PR. + + The three mechanisms compose. Stats pruning saves the row + groups that *can't* matter (skipped without I/O). The dynamic + filter narrows what's decoded inside the row groups the reader + does open. `Exact` or finer-grained scheduling is what + eventually closes the tap once `TopK` is satisfied. +* **Filtered reverse `TopK` end-to-end.** `WHERE filter ORDER BY + ts DESC LIMIT N` is the dominant observability query shape and + the one where the arrow-rs page-reverse primitive matters most: + `RowSelection::with_limit` cannot pre-compute the last `N` + matching rows when the filter is selective, so the only correct + strategy is to stream pages backward, evaluate the filter, and + stop when `N` matches are collected. The DataFusion-side + integration is a follow-up to the arrow-rs primitive. +* [Unifying `EnforceDistribution` and `EnforceSorting`] into a + single `EnsureRequirements` rule. The two existing rules are + coupled through `SortExec.preserve_partitioning`, which makes their composition non-idempotent and has caused a class of production bugs. Other engines (Spark's `EnsureRequirements`, - Trino's `AddExchanges`) handle both in a single rule. Merging them - also gives future sort-related optimizations a single coherent place - to live. In progress. -* **OFFSET pushdown to parquet** ([#21828]) so `ORDER BY ts LIMIT K - OFFSET N` queries can skip the first `N` rows at the row-group level + Trino's `AddExchanges`) handle both in a single rule. Merging + them also gives future sort-related optimizations a single + coherent place to live. In progress. +* [OFFSET pushdown to parquet] so `ORDER BY ts LIMIT K OFFSET N` + queries can skip the first `N` rows at the row-group level instead of decoding and discarding them. In progress. -* **Multi-column and function-wrapped reorder follow-ups** ([#22198]). - The reorder mechanism in #21956 currently only uses the leading - sort key and only fires on plain columns. Lexicographic multi-key - reorder via `arrow::compute::lexsort_to_indices` is low-hanging - fruit; extending to monotonic function wrappers via leaf-column - extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs a - bit more `EquivalenceProperties` integration but is doable. - -[#21976]: https://github.com/apache/datafusion/pull/21976 -[#21956]: https://github.com/apache/datafusion/pull/21956 -[#22198]: https://github.com/apache/datafusion/issues/22198 -[#21712]: https://github.com/apache/datafusion/pull/21712 -[#21580]: https://github.com/apache/datafusion/pull/21580 -[#21828]: https://github.com/apache/datafusion/pull/21828 -[#21351]: https://github.com/apache/datafusion/pull/21351 -[#21733]: https://github.com/apache/datafusion/issues/21733 +* [Multi-column and function-wrapped reorder follow-ups]. The + reorder mechanism currently only uses the leading sort key and + only fires on plain columns. Lexicographic multi-key reorder + via `arrow::compute::lexsort_to_indices` is low-hanging fruit; + extending to monotonic function wrappers via leaf-column + extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs + a bit more `EquivalenceProperties` integration but is doable. + +[`Exact` reverse for `ORDER BY ... DESC`]: https://github.com/apache/arrow-rs/pull/9937 +[morsel-style work scheduling]: https://github.com/apache/datafusion/pull/21351 +[global file reorder in the shared queue]: https://github.com/apache/datafusion/issues/21733 +[TopK threshold init from parquet statistics]: https://github.com/apache/datafusion/pull/21712 +[combined statistics-driven `TopK` pipeline]: https://github.com/apache/datafusion/pull/21580 +[Unifying `EnforceDistribution` and `EnforceSorting`]: https://github.com/apache/datafusion/pull/21976 +[OFFSET pushdown to parquet]: https://github.com/apache/datafusion/pull/21828 +[Multi-column and function-wrapped reorder follow-ups]: https://github.com/apache/datafusion/issues/22198 Concretely useful issues for new contributors: -* [#17348] — the umbrella issue for sort pushdown. -* [#21317] — sort pushdown: reorder row groups by statistics within - each file. -* [#19394] — add more `ExecutionPlan` impls to support sort pushdown. +* [Umbrella issue for sort pushdown][umbrella-issue]. +* [Reorder row groups by statistics within each file][rg-reorder-issue]. +* [Add more `ExecutionPlan` impls to support sort pushdown][more-impls-issue]. -[#17348]: https://github.com/apache/datafusion/issues/17348 -[#21317]: https://github.com/apache/datafusion/issues/21317 -[#19394]: https://github.com/apache/datafusion/issues/19394 +[umbrella-issue]: https://github.com/apache/datafusion/issues/17348 +[rg-reorder-issue]: https://github.com/apache/datafusion/issues/21317 +[more-impls-issue]: https://github.com/apache/datafusion/issues/19394 ## Acknowledgements @@ -806,18 +791,26 @@ Prior posts this work builds on: * [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. * [Turning LIMIT into an I/O Optimization: Inside DataFusion's Multi-Layer Pruning Stack][limit-pruning-blog] — the pruning pipeline this work plugs into. -Issues and PRs: - -* Umbrella issue: [apache/datafusion#17348][#17348] -* `MinMaxStatistics` foundation: [apache/datafusion#9593][#9593] -* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064][#19064] -* Sort elimination via statistics: [apache/datafusion#21182][#21182] -* Runtime reorder for TopK convergence: [apache/datafusion#21956][#21956] -* `BufferExec` capacity for sort elimination: [apache/datafusion#21426][#21426] -* Dynamic / TopK-driven path: [apache/datafusion#21351][#21351] (morsel-style work scheduling), - [apache/datafusion#21733][#21733] (global file reorder in shared queue) -* Benchmark suite: [`sort_pushdown`] -* Row-group reverse scan: [apache/datafusion#18817][#18817] -* Page-level reverse (arrow-rs): [apache/arrow-rs#9934][#9934], - [apache/arrow-rs#9937][#9937] -* `EnsureRequirements`: [apache/datafusion#21976][#21976] +Landed PRs that make up this work: + +* `MinMaxStatistics` foundation: [apache/datafusion#9593](https://github.com/apache/datafusion/pull/9593) +* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064](https://github.com/apache/datafusion/pull/19064) +* Reverse-output redesign: [apache/datafusion#19446](https://github.com/apache/datafusion/pull/19446), [apache/datafusion#19557](https://github.com/apache/datafusion/pull/19557) +* Sort elimination via statistics: [apache/datafusion#21182](https://github.com/apache/datafusion/pull/21182) +* `BufferExec` capacity for sort elimination: [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) +* Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) +* Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) +* Row-group-level `Inexact` reverse: [apache/datafusion#18817](https://github.com/apache/datafusion/pull/18817) + +In flight / open: + +* Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) +* `EnsureRequirements`: [apache/datafusion#21976](https://github.com/apache/datafusion/pull/21976) +* OFFSET pushdown to parquet: [apache/datafusion#21828](https://github.com/apache/datafusion/pull/21828) +* TopK threshold init from parquet statistics: [apache/datafusion#21712](https://github.com/apache/datafusion/pull/21712) +* Combined statistics-driven `TopK` pipeline: [apache/datafusion#21580](https://github.com/apache/datafusion/pull/21580) +* Global file reorder in shared queue: [apache/datafusion#21733](https://github.com/apache/datafusion/issues/21733) +* Multi-column / function-wrapped reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) +* Umbrella issue for sort pushdown: [apache/datafusion#17348](https://github.com/apache/datafusion/issues/17348) + +Benchmark suite: [`sort_pushdown`] From 5fd2f615b258fe1b79049431fc095387bd1184f6 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 15:24:39 +0800 Subject: [PATCH 10/79] Restructure: split into merged-features / bottlenecks / roadmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous draft mixed merged work, in-flight work, and runtime-cost analysis into a single 'Reverse Scans' section and a sprawling 'What's Next' section. Reorganize so the post answers three clear questions in sequence: 1. What's merged today? (Sort Elimination via Statistics + benchmark, Runtime Reorder for TopK Convergence, Reverse Scans for DESC) — unchanged content, just kept tight. 2. Where do those merged features still leave performance on the table? New 'Current Bottlenecks' section with three explicitly numbered bottlenecks: SortExec stays / sort column fully decoded inside open RG / file-granular scheduling can't close the tap mid-file. Pulls in the runtime-cost content that used to be buried in an 'Empirical note' subsection. 3. How does each next-step optimization remove a specific bottleneck? New 'Roadmap' section maps page-level Exact reverse to bottlenecks 1+2, row-group-level dynamic early termination to bottleneck 3, and shows the in-flight 17x-60x pipeline benchmark as a preview of what stacking these mechanisms can deliver. Smaller follow-ups (EnsureRequirements, OFFSET pushdown, multi-column reorder) collected at the end of the roadmap section as a short 'Other follow-ups' bullet list. --- content/blog/2026-05-25-sort-pushdown.md | 365 ++++++++++------------- 1 file changed, 152 insertions(+), 213 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 8e12170c..7306d21a 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -511,118 +511,107 @@ row groups can be skipped via min/max statistics. This ships today and is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted files. -To turn this into `Exact` reverse — so the `SortExec` can be removed -outright — each emitted batch itself has to be in DESC order. The -straightforward row-group-level approach (decode an entire RG forward, -materialize all rows, reverse the buffer, then emit) is correct and -was actually proposed first, in an earlier iteration of this work -that was later closed and split into smaller pieces. Review -feedback there — primarily from [@2010YOUY01] — flagged the memory -profile as too aggressive: caching an entire row group's worth of -decoded rows before any batch can be emitted is roughly: - -* **Peak buffer of one whole row group** (~128 MB by default), versus - the few-MB-per-batch streaming profile readers normally have. -* **First-batch latency = full last-row-group decode**. For - `ORDER BY ts DESC LIMIT 10` that means decoding ~1 million rows to - return 10 — defeating the point of the `LIMIT`. - -The agreed direction coming out of that discussion was to ship the -narrower `Inexact` row-group-reverse first, and to build `Exact` -reverse on a finer-grained primitive once `arrow-rs` exposed one. - -### Empirical note — runtime cost of `Inexact` + `TopK` - -We run an internal row-group-level `Exact` reverse implementation in -production and tested swapping in upstream's `Inexact` row-group -reverse + `TopK` on `ORDER BY ts DESC LIMIT N` queries. End-to-end -latency went **up**, not down. A few cost components stack up on the -`Inexact` + `TopK` side: - -* **`LIMIT N` does not propagate as a static stop signal to the - source.** In the `Inexact` path the `SortExec` stays on top and - `TopK`'s fetch belongs to `SortExec`, not to the parquet scan. The - only mechanism that can cut work below the `SortExec` is the - dynamic-filter pushdown: as the heap fills, the filter (`ts > - threshold`) is pushed to the source and its threshold tightens - with every batch. That filter is enough to **stats-prune - subsequent, not-yet-opened row groups** entirely — if a row - group's `max(ts) < threshold` it is skipped without decode. But - inside the row group the source is currently reading, the - filter pushdown does not unwind to "stop": the sort column has - to be **fully decoded** so the filter can be evaluated row by - row, the surviving rows feed the heap to tighten the threshold, - and only then can the resulting `RowSelection` skip the *other* - columns for rows that didn't pass. For - `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that is still - ~1M sort-column decodes regardless of `N`; the LIMIT only saves - work on non-sort columns inside the same row group and on whole - *subsequent* row groups that the tightened threshold can prune. - The internal RG-level `Exact` reverse path, by contrast, deletes - the `SortExec` so the LIMIT becomes a static fetch on the source. - The source still has to decode the target row group in full — - parquet does not allow partial row-group reads, so this part is - the same as `Inexact` — but it then reverses the buffer in - memory, takes the first K rows, and **stops**. No subsequent row - group is opened, no stats check, no filter machinery, no per-row - heap maintenance, no `SortExec` final ordering pass. The wins - come from removing those per-row and per-RG overheads on top, not - from decoding less sort-column data on the target row group. -* **`SortExec` itself adds ordering work on top of `Inexact`.** The - reversed-RG stream is not strictly DESC (rows within each RG are - still forward), so `Inexact` keeps the surrounding `SortExec`. - Even when the heap is settled and the dynamic filter has - pruned the tail, the outer operator does its own final ordering - pass — overhead that `Exact` (which deletes the `SortExec`) - does not pay. - -Why didn't we just upstream the internal `Exact` reverse, then? -**Memory.** Parquet does not allow reading only part of a row -group, so any RG-level `Exact` implementation — ours included — -has to decode the entire row group, reverse the buffer in -memory, and only then emit. That is the same memory profile that -got the earlier RG-level proposal rejected: a peak of one whole -row group (~128 MB) of decoded data, vs. the few-MB-per-batch -streaming profile readers normally have. Our runtime advantage -over `Inexact` + `TopK` does *not* come from decoding less — -both paths decode the relevant row group's sort column in full — -it comes from skipping the per-row heap maintenance, the dynamic -filter evaluation, and the `SortExec` final ordering pass that -`Inexact` keeps on top. So we end up running our `Exact` reverse -in-house but cannot land it as the upstream default, for the -same memory reason that closed the earlier proposal. - -**The fix that keeps both the runtime win and a streaming memory -profile is page-level `Exact` reverse via arrow-rs**, described -next. - -That primitive is the **page-level** reverse traversal. Parquet's -`OffsetIndex` already gives us byte-precise locations for every data -page in a column chunk, so we can `seek` directly to the last page, -decode it forward, reverse the resulting batch, and emit. Peak buffer -drops to one page (~1 MB) and first-batch latency drops to the cost -of one page decode — the row-group-level memory cliff disappears. - -We are landing this primitive upstream in arrow-rs. Early numbers -on a 100k-row, 98-page column chunk show **~50× faster -time-to-first-N** for `n ≤ 1 page` and **~9× faster** for `n` -spanning 10 pages, compared with the row-group-level Exact reverse -described above. The DataFusion-side integration that turns this -primitive into an `Exact` result is a follow-up and is gated on -the arrow-rs merge. +Why not full `Exact` reverse, which would delete the `SortExec` +outright? An earlier proposal — primarily reviewed by +[@2010YOUY01] — that decoded an entire row group forward, +materialized all rows, reversed the buffer, then emitted was +correct but had a prohibitive memory profile: a peak of one whole +row group (~128 MB) of decoded data vs. the few-MB-per-batch +streaming profile readers normally have. The agreed direction was +to ship the narrower `Inexact` row-group-reverse first, and to +build `Exact` reverse on a finer-grained primitive once `arrow-rs` +exposed one. The bottleneck section below details what that +`Inexact`-keeps-`SortExec` decision costs at runtime, and the +roadmap section after it describes how the page-level primitive +removes the cost. [@2010YOUY01]: https://github.com/2010YOUY01 -One natural question: why not reverse the rows *within* a page -directly? Because we can't. Parquet's page encodings (RLE, dictionary, -delta, bit-packing) are all forward streams — you cannot decode the -last value without decoding every value that came before it. The -design therefore is: **reverse the page traversal, forward-decode -each page, reverse the resulting RecordBatch**. This is the algorithm -shape DataFusion's `RecordBatchReader` integration will use once -arrow-rs ships the primitive. +## Current Bottlenecks + +Stats-based **sort elimination** removes the `SortExec` entirely +when ranges are non-overlapping — there's nothing more to optimize +on that path. But the `Inexact` paths (**runtime reorder** for +`TopK`, and **row-group reverse** for `DESC`) leave three concrete +inefficiencies on the table when `Exact` cannot fire: + +### Bottleneck 1: `SortExec` stays on top, so `LIMIT N` does not propagate as a static stop signal + +In the `Inexact` path the `SortExec` stays in the plan and +`TopK`'s fetch belongs to `SortExec`, not to the parquet scan. +The only thing that can cut work below the `SortExec` is the +dynamic-filter pushdown: as the heap fills, the filter +(`ts > threshold`) is pushed to the source and its threshold +tightens with every batch. That filter does **stats-prune +subsequent, not-yet-opened row groups** — if a row group's +`max(ts) < threshold` it is skipped without decode. But the +`SortExec` keeps pulling batches, and the outer operator does its +own final ordering pass on the "RGs descending × rows ascending" +stream even after the heap is settled. We have measured this +in-house: swapping our internal `Exact` reverse for upstream's +`Inexact` reverse + `TopK` on `ORDER BY ts DESC LIMIT N` makes +end-to-end latency go **up**, not down — exactly because the +`SortExec` final pass and the per-row heap maintenance pile up on +top. + +### Bottleneck 2: Inside the currently-open row group, the sort column is fully decoded + +Even with the dynamic filter pushed all the way to parquet, the +filter has to be evaluated row-by-row inside the open row group: +the sort column has to be **fully decoded** so each value can be +compared against the threshold, the surviving rows feed the heap +to tighten the threshold, and only then can the resulting +`RowSelection` skip the *other* columns for rows that didn't +pass. For `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that +is ~1M sort-column decodes regardless of `N`. Parquet doesn't +allow partial row-group reads, so even an RG-level `Exact` +reverse would pay this same cost — the only way to materially +reduce it is to drop to page granularity. + +### Bottleneck 3: File-granular work scheduling can't close the tap mid-file + +Once a `FileStream` picks up a file from the shared work queue, +it has to finish that file. Today's dynamic work scheduling is +**file-granular**: idle partitions stop pulling new files from +the queue once a global limit is satisfied, but the partition +that's currently inside a file decodes that file's remaining row +groups regardless. The work queue holds `PartitionedFile`, not +row-group descriptors. So even with a tight threshold and +aggressive stats pruning of un-opened row groups, the *currently +open* file gets read to completion. + +## Roadmap: Removing the Bottlenecks + +### Page-level `Exact` reverse — addresses bottlenecks 1 + 2 + +Parquet's `OffsetIndex` gives us byte-precise locations for every +data page in a column chunk, so we can `seek` directly to the last +page, decode it forward, reverse the resulting batch, and emit. +Peak buffer drops from ~128 MB (one row group) to ~1 MB (one +page), and first-batch latency drops to the cost of one page +decode — the row-group-level memory cliff disappears. With each +batch already in DESC order, `PushdownSort` can finally return +`Exact` for `DESC` requests, the `SortExec` is removed, and +`LIMIT N` becomes a static fetch on the source. The +`Inexact`-final-ordering-pass overhead from Bottleneck 1 goes +away outright, and the Bottleneck-2 decode reduces to the rows +the page-level seek actually pulls in. + +Why not reverse the rows *within* a page directly? Because we +can't. Parquet's page encodings (RLE, dictionary, delta, +bit-packing) are all forward streams — you cannot decode the last +value without decoding every value that came before it. The +design is: **reverse the page traversal, forward-decode each +page, reverse the resulting `RecordBatch`**. + +The primitive is landing upstream in arrow-rs. Early numbers on a +100k-row, 98-page column chunk show **~50× faster +time-to-first-N** for `n ≤ 1 page` and **~9× faster** for `n` +spanning 10 pages, compared with the row-group-level `Exact` +reverse. The DataFusion-side integration that turns this primitive +into an `Exact` result is a follow-up gated on the arrow-rs merge. -The killer use case is **filtered reverse TopK**: +The killer use case is **filtered reverse `TopK`**: ```sql SELECT * FROM events @@ -631,115 +620,66 @@ ORDER BY ts DESC LIMIT 10 ``` -Here `RowSelection::with_limit` cannot help — you don't know in -advance which rows match `user_id = 42`, so you can't pre-compute a -selection of the "last 10 matching rows". The only correct strategy -is to stream pages backward, evaluate the filter on each, and stop -when 10 matches are collected. Row-group reverse stops at a -~128 MB granularity. Page reverse stops at ~1 MB granularity. For a -selective filter, the saving compounds. - -## What's Next - -Sort pushdown is a long-running line of work and there is more to do. -Beyond the `Exact` path described above, there is a complementary -**dynamic / TopK-driven path** that helps when `Exact` cannot apply — -e.g. when file ranges genuinely overlap, or when the sort is on a -function output rather than a plain column. The two directions are -not alternatives; they compose: - -* [`Exact` reverse for `ORDER BY ... DESC`]. Today's row-group - reverse returns `Inexact` and the `SortExec` stays on top; the - arrow-rs page-level reverse primitive is what unlocks `Exact` - reverse on `DESC` queries (and therefore full `SortExec` - elimination on `DESC`). Memory + first-batch latency rule out - doing the same thing at the row-group level. Gated on the - arrow-rs side. -* **Dynamic / TopK-driven path.** When `Exact` cannot fire, - `TopK`'s [dynamic filter][dyn-filters-blog] still benefits - enormously from reading the *best* data first. This thread also - builds on the [limit pruning][limit-pruning-blog] work that - turned `LIMIT` into an I/O optimization across the pruning - pipeline. The recently-merged [morsel-style work scheduling] in - `FileStream` gives sibling partitions a *shared work queue* with - file-level work-stealing — no CPU sits idle when one partition - runs out of files. The proposed - [global file reorder in the shared queue] sorts files in that - shared queue by per-file statistics *before* any partition - picks, so the first file read is globally optimal and tightens - the dynamic filter immediately. Combined with - [TopK threshold init from parquet statistics] and the runtime - row-group / file reorder + reverse path described above, the - threshold can be set before reading a single byte. The reorder - mechanism applies to any `ORDER BY [LIMIT N]` on - parquet, not just TopK queries with a dynamic filter. The - [combined statistics-driven `TopK` pipeline] is in flight. - - The mechanism here is **RG-level pruning, not mid-stream early - return**. With the threshold known up front, the parquet - `PruningPredicate` rejects entire row groups against their - min/max statistics before any I/O — those row groups are never - decoded. The row group(s) the reader *does* open still have - their sort column decoded in full to feed the dynamic filter. - On the in-flight microbenchmark (single file, 61 sorted row - groups, `--partitions 1`), **60 of the 61 row groups are - skipped** and only one is decoded: - - | Query | Baseline | With pipeline | Speedup | - | ------------------------------ | -------: | ------------: | ------: | - | `ORDER BY col DESC LIMIT 100` | 28.5 ms | 1.64 ms | **17×** | - | `ORDER BY col DESC LIMIT 1000` | 22.2 ms | 0.37 ms | **60×** | - | `SELECT * ORDER BY ... LIMIT 100` | 22.5 ms | 0.66 ms | **34×** | - | `SELECT * ORDER BY ... LIMIT 1000` | 22.4 ms | 0.61 ms | **37×** | - - The stack reports `Inexact` — the `SortExec` stays on top to - enforce correctness across overlapping ranges — so this path - cannot do *true* mid-stream early return. Once the parquet - reader opens a row group, the sort column has to be decoded all - the way through; once a `FileStream` picks up a file from the - shared work queue, it has to finish that file. Today's dynamic - work scheduling is **file-granular**: idle partitions stop - pulling new files from the queue once a global limit is - satisfied, but the partition that's currently inside a file - decodes that file's remaining row groups regardless. Mid-file - RG-level early return on `TopK` convergence is **not implemented - yet** — the work queue holds `PartitionedFile`, not row-group - descriptors. - - Closing the tap the moment `TopK` has K confirmed winners - therefore needs either: - - * the **`Exact` path**, where the `SortExec` is gone entirely - and the data source's own `fetch` becomes a static limit that - the reader can honour at batch granularity; or - * **finer-grained dynamic scheduling** — having the shared queue - hold row-group descriptors instead of whole files, so a - partition can release its current file's remaining row groups - back to the pool once a global signal says enough TopK - winners have been found. A natural extension of the existing - morsel work but not yet on a PR. - - The three mechanisms compose. Stats pruning saves the row - groups that *can't* matter (skipped without I/O). The dynamic - filter narrows what's decoded inside the row groups the reader - does open. `Exact` or finer-grained scheduling is what - eventually closes the tap once `TopK` is satisfied. -* **Filtered reverse `TopK` end-to-end.** `WHERE filter ORDER BY - ts DESC LIMIT N` is the dominant observability query shape and - the one where the arrow-rs page-reverse primitive matters most: - `RowSelection::with_limit` cannot pre-compute the last `N` - matching rows when the filter is selective, so the only correct - strategy is to stream pages backward, evaluate the filter, and - stop when `N` matches are collected. The DataFusion-side - integration is a follow-up to the arrow-rs primitive. +`RowSelection::with_limit` cannot help here — you don't know in +advance which rows match `user_id = 42`, so you can't pre-compute +a selection of the "last 10 matching rows". The only correct +strategy is to stream pages backward, evaluate the filter on +each, and stop when 10 matches are collected. Row-group reverse +stops at a ~128 MB granularity. Page reverse stops at ~1 MB +granularity. For a selective filter, the saving compounds. + +### Row-group-level dynamic early termination — addresses bottleneck 3 + +The work queue today holds `PartitionedFile`. Switching it to +hold **row-group descriptors** instead lets a partition release +its current file's remaining row groups back to the pool the +moment a global signal says enough `TopK` winners have been +found. A natural extension of the existing morsel-style work +scheduling but not yet on a PR. + +The two roadmap items above are *complementary*, not +alternatives: + +* `Exact` reverse closes the tap for `DESC` queries by removing + the `SortExec` entirely. +* Row-group-level scheduling closes the tap for `Inexact` queries + where `Exact` still cannot fire (function-wrapped sorts, + overlapping ranges) — the `SortExec` stays, but the scan stops + pulling row groups once `TopK` is satisfied. + +### Preview: the combined statistics-driven `TopK` pipeline + +The [combined statistics-driven `TopK` pipeline] is the in-flight +work that stacks several of these mechanisms: pre-scan +[TopK threshold init from parquet statistics], +[global file reorder in the shared queue], and the runtime +row-group / file reorder + reverse already merged. On a +microbenchmark (single file, 61 sorted row groups, `--partitions 1`) +**60 of the 61 row groups are skipped**, only one is decoded: + +| Query | Baseline | With pipeline | Speedup | +| ------------------------------ | -------: | ------------: | ------: | +| `ORDER BY col DESC LIMIT 100` | 28.5 ms | 1.64 ms | **17×** | +| `ORDER BY col DESC LIMIT 1000` | 22.2 ms | 0.37 ms | **60×** | +| `SELECT * ORDER BY ... LIMIT 100` | 22.5 ms | 0.66 ms | **34×** | +| `SELECT * ORDER BY ... LIMIT 1000` | 22.4 ms | 0.61 ms | **37×** | + +This pipeline still reports `Inexact` — the `SortExec` stays on +top to enforce correctness across overlapping ranges — so it pays +the Bottleneck-1 and Bottleneck-3 overheads listed above. The +17×–60× is what statistics-driven RG-level pruning alone can +deliver; `Exact` reverse + row-group-level early termination is +what pushes it further. + +### Other follow-ups + * [Unifying `EnforceDistribution` and `EnforceSorting`] into a single `EnsureRequirements` rule. The two existing rules are coupled through `SortExec.preserve_partitioning`, which makes their composition non-idempotent and has caused a class of production bugs. Other engines (Spark's `EnsureRequirements`, - Trino's `AddExchanges`) handle both in a single rule. Merging - them also gives future sort-related optimizations a single - coherent place to live. In progress. + Trino's `AddExchanges`) handle both in a single rule. In + progress. * [OFFSET pushdown to parquet] so `ORDER BY ts LIMIT K OFFSET N` queries can skip the first `N` rows at the row-group level instead of decoding and discarding them. In progress. @@ -751,7 +691,6 @@ not alternatives; they compose: extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs a bit more `EquivalenceProperties` integration but is doable. -[`Exact` reverse for `ORDER BY ... DESC`]: https://github.com/apache/arrow-rs/pull/9937 [morsel-style work scheduling]: https://github.com/apache/datafusion/pull/21351 [global file reorder in the shared queue]: https://github.com/apache/datafusion/issues/21733 [TopK threshold init from parquet statistics]: https://github.com/apache/datafusion/pull/21712 From 1862d8ffc142538bc9e234a484bcbcbaf353dc9c Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 15:29:27 +0800 Subject: [PATCH 11/79] Tighten verbose paragraphs; drop unrelated limit-pruning blog reference MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 'Why not full Exact reverse' paragraph: cut reviewer attribution and forward-pointers that were already in the bottleneck/roadmap sections that follow. - TL;DR: trim Runtime Reorder + Reverse Scans bullets to capability and impact; drop implementation mechanics like 'stamps two flags' and 'three-step pipeline'. - 'The PushdownSort Rule' section: cut three paragraphs of 'covered in X below' forward-references that were repeating the section TOC. - Function-wrapped parenthetical in Sort Elimination: 4 lines to 2. - Single-partition vs multi-partition edge case: drop the trailing 'which is why the example is drawn that way' tangent. - 'What this change does not affect' note: trimmed redundant prose. - Remove all references to the limit-pruning blog (intro mention, link definition, References section bullet) — that work is about static LIMIT as an I/O optimization, separate problem from sort ordering. --- content/blog/2026-05-25-sort-pushdown.md | 116 ++++++++--------------- 1 file changed, 41 insertions(+), 75 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 7306d21a..d7bbdbff 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -72,20 +72,16 @@ further still. upgrades the source's ordering claim from `Unsupported` to `Exact` and **removes the `SortExec`** that `EnforceSorting` inserted earlier. - * **Runtime reorder for `TopK` convergence** — whenever the - leading sort key is a plain column in the file schema (or the - source's reversed declared ordering satisfies the request), - `try_pushdown_sort` stamps two flags on the source and the - opener runs a three-step runtime pipeline — file-level reorder - in the shared morsel queue, row-group reorder by min/max stats, - then optional iteration reverse for `DESC` requests. `SortExec` - stays, but `TopK`'s dynamic filter tightens fast on the - most-promising data and the rest is pruned. + * **Runtime reorder for `TopK` convergence** — when the leading + sort key is a plain column (or the reversed source ordering + satisfies the request), the scan reorders files and row groups + by `min/max` stats so the most-promising data is read first. + `SortExec` stays, but `TopK`'s dynamic filter tightens fast + and the rest is pruned. * **Reverse scans for `ORDER BY ... DESC`** — a row-group-level - reverse returns `Inexact` (Sort stays, but `TopK` terminates - early). The page-level reverse primitive needed for `Exact` - reverse — and so for full `SortExec` removal on `DESC` queries - — is in flight in arrow-rs. + reverse returns `Inexact`. Full `SortExec` removal on `DESC` + requires a page-level reverse primitive that's in flight in + arrow-rs. * Real-world benchmarks on the `sort_pushdown` suite (`Exact` path): `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full `ORDER BY` scans get **~2×** faster. @@ -158,8 +154,8 @@ follow: heap tightens, the filter's threshold tightens with it, and entire row groups can be skipped by checking the live threshold against the row group's min/max statistics. (See the earlier - [dynamic filters][dyn-filters-blog] and [limit pruning][limit-pruning-blog] - posts for the full background on this mechanism.) + [dynamic filters][dyn-filters-blog] post for the full background + on this mechanism.) Both paths use the same underlying min/max statistics, but for different purposes: `Exact` uses them at plan time to prove @@ -167,7 +163,6 @@ non-overlap and justify removing the sort; `Inexact` uses them at runtime to skip row groups that can no longer improve the heap. [dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ -[limit-pruning-blog]: https://datafusion.apache.org/blog/2026/03/20/limit-pruning/ The diagram above shows the result we want: the plan after sort pushdown loses the `SortExec` node. Everything downstream — the @@ -178,32 +173,19 @@ producing the order requested. ## The `PushdownSort` Rule -The **`PushdownSort`** physical optimizer rule defines a uniform -API for asking each `ExecutionPlan` two questions: +The **`PushdownSort`** physical optimizer rule asks each +`ExecutionPlan` two questions: 1. "Can you produce output in *this* ordering?" 2. "If yes, please rearrange yourself so that it actually does." -The protocol uses three results — `Exact`, `Inexact`, `Unsupported` — -that downstream operators can interpret uniformly. The Parquet -`FileSource` answers by comparing the requested ordering against the -per-file declared ordering: if natural ordering satisfies the request, -it returns `Exact`; if the *reverse* of the declared ordering does, -it returns `Inexact` and flips on `reverse_row_groups=true` so the -scan reads row groups from last to first (the row-group-level reverse -covered later in this post); otherwise it returns `Unsupported`. - -The rule's initial scope was deliberately narrow. It set up the -API and delivered the reverse-scan case end-to-end, but did **not** -add any statistics-based file rearrangement — that came later, -covered in -[Sort Elimination via Statistics](#sort-elimination-via-statistics) -below. A finer-grained extension that broadens this `Inexact` path -with a three-step runtime reorder pipeline is covered in -[Runtime Reorder for TopK Convergence](#runtime-reorder-for-topk-convergence). - -The same rule also handles **reverse-output** for `DESC` queries — -picked up again in the reverse-scan section below. +The answer is one of `Exact`, `Inexact`, `Unsupported`. The Parquet +`FileSource` answers by comparing the requested ordering against +the per-file declared ordering: natural ordering satisfies → +`Exact`; reversed satisfies → `Inexact` (sets +`reverse_row_groups=true`); otherwise → `Unsupported`. The rest of +this post is what each merged capability does on top of this +protocol. ## Sort Elimination via Statistics @@ -264,11 +246,9 @@ is no per-file min/max for the function output to compare against. Extending sort pushdown across monotonic function wrappers is one of the open follow-ups. -*(The runtime reorder path covered later does let function-wrapped -sorts benefit from row-group iteration reverse via -`EquivalenceProperties`'s monotonicity inference, when the source -declares a compatible natural ordering — but stats-based sort -elimination still needs a plain column.)* +(Runtime reorder covered later does handle some function-wrapped +sorts via monotonicity inference — but stats-based sort elimination +still needs a plain column.) Detecting non-overlapping ranges via min/max statistics @@ -304,15 +284,12 @@ The implementation handles a few edge cases worth calling out: `SortPreservingMergeExec` then picks rows across streams in value order to produce the final globally sorted output. The rule only has to prove the per-stream property. -* **Single-partition vs multi-partition execution**. With the default - multi-partition setup, `EnforceDistribution` byte-range-splits files - into single-file groups, after which `validated_output_ordering()` - works correctly on its own. Stats-based reorder only triggers when - files have not been split — typically `--partitions 1` runs, or - files small enough that the splitter leaves them alone. In the - typical `--partitions 1` case the "per-group" distinction collapses - (one group equals the whole table), which is why the example earlier - in this section is drawn that way. +* **Single-partition vs multi-partition execution.** The default + multi-partition setup byte-range-splits files into single-file + groups, after which `validated_output_ordering()` works on its + own. Stats-based reorder only fires when files aren't split — + typically `--partitions 1` or files small enough that the + splitter leaves them alone. [`BufferExec`]: https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs [`sort_pushdown_buffer_capacity`]: https://github.com/apache/datafusion/pull/21426 @@ -352,12 +329,11 @@ removed: the runtime-difference section above. A 342 ms full-file scan collapses into a 7 ms K-row read. -It is worth saying explicitly what this change does **not** affect. -The default multi-partition execution path is unchanged: those plans -already produced correct orderings via byte-range splitting, so -stats-based sort elimination simply does not trigger. There is no -regression and no behavior change for the typical multi-threaded -query. +The default multi-partition execution path is unaffected: those +plans already produce correct orderings via byte-range splitting, +so stats-based sort elimination simply does not fire there. No +regression and no behavior change for typical multi-threaded +queries. ## Runtime Reorder for TopK Convergence @@ -511,21 +487,12 @@ row groups can be skipped via min/max statistics. This ships today and is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted files. -Why not full `Exact` reverse, which would delete the `SortExec` -outright? An earlier proposal — primarily reviewed by -[@2010YOUY01] — that decoded an entire row group forward, -materialized all rows, reversed the buffer, then emitted was -correct but had a prohibitive memory profile: a peak of one whole -row group (~128 MB) of decoded data vs. the few-MB-per-batch -streaming profile readers normally have. The agreed direction was -to ship the narrower `Inexact` row-group-reverse first, and to -build `Exact` reverse on a finer-grained primitive once `arrow-rs` -exposed one. The bottleneck section below details what that -`Inexact`-keeps-`SortExec` decision costs at runtime, and the -roadmap section after it describes how the page-level primitive -removes the cost. - -[@2010YOUY01]: https://github.com/2010YOUY01 +Why not full `Exact` reverse that deletes the `SortExec`? +Decoding a whole row group forward, reversing the buffer, and +emitting works — but peaks at ~128 MB vs. the few-MB-per-batch +streaming profile readers expect. `Exact` reverse waits on a +page-level primitive that keeps the runtime win on a streaming +memory budget — see the roadmap below. ## Current Bottlenecks @@ -725,10 +692,9 @@ invariants — is what made this work possible. ## References -Prior posts this work builds on: +Prior post this work builds on: * [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. -* [Turning LIMIT into an I/O Optimization: Inside DataFusion's Multi-Layer Pruning Stack][limit-pruning-blog] — the pruning pipeline this work plugs into. Landed PRs that make up this work: From 1da0e0755a9045adc732c52565975f2df90680cf Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 15:56:55 +0800 Subject: [PATCH 12/79] Fold reverse as case of Inexact runtime reorder; make two-trigger asymmetry explicit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per code in datasource-parquet/src/source.rs:849-870, the reversed- satisfies branch is 'strictly more powerful than the column-in-schema check' — it runs the request through EquivalenceProperties's full reasoning machinery and handles function monotonicity, constants from filters, equivalence relationships, and multi-column composite orderings. The blog had been treating reverse as just step 3 of the runtime pipeline, which undersold its standalone reach. Structural changes: - Drop the standalone 'Reverse Scans for ORDER BY DESC' H2 section; reverse is now a case of the Inexact runtime reorder path. - Rename Runtime Reorder section to 'Runtime Reorder for TopK and DESC Queries'; intro now lists three classes that fall outside Exact (unsorted, overlapping, DESC). - 'try_pushdown_sort' subsection rewritten as 'Two independent triggers for Inexact', describing column-in-schema vs reversed- satisfies as separate signals with the latter being strictly more powerful. - 'Three runtime steps' subsection: step 3 now explicitly notes when steps 1-2 are skipped and only the iteration reverse runs. - New 'ORDER BY DESC in practice' subsection right after the 3-step pipeline, explaining the RGs-descending-x-rows-ascending stream. - Move reverse-scan.svg from the deleted Reverse Scans section into the Roadmap > Page-level Exact reverse subsection where it illustrates the 128 MB vs 1 MB peak comparison directly. Accuracy fix: - 'Multi-column reorder follow-ups' bullet was inaccurate — said the reorder 'only fires on plain columns'. The reverse path does handle function-wrapped and multi-column cases via EquivalenceProperties; only the stats reorder step is restricted. Updated wording to scope the limitation correctly. --- content/blog/2026-05-25-sort-pushdown.md | 278 +++++++++++------------ 1 file changed, 131 insertions(+), 147 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index d7bbdbff..7681e77e 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -44,12 +44,14 @@ already in that order. CPU wasted. Memory wasted. Streaming defeated. [Apache DataFusion]: https://datafusion.apache.org/ -This post walks through the **sort pushdown** work that closed that -gap. It covers two complementary capabilities — sort elimination via -statistics, and runtime reorder for `TopK` convergence — and lands -real benchmark speedups of **2.1×–49× on common queries**. The same -machinery extends to `ORDER BY ... DESC`, and the page-level reverse -primitive we are adding upstream in [arrow-rs] will push the gains +This post walks through the **sort pushdown** work that closed +that gap. It covers two complementary capabilities — **sort +elimination via statistics** (the `Exact` path, which deletes the +`SortExec`) and **runtime reorder** (the `Inexact` path, which +keeps the `SortExec` but reads the most-promising data first for +`TopK` and `DESC` queries) — and lands real benchmark speedups of +**2.1×–49× on common queries**. The page-level reverse primitive +we are adding upstream in [arrow-rs] will push the `DESC` gains further still. [arrow-rs]: https://github.com/apache/arrow-rs @@ -72,16 +74,15 @@ further still. upgrades the source's ordering claim from `Unsupported` to `Exact` and **removes the `SortExec`** that `EnforceSorting` inserted earlier. - * **Runtime reorder for `TopK` convergence** — when the leading - sort key is a plain column (or the reversed source ordering - satisfies the request), the scan reorders files and row groups - by `min/max` stats so the most-promising data is read first. - `SortExec` stays, but `TopK`'s dynamic filter tightens fast - and the rest is pruned. - * **Reverse scans for `ORDER BY ... DESC`** — a row-group-level - reverse returns `Inexact`. Full `SortExec` removal on `DESC` - requires a page-level reverse primitive that's in flight in - arrow-rs. + * **Runtime reorder for `TopK` and `DESC` queries** — when the + leading sort key is a plain column (or the reversed source + ordering satisfies the request), the scan reorders files and + row groups by `min/max` stats so the most-promising data is + read first; for `DESC` requests it additionally flips + iteration. `SortExec` stays `Inexact`, but `TopK`'s dynamic + filter tightens fast and the rest is pruned. Full `SortExec` + removal on `DESC` requires a page-level reverse primitive + that's in flight in arrow-rs. * Real-world benchmarks on the `sort_pushdown` suite (`Exact` path): `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full `ORDER BY` scans get **~2×** faster. @@ -179,13 +180,13 @@ The **`PushdownSort`** physical optimizer rule asks each 1. "Can you produce output in *this* ordering?" 2. "If yes, please rearrange yourself so that it actually does." -The answer is one of `Exact`, `Inexact`, `Unsupported`. The Parquet -`FileSource` answers by comparing the requested ordering against -the per-file declared ordering: natural ordering satisfies → -`Exact`; reversed satisfies → `Inexact` (sets -`reverse_row_groups=true`); otherwise → `Unsupported`. The rest of -this post is what each merged capability does on top of this -protocol. +The answer is one of `Exact`, `Inexact`, `Unsupported`. `Exact` +means the surrounding `SortExec` can be deleted entirely; `Inexact` +means the source will read the data in a near-sorted order so +`TopK` and other consumers benefit, but `SortExec` stays for +strict correctness. The rest of this post is what each merged +capability does on top of this protocol — first the `Exact` path, +then the `Inexact` path. ## Sort Elimination via Statistics @@ -335,12 +336,12 @@ so stats-based sort elimination simply does not fire there. No regression and no behavior change for typical multi-threaded queries. -## Runtime Reorder for TopK Convergence +## Runtime Reorder for `TopK` and `DESC` Queries Stats-based sort elimination handles the `Exact` upgrade — strong correctness, sort elimination — but only when the table has a declared `output_ordering` *and* the files are provably -non-overlapping after sorting by min. Two large classes of queries +non-overlapping after sorting by min. Three classes of queries fall outside that window: * **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. @@ -350,40 +351,58 @@ fall outside that window: jobs share time windows. The `Exact` upgrade keeps the `SortExec` because the global ordering can't be proven, even though the files often do contain large stretches of in-order data. +* **`ORDER BY ... DESC` on ASC-sorted data** — flipping iteration + at the row-group level emits "RGs descending × rows ascending", + close to the requested order but not strictly DESC, so the + `SortExec` has to stay for correctness. -For both, a full external `SortExec` is overkill. The parquet +For all three, a full external `SortExec` is overkill. The parquet metadata is right there, and reading the *most-promising* data first lets `TopK`'s dynamic filter threshold tighten quickly so the rest gets pruned. Runtime reorder wires that up by generalising the `Inexact` path the rule introduced. -### `try_pushdown_sort` — one decision, three outcomes +### Two independent triggers for `Inexact` try_pushdown_sort decision tree: Exact, Inexact, or Unsupported -The `Exact` / `Inexact` / `Unsupported` protocol stays. The -runtime reorder path broadens the **conditions** that route a -query into `Inexact`: - -| Condition | Outcome | -| --- | --- | -| `eq_properties.ordering_satisfy(request)` | `Exact` — sort elimination | -| Leading sort key is a plain `Column` in the file schema, **or** the source's reversed declared ordering satisfies the request | `Inexact` — runtime reorder pipeline | -| Neither | `Unsupported` — `SortExec` stays, no source-side optimisation | - -The "reversed satisfies" branch is what handles function-wrapped -sorts (`date_trunc('day', ts) DESC`, `ceil(value) DESC`, -`CAST(x AS Date) DESC`) — `EquivalenceProperties`'s monotonicity -reasoning recognises that `f(col) DESC` is satisfied by `col ASC` -reversed, even though parquet has no stats keyed by `f(col)` -itself. - -### Two flags on `ParquetSource`, three runtime steps +`try_pushdown_sort` first checks whether the natural ordering +already satisfies the request (→ `Exact`) or whether a non-empty +*proper prefix* of the request is already satisfied (→ +`Unsupported`, so the outer `SortExec`'s `sort_prefix` +optimisation can fire instead). Otherwise it looks at two +**independent** Inexact signals — either one is enough, and they +compose when both apply: + +**Stats-based RG reorder** — fires when the leading sort key is a +plain `Column` in the file schema. The opener sorts row groups by +`min(col)` via parquet statistics. Restrictive (plain physical +column only), but lets the scan globally reorder data so the +most-promising row group is decoded first. + +**Iteration reverse** — fires when the source's declared ordering, +**reversed**, satisfies the request. This goes through the full +`EquivalenceProperties` reasoning machinery and is **strictly more +powerful** than the column-in-schema check above. It fires for: + +* **Function monotonicity** — file declares `ts DESC`, request is + `date_trunc('day', ts) ASC` → reversed `ts ASC` satisfies the + request via monotonicity even though parquet has no stats keyed + by the function. Same for `ceil(value)`, `CAST(x AS Date)`, etc. +* **Constant columns from filters** — `WHERE region = 'us'` marks + `region` as constant in the equivalence class, so a request + involving `region` is trivially satisfied. +* **Equivalence relationships** — `WHERE a = b` transfers a known + ordering on `a` to a request on `b`. +* **Multi-column composite orderings** — the source's declared + multi-key ordering reversed satisfies the multi-key request as a + whole. + +### Three runtime steps in the opener Runtime reorder pipeline: file reorder, RG reorder, then optional reverse -When `try_pushdown_sort` returns `Inexact`, it stamps two fields on -the `ParquetSource`: +The two triggers above set two fields on `ParquetSource`: ```rust struct ParquetSource { @@ -393,114 +412,76 @@ struct ParquetSource { } ``` -The opener reads them at scan time to drive three composable steps: - -1. **File-level reorder.** `FileSource::reorder_files` sits in the - shared morsel queue (a work-stealing primitive that lets sibling - partitions share a single file pool) and sorts the - partitioned-file list by `min(col)`. The first file picked across - all partitions is globally the most-promising one. -2. **Row-group-level reorder.** Once a file is opened, - `PreparedAccessPlan::reorder_by_statistics` sorts that file's - `row_group_indexes` by `min(col)` ASC. The row group most likely - to contribute to `TopK` is decoded first. -3. **Reverse.** For `DESC` requests, - `PreparedAccessPlan::reverse` flips the iteration after the - stats reorder normalises everything to ASC-by-min. Same - primitive the rule originally introduced for declared reverse - scans — the runtime pipeline just routes more queries through - it. - -The two layers compose naturally because they sort by the same -key. A file's `min(col)` is the minimum over its row groups' -`min(col)` values, so the file with the smallest `min` contains -the row group with the smallest `min`. Sorting files by `min(col)` -and then sorting row groups by `min(col)` within each file -produces an approximately min-ordered global stream — the first -batch comes from the most-promising row group in the -most-promising file, exactly what `TopK`'s dynamic filter needs -to tighten its threshold fast. - -`reverse_row_groups`'s meaning depends on which way `Inexact` was -reached. When the column-in-schema condition fires, the stats -reorder produces ASC-by-min, so `reverse_row_groups` simply mirrors -the request direction. When only the reversed-equivalence -condition fires (function-wrapped case with a declared source -ordering), `reverse_row_groups` is `true` unconditionally — there -is no stats reorder to compose with, just a flip of the file's -natural order. - -Both flags surface on the `DataSourceExec` line in `EXPLAIN` so -plan inspection and snapshot tests can confirm the pushdown fired: +The opener consumes them in three composable steps: + +1. **File-level reorder** (`FileSource::reorder_files`). The shared + morsel queue — a work-stealing primitive that lets sibling + partitions share a single file pool — sorts the partitioned-file + list by `min(col)`. The first file picked across all partitions + is globally the most-promising one. Skipped when the stats + reorder trigger didn't fire. +2. **Row-group-level reorder** + (`PreparedAccessPlan::reorder_by_statistics`). Once a file is + opened, sort its row groups by `min(col)` ASC so the most-promising + row group is decoded first. Same trigger as step 1; the two + layers nest because a file's `min(col)` is the minimum over its + row groups' `min(col)` values. +3. **Iteration reverse** (`PreparedAccessPlan::reverse`). Flips the + row-group iteration order. For `DESC` requests on a plain + column the flip composes with steps 1–2 (ASC-by-min → reverse → + DESC-by-min). For the function-wrapped / constants-from-filters / + multi-column cases, steps 1–2 are skipped and this is the only + step that runs — just a flip of the file's natural order. + +Both flags surface on the `DataSourceExec` line in `EXPLAIN`: ```text DataSourceExec: file_groups=..., file_type=parquet, sort_order_for_reorder=[a@0 ASC], reverse_row_groups=true ``` -Absence of either flag means the corresponding runtime step is a -no-op. - -### When runtime reorder does *not* fire - -* **Aggregations on top of the sort key.** `SELECT URL, COUNT(*) AS c - FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10` (the ClickBench - TopK shape) — the leading sort key (`c`) is an aggregation result - and has no per-RG stats in the parquet file, so the - column-in-schema check fails. Pushing sort metadata through - `AggregateExec` is a separate problem: the aggregated value - doesn't exist before aggregation, so even if the metadata reached - the scan there'd be nothing actionable to do with it. -* **Multi-column sort secondary keys.** The reorder currently only - uses the leading sort expression — secondary keys are ignored. - An open follow-up. -* **Function-wrapped sort without a source-declared ordering.** - Without a declared ordering to invert, the reversed-equivalence - branch has nothing to satisfy. Same follow-up. -* **Source declares a forward prefix of the request.** When the - source's declared `output_ordering` is a non-empty proper prefix - of the request (e.g. source `[a DESC, b ASC]`, request - `[a DESC, b ASC, c DESC]`), `try_pushdown_sort` returns - `Unsupported` so the surrounding `SortExec` can keep its - `sort_prefix` annotation — prefix-aware early termination in - `TopK` is strictly better than the runtime reorder on data that - is already in prefix order on disk. - -## Reverse Scans for `ORDER BY ... DESC` - -Row-group reverse vs page reverse: 128MB and 8 pages vs 1MB and 1 page - -`ORDER BY ts DESC` is the same problem in reverse. If a file is sorted -ascending and the query wants descending, we should be able to skip -the sort — we just need to read the data in the opposite order. - -The first iteration of this operates at the **row group** level: -it reverses the *iteration order of row groups* so the last RG is -opened first, but rows within each RG are still decoded forward. -The resulting stream is "RGs descending × rows ascending" — close -to the requested order, but not strictly DESC. The optimizer -therefore reports this as `Inexact` and leaves the `SortExec` in -place; the win is that `TopK`'s dynamic filter tightens much -faster, because the very first row groups read already contain -values near the final answer. A tight threshold means subsequent -row groups can be skipped via min/max statistics. This ships today -and is what powers fast `ORDER BY ts DESC LIMIT N` on ASC-sorted -files. - -Why not full `Exact` reverse that deletes the `SortExec`? -Decoding a whole row group forward, reversing the buffer, and +### `ORDER BY ... DESC` in practice + +A `DESC` request on an ASC-sorted plain column goes through both +triggers — the stats reorder normalises to ASC-by-min and the +iteration reverse flips to DESC-by-min. The result is *"RGs +descending × rows ascending"* — close to the requested order but +not strictly DESC, hence `Inexact`. The `SortExec` stays for +correctness, but `TopK`'s dynamic filter tightens fast because the +first row groups read already contain values near the final +answer, so subsequent row groups can be skipped via min/max +statistics. This is what powers fast `ORDER BY ts DESC LIMIT N` on +ASC-sorted files today. + +Why not full `Exact` reverse that deletes the `SortExec` outright? +Decoding a whole row group forward, reversing the buffer, then emitting works — but peaks at ~128 MB vs. the few-MB-per-batch streaming profile readers expect. `Exact` reverse waits on a page-level primitive that keeps the runtime win on a streaming -memory budget — see the roadmap below. +memory budget — covered in the roadmap below. + +### When neither Inexact trigger fires + +* **Aggregations on the sort key** — `SELECT URL, COUNT(*) AS c FROM + hits GROUP BY URL ORDER BY c DESC LIMIT 10` (the ClickBench TopK + shape). The leading sort key `c` is an aggregate result with no + per-RG stats and no equivalence to a file column, so neither + trigger fires. Pushing sort metadata through `AggregateExec` is a + separate problem entirely. +* **Function-wrapped sort with no source-declared ordering** — the + reversed-equivalence branch has nothing to invert. +* **Source declares a forward prefix of the request** — + `try_pushdown_sort` returns `Unsupported` so the surrounding + `SortExec` can keep its `sort_prefix` annotation; prefix-aware + early termination in `TopK` is strictly better than reorder on + data that's already in prefix order on disk. ## Current Bottlenecks -Stats-based **sort elimination** removes the `SortExec` entirely -when ranges are non-overlapping — there's nothing more to optimize -on that path. But the `Inexact` paths (**runtime reorder** for -`TopK`, and **row-group reverse** for `DESC`) leave three concrete -inefficiencies on the table when `Exact` cannot fire: +Sort elimination removes the `SortExec` entirely when ranges are +non-overlapping — there's nothing more to optimize on that path. +The `Inexact` runtime-reorder path is where the merged work still +leaves performance on the table. Three concrete inefficiencies: ### Bottleneck 1: `SortExec` stays on top, so `LIMIT N` does not propagate as a static stop signal @@ -551,6 +532,8 @@ open* file gets read to completion. ### Page-level `Exact` reverse — addresses bottlenecks 1 + 2 +Row-group reverse (128 MB peak, ~8 pages decoded) vs page reverse (1 MB peak, 1 page decoded) + Parquet's `OffsetIndex` gives us byte-precise locations for every data page in a column chunk, so we can `seek` directly to the last page, decode it forward, reverse the resulting batch, and emit. @@ -651,10 +634,11 @@ what pushes it further. queries can skip the first `N` rows at the row-group level instead of decoding and discarding them. In progress. * [Multi-column and function-wrapped reorder follow-ups]. The - reorder mechanism currently only uses the leading sort key and - only fires on plain columns. Lexicographic multi-key reorder - via `arrow::compute::lexsort_to_indices` is low-hanging fruit; - extending to monotonic function wrappers via leaf-column + **stats reorder step** currently only uses the leading sort key + on a plain column (reverse handles the rest via + `EquivalenceProperties` reasoning). Lexicographic multi-key + reorder via `arrow::compute::lexsort_to_indices` is low-hanging + fruit; extending to monotonic function wrappers via leaf-column extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs a bit more `EquivalenceProperties` integration but is doable. From 4391fb312132476d89a682ed1c59cf0e5f7a0be8 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 15:59:17 +0800 Subject: [PATCH 13/79] =?UTF-8?q?Drop=20EnsureRequirements=20+=20OFFSET=20?= =?UTF-8?q?pushdown=20=E2=80=94=20both=20unrelated=20to=20sort=20pushdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EnsureRequirements (#21976) is a rule-unification effort for EnforceDistribution+EnforceSorting. Touches the same area but isn't a sort pushdown optimization. OFFSET pushdown (#21828) is about LIMIT/OFFSET pruning. Same kind of tangent as the limit-pruning blog reference removed earlier — it's LIMIT optimization, not sort pushdown. The remaining 'Multi-column and function-wrapped reorder follow-ups' bullet is actually directly about sort pushdown's reorder step (#22198), so it stays. With the other two removed, 'Other follow-ups' collapsed to a single point — promoted to its own subsection 'Extending the stats reorder step' for clarity. Also dropped the corresponding entries from the References section. --- content/blog/2026-05-25-sort-pushdown.md | 38 ++++++++---------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 7681e77e..6dbd4821 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -621,34 +621,24 @@ the Bottleneck-1 and Bottleneck-3 overheads listed above. The deliver; `Exact` reverse + row-group-level early termination is what pushes it further. -### Other follow-ups - -* [Unifying `EnforceDistribution` and `EnforceSorting`] into a - single `EnsureRequirements` rule. The two existing rules are - coupled through `SortExec.preserve_partitioning`, which makes - their composition non-idempotent and has caused a class of - production bugs. Other engines (Spark's `EnsureRequirements`, - Trino's `AddExchanges`) handle both in a single rule. In - progress. -* [OFFSET pushdown to parquet] so `ORDER BY ts LIMIT K OFFSET N` - queries can skip the first `N` rows at the row-group level - instead of decoding and discarding them. In progress. -* [Multi-column and function-wrapped reorder follow-ups]. The - **stats reorder step** currently only uses the leading sort key - on a plain column (reverse handles the rest via - `EquivalenceProperties` reasoning). Lexicographic multi-key - reorder via `arrow::compute::lexsort_to_indices` is low-hanging - fruit; extending to monotonic function wrappers via leaf-column - extraction (e.g. `date_trunc('day', ts)` → use `min(ts)`) needs - a bit more `EquivalenceProperties` integration but is doable. +### Extending the stats reorder step + +Alongside removing the bottlenecks above, the +[stats reorder step itself has room to grow][stats-reorder-followup]. +Today it only uses the leading sort key on a plain column — reverse +already handles function-wrapped and multi-column cases via +`EquivalenceProperties` reasoning, but stats-based RG ordering only +fires on a plain leading column. Lexicographic multi-key reorder via +`arrow::compute::lexsort_to_indices` is low-hanging fruit; extending +to monotonic function wrappers via leaf-column extraction (e.g. +`date_trunc('day', ts)` → use `min(ts)`) needs a bit more +`EquivalenceProperties` integration but is doable. [morsel-style work scheduling]: https://github.com/apache/datafusion/pull/21351 [global file reorder in the shared queue]: https://github.com/apache/datafusion/issues/21733 [TopK threshold init from parquet statistics]: https://github.com/apache/datafusion/pull/21712 [combined statistics-driven `TopK` pipeline]: https://github.com/apache/datafusion/pull/21580 -[Unifying `EnforceDistribution` and `EnforceSorting`]: https://github.com/apache/datafusion/pull/21976 -[OFFSET pushdown to parquet]: https://github.com/apache/datafusion/pull/21828 -[Multi-column and function-wrapped reorder follow-ups]: https://github.com/apache/datafusion/issues/22198 +[stats-reorder-followup]: https://github.com/apache/datafusion/issues/22198 Concretely useful issues for new contributors: @@ -694,8 +684,6 @@ Landed PRs that make up this work: In flight / open: * Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) -* `EnsureRequirements`: [apache/datafusion#21976](https://github.com/apache/datafusion/pull/21976) -* OFFSET pushdown to parquet: [apache/datafusion#21828](https://github.com/apache/datafusion/pull/21828) * TopK threshold init from parquet statistics: [apache/datafusion#21712](https://github.com/apache/datafusion/pull/21712) * Combined statistics-driven `TopK` pipeline: [apache/datafusion#21580](https://github.com/apache/datafusion/pull/21580) * Global file reorder in shared queue: [apache/datafusion#21733](https://github.com/apache/datafusion/issues/21733) From 5d5e5095a03584a0e4dd4ab5d6cfb2803673fad1 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 17 May 2026 16:02:07 +0800 Subject: [PATCH 14/79] Roadmap RG-level early termination: split into non-overlap vs overlap (k-way merge) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'switch work queue from PartitionedFile to RG descriptors' fix is sufficient for non-overlapping ranges (post-reorder), where the first file globally has the smallest values and subsequent files are already stats-pruned. For overlapping ranges, the next smallest value could sit in any of several open files — matching the non-overlap efficiency requires explicit k-way merge across open files' next-RG mins. The dynamic filter does this implicitly (RGs with max < threshold are dropped), but explicit comparison closes the tap earlier when the filter tightens slowly. --- content/blog/2026-05-25-sort-pushdown.md | 28 +++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md index 6dbd4821..070698d4 100644 --- a/content/blog/2026-05-25-sort-pushdown.md +++ b/content/blog/2026-05-25-sort-pushdown.md @@ -581,11 +581,29 @@ granularity. For a selective filter, the saving compounds. ### Row-group-level dynamic early termination — addresses bottleneck 3 The work queue today holds `PartitionedFile`. Switching it to -hold **row-group descriptors** instead lets a partition release -its current file's remaining row groups back to the pool the -moment a global signal says enough `TopK` winners have been -found. A natural extension of the existing morsel-style work -scheduling but not yet on a PR. +hold **row-group descriptors** lets a partition stop mid-file the +moment a global signal says `TopK` has K confirmed winners. Two +flavors depending on whether file ranges actually overlap after +stats reorder: + +* **Non-overlapping ranges.** The first file globally contains + the smallest values, the second contains the next batch, and so + on. Once `TopK`'s threshold passes file 0's max, every + subsequent file is pruned by stats already — the only fix + needed is the RG-granular queue so the partition currently + inside file 0 also stops at the right RG. +* **Overlapping ranges.** The smallest *next* value could sit in + any of several open files. Matching the non-overlap efficiency + requires actively comparing each open file's next-RG `min` and + pulling from whichever is smallest — a **k-way merge across + files** at RG granularity. The dynamic-filter pushdown already + approximates this implicitly (an RG whose `max < threshold` is + dropped), but explicit k-way comparison would close the tap + earlier when the filter tightens slowly across overlapping + files. + +A natural extension of the existing morsel-style work scheduling +but not yet on a PR. The two roadmap items above are *complementary*, not alternatives: From e7baa8ae1f3af765cc6adfbb6d9fe6594aa8cdc5 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Sun, 28 Jun 2026 21:58:19 +0800 Subject: [PATCH 15/79] Rewrite blog around #22450: three-layer pruning + topk_tpch headline Restructure the post so the merged Runtime Row-Group Dynamic Pruning (#22450) is the centerpiece, matching the community-talk narrative: - TL;DR now leads with the three-layer pruning stack (file + RG + row) and the topk_tpch headline (5/11 queries 3-4x, 0 regressions, -44% total). - Exact path keeps credit attribution explicit: EnforceSorting already handled the simple on-disk-sorted case; Phase 2 closes the wrong-on-disk-order gap. BufferExec story expanded with the SPM stall diagnosis. - Inexact path split into Tier 1 (file-level, already had early stop) vs Tier 2 (RG-level, no early stop until #22450) so the gap that #22450 closes is named explicitly. - New section: #22450 mechanics - architecture-3-eras, transition() drain/decide/drive, RowGroupPruner watch/rebuild/prune, cascading prune walkthrough. - New section: Three-layer pruning stack with the same DynamicFilter driving all three layers, plus the topk_tpch benchmark table. - Old "Current Bottlenecks" + "Roadmap" merged into "Future Directions": A) page-level Exact reverse (arrow-rs #9937), B) page-level dynamic prune at RG boundary (#23216). - Updated landed-PRs list to include #20839 (push-based decoder, the prerequisite for #22450) and #22450 itself. Pulls in 9 PNGs from the community-call deck for the #22450-specific diagrams (architecture, transition, pruner, cascade, three-layer stack, topk_tpch results, page-level future). --- content/blog/2026-05-25-sort-pushdown.md | 711 ------------------ content/blog/2026-07-05-sort-pushdown.md | 625 +++++++++++++++ .../images/sort-pushdown/arch_one_glance.png | Bin 0 -> 132456 bytes .../sort-pushdown/buffer-exec-stall.svg | 160 ++++ content/images/sort-pushdown/buffer-exec.svg | 89 +++ .../images/sort-pushdown/desc_walk_file.png | Bin 0 -> 98049 bytes content/images/sort-pushdown/desc_walk_rg.png | Bin 0 -> 110443 bytes .../sort-pushdown/future_page_level.png | Bin 0 -> 152064 bytes .../sort-pushdown/phase1-file-reorder.svg | 2 +- .../sort-pushdown/phase2-stats-overlap.svg | 141 ++-- content/images/sort-pushdown/plan-diff.svg | 73 +- .../images/sort-pushdown/pr21956-decision.svg | 115 +-- .../pr21956-runtime-pipeline.svg | 115 +-- content/images/sort-pushdown/pruner_loop.png | Bin 0 -> 141158 bytes .../images/sort-pushdown/pruning_stack.png | Bin 0 -> 175106 bytes content/images/sort-pushdown/rg_cascade.png | Bin 0 -> 128743 bytes .../images/sort-pushdown/topk_tpch_bench.png | Bin 0 -> 80812 bytes .../sort-pushdown/transition_anatomy.png | Bin 0 -> 135742 bytes 18 files changed, 1112 insertions(+), 919 deletions(-) delete mode 100644 content/blog/2026-05-25-sort-pushdown.md create mode 100644 content/blog/2026-07-05-sort-pushdown.md create mode 100644 content/images/sort-pushdown/arch_one_glance.png create mode 100644 content/images/sort-pushdown/buffer-exec-stall.svg create mode 100644 content/images/sort-pushdown/buffer-exec.svg create mode 100644 content/images/sort-pushdown/desc_walk_file.png create mode 100644 content/images/sort-pushdown/desc_walk_rg.png create mode 100644 content/images/sort-pushdown/future_page_level.png create mode 100644 content/images/sort-pushdown/pruner_loop.png create mode 100644 content/images/sort-pushdown/pruning_stack.png create mode 100644 content/images/sort-pushdown/rg_cascade.png create mode 100644 content/images/sort-pushdown/topk_tpch_bench.png create mode 100644 content/images/sort-pushdown/transition_anatomy.png diff --git a/content/blog/2026-05-25-sort-pushdown.md b/content/blog/2026-05-25-sort-pushdown.md deleted file mode 100644 index 070698d4..00000000 --- a/content/blog/2026-05-25-sort-pushdown.md +++ /dev/null @@ -1,711 +0,0 @@ ---- -layout: post -title: Sort Pushdown in DataFusion: Skip Sorts, Skip I/O -date: 2026-05-25 -author: Qi Zhu -categories: [performance] ---- - - - -[TOC] - -*Qi Zhu, [Massive](https://www.massive.com/)* - -Many [Apache Parquet] datasets are already sorted on disk. Time-series -files are usually written in ingestion-time order. Event logs are sharded -and sorted by event id. Partitioned tables come with a natural ordering -implied by the partition key. The information about that ordering is -sitting right there in the file metadata. - -[Apache Parquet]: https://parquet.apache.org/ - -Until recently, [Apache DataFusion] would still re-sort those files on -every `ORDER BY` query. Every `SELECT ... ORDER BY ts LIMIT 100` did a -full external sort across the entire scan, even though the data was -already in that order. CPU wasted. Memory wasted. Streaming defeated. - -[Apache DataFusion]: https://datafusion.apache.org/ - -This post walks through the **sort pushdown** work that closed -that gap. It covers two complementary capabilities — **sort -elimination via statistics** (the `Exact` path, which deletes the -`SortExec`) and **runtime reorder** (the `Inexact` path, which -keeps the `SortExec` but reads the most-promising data first for -`TopK` and `DESC` queries) — and lands real benchmark speedups of -**2.1×–49× on common queries**. The page-level reverse primitive -we are adding upstream in [arrow-rs] will push the `DESC` gains -further still. - -[arrow-rs]: https://github.com/apache/arrow-rs - -## TL;DR - -* DataFusion can now **skip `SortExec` entirely** when input files are - already in the requested order, and **read the most-promising data - first** when they aren't — so `TopK` converges fast and the rest - gets pruned by statistics. -* What's supported today: - * **The `PushdownSort` rule** — a physical optimizer rule that - asks each `ExecutionPlan` "can you produce output in *this* - ordering?" and uses the `Exact` / `Inexact` / `Unsupported` - answer to decide whether to delete the surrounding `SortExec`, - leave it in place with a hint, or give up. - * **Sort elimination via statistics** — `PushdownSort` sorts - files within each partition by Parquet `min/max` statistics - and, when the resulting ranges are provably non-overlapping, - upgrades the source's ordering claim from `Unsupported` to - `Exact` and **removes the `SortExec`** that `EnforceSorting` - inserted earlier. - * **Runtime reorder for `TopK` and `DESC` queries** — when the - leading sort key is a plain column (or the reversed source - ordering satisfies the request), the scan reorders files and - row groups by `min/max` stats so the most-promising data is - read first; for `DESC` requests it additionally flips - iteration. `SortExec` stays `Inexact`, but `TopK`'s dynamic - filter tightens fast and the rest is pruned. Full `SortExec` - removal on `DESC` requires a page-level reverse primitive - that's in flight in arrow-rs. -* Real-world benchmarks on the `sort_pushdown` suite (`Exact` path): - `ORDER BY ... LIMIT` queries get **27× and 49× faster**; full - `ORDER BY` scans get **~2×** faster. - -## Why Sort Pushdown Matters - -`SortExec` is one of the most expensive operators in a query plan. -It is blocking by construction — no row can leave until every input -row has been seen and compared — so it tends to dominate both latency -and peak memory. The cost gets paid even when: - -* the file is already ordered by the sort key (very common for - timestamp columns); -* the query only needs the top *N* rows (`ORDER BY ts LIMIT 100`), in - which case full sort + truncate is wildly wasteful; -* the next operator (`SortPreservingMergeExec`, `SortMergeJoinExec`, - a window function) was going to consume ordered input anyway. - -The data DataFusion needs to avoid this work is **already in the file -metadata**. Parquet writers can record per-column statistics (`min`, -`max`) at the row-group level. Files written by Spark, DuckDB, -arrow-rs, and others routinely include them. And explicit `WITH ORDER` -clauses in DataFusion's SQL `CREATE EXTERNAL TABLE` give the optimizer -a direct ordering hint. The job of sort pushdown is to **use that -information**. - -## How DataFusion Tracks Ordering - -EXPLAIN before / after: SortExec eliminated once ordering is Exact - -Each `FileScanConfig` carries an `output_ordering` — the ordering -that the optimizer is willing to claim for the scan's output. There -are two flavours: - -* **`Exact`** — the optimizer is *certain* the output is in this order. - Sort-handling rules treat an `Exact` ordering as a proof and **remove - the surrounding `SortExec`**. ([`EnforceSorting`] does this when the - scan declares `Exact` from the start; the sort pushdown rule covered - in this post does the same upgrade later in the pipeline.) -* **`Inexact`** — the optimizer *believes* the output is probably - ordered, but cannot prove it. Downstream operators like - `SortPreservingMergeExec` can still benefit from this hint, but the - explicit `SortExec` stays for safety. - -[`EnforceSorting`]: https://docs.rs/datafusion-physical-optimizer/latest/datafusion_physical_optimizer/enforce_sorting/struct.EnforceSorting.html - -A helper called `validated_output_ordering()` is the gatekeeper. It -walks the list of files inside a partition, checks whether the -declared per-file ordering is consistent with the file order on disk, -and either confirms the ordering or **strips it entirely** if it -sees something ambiguous (e.g. file `b` comes before file `a` in the -file list but file `a`'s range comes first). - -### `Exact` and `Inexact` at runtime - -`Exact` and `Inexact` lead to different runtime behaviour, and -distinguishing them up front makes the rest of this post easier to -follow: - -* With **`Exact`**, the `SortExec` is removed and the LIMIT becomes - a **static fetch** on the source. The reader stops the moment the - requested number of rows has been emitted — early termination - at batch granularity, no dynamic state needed. -* With **`Inexact`**, the `SortExec` stays in place. The LIMIT - materialises inside the sort as a `TopK` heap of size K. `TopK` - exposes a [**dynamic filter**][dyn-filters-blog] — a runtime - expression of the form *"only rows that could still beat the - current K-th-best value are worth considering"* — and pushes it - back to the parquet scanner. As more data is processed and the - heap tightens, the filter's threshold tightens with it, and entire - row groups can be skipped by checking the live threshold against - the row group's min/max statistics. (See the earlier - [dynamic filters][dyn-filters-blog] post for the full background - on this mechanism.) - -Both paths use the same underlying min/max statistics, but for -different purposes: `Exact` uses them at plan time to prove -non-overlap and justify removing the sort; `Inexact` uses them at -runtime to skip row groups that can no longer improve the heap. - -[dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ - -The diagram above shows the result we want: the plan after sort -pushdown loses the `SortExec` node. Everything downstream — the -`SortPreservingMergeExec`, the `RepartitionExec`, the -`DataSourceExec` — was already in the plan. We just need the -optimizer to convince itself that the bottom of the plan is -producing the order requested. - -## The `PushdownSort` Rule - -The **`PushdownSort`** physical optimizer rule asks each -`ExecutionPlan` two questions: - -1. "Can you produce output in *this* ordering?" -2. "If yes, please rearrange yourself so that it actually does." - -The answer is one of `Exact`, `Inexact`, `Unsupported`. `Exact` -means the surrounding `SortExec` can be deleted entirely; `Inexact` -means the source will read the data in a near-sorted order so -`TopK` and other consumers benefit, but `SortExec` stays for -strict correctness. The rest of this post is what each merged -capability does on top of this protocol — first the `Exact` path, -then the `Inexact` path. - -## Sort Elimination via Statistics - -Sort elimination: rearranging files within a partition by min/max statistics so the file list is in range order - -The initial `Inexact`-only path left a sharp edge that motivated -stats-based sort elimination. Consider this realistic scenario: - -* Three files: `a.parquet`, `b.parquet`, `c.parquet`. -* Each declares `WITH ORDER (ts ASC)`. -* Internally each file *is* sorted by `ts`. -* But they were written by different ingestion jobs and end up listed - in the **wrong order** on disk (e.g. alphabetical by name, not by - time). - -`validated_output_ordering()` looks at this, sees that the -file-internal ordering disagrees with the file-list order, and -**strips the ordering entirely**. From the optimizer's point of view -the scan now has no declared ordering, so `EnforceSorting` (which runs -earlier in the pipeline) inserts a `SortExec`. The data is sorted on -disk; the optimizer just can't tell. - -Stats-based sort elimination fixes this in `PushdownSort`, which -runs late — after `EnforceDistribution` and `EnforceSorting` have -already shaped the plan. When `PushdownSort` finds a `SortExec` -above a file scan whose ordering was stripped (a `FileSource` -`Unsupported` result), it does three things inside -`FileScanConfig::try_pushdown_sort`: - -1. **Sort the file list by per-file statistics on the sort - column(s)** within each file group (the diagram above). The - pre-existing [`MinMaxStatistics`] helper reads each file's - `column_statistics[c].min_value` / `.max_value` for each sort - column `c`, then sorts the file list by the min row. - `sort_files_within_groups_by_statistics` does the per-group - orchestration and decides whether any group is non-overlapping - after the sort. -2. **Check adjacency within each group**: walk each sorted file group - independently and ask whether `file[i].max ≤ file[i+1].min` for - every adjacent pair (touching at the boundary is fine — value `v` - showing up as the last row of one file and the first row of the - next still produces a sorted stream). The check is **per file - group**, not across groups; cross-group ordering is the job of - `SortPreservingMergeExec` at runtime (more on this below). -3. **Upgrade `Unsupported` to `Exact`** when adjacency holds, the - table has a declared `output_ordering` (from `WITH ORDER` or - parquet `sorting_columns`), and the sort columns are null-free — - the last condition preserves `NULLS LAST`/`NULLS FIRST` semantics - across file boundaries. `PushdownSort` then removes the `SortExec` - itself and the plan becomes streamable. - -[`MinMaxStatistics`]: https://github.com/apache/datafusion/blob/main/datafusion/datasource/src/statistics.rs - -One caveat that comes straight from `MinMaxStatistics`: the stats -sort only fires when every `ORDER BY` expression is a plain column. -`ORDER BY date_trunc('hour', ts)` silently skips the upgrade — there -is no per-file min/max for the function output to compare against. -Extending sort pushdown across monotonic function wrappers is one of -the open follow-ups. - -(Runtime reorder covered later does handle some function-wrapped -sorts via monotonicity inference — but stats-based sort elimination -still needs a plain column.) - -Detecting non-overlapping ranges via min/max statistics - -The diagram above contrasts the two cases. On the left, ranges are -non-overlapping after sort, so we can guarantee that emitting the -files in min-order produces a globally sorted stream. On the right, -the ranges overlap, so even after sorting the files by `min(ts)` we -cannot guarantee global ordering — the upgrade is skipped and -`SortExec` stays in place. - -The implementation handles a few edge cases worth calling out: - -* **Buffering the eliminated `SortExec`.** When the `SortExec` was - sitting under a `SortPreservingMergeExec` with - `preserve_partitioning=true`, it wasn't just sorting — it was also - acting as an *implicit in-memory buffer* for the SPM above it. The - SPM picks rows from each partition stream one at a time; without - the upstream `SortExec` holding batches in memory, the SPM would - read directly from I/O-bound sources and stall on every pick. The - rule compensates by inserting a [`BufferExec`] in the `SortExec`'s - place — bounded streaming buffer, same throughput shape, no - blocking sort. Capacity is configurable via - [`sort_pushdown_buffer_capacity`]. -* **`fetch` preservation** through `EnforceDistribution`. The - distribution rule sometimes strips a `SortExec`'s `fetch` field and - re-adds the node later. The PR plumbs `fetch` through so a - surviving `LIMIT` is not lost. -* **Per-group, not global, non-overlap.** The adjacency check is - scoped to each file group. Two file groups can have *overlapping* - ranges and the upgrade still fires, as long as each group is - internally non-overlapping. That works because each group already - produces an independently ordered stream at runtime, and - `SortPreservingMergeExec` then picks rows across streams in value - order to produce the final globally sorted output. The rule only - has to prove the per-stream property. -* **Single-partition vs multi-partition execution.** The default - multi-partition setup byte-range-splits files into single-file - groups, after which `validated_output_ordering()` works on its - own. Stats-based reorder only fires when files aren't split — - typically `--partitions 1` or files small enough that the - splitter leaves them alone. - -[`BufferExec`]: https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs -[`sort_pushdown_buffer_capacity`]: https://github.com/apache/datafusion/pull/21426 - -## Benchmarks - -Sort pushdown benchmark: 2x-49x speedup across four queries - -The [`sort_pushdown`] benchmark suite reproduces the -"wrong-order file list" scenario by generating Parquet files whose -names are intentionally reversed against their sort-key ranges. Numbers -below are `--partitions 1`, release build, with stats-based sort -elimination enabled, versus `main`: - -[`sort_pushdown`]: https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown - -| Query | Before | After | Speedup | -| ------------------------------------------- | -------:| -------:| -------:| -| Q1 — `ORDER BY key` (full scan) | 259 ms | 122 ms | **2.1×** | -| Q2 — `ORDER BY key LIMIT 100` | 80 ms | 3 ms | **27×** | -| Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | -| Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | - -The shape of the speedup is what you would expect once `SortExec` is -removed: - -* **Full-scan queries (Q1, Q3)** still have to push every row through - the pipeline, so the gain is "just" the cost of the sort itself — - roughly half the original time. This matches the rule of thumb that - a blocking sort doubles end-to-end latency on data that fits in - memory. -* **`LIMIT` queries (Q2, Q4)** benefit much more because removing - `SortExec` converts the LIMIT into a static `fetch` on the data - source — the reader stops the moment K rows have been emitted, - instead of reading the full file, sorting, and truncating. - This is the "early termination at batch granularity" case from - the runtime-difference section above. A 342 ms full-file scan - collapses into a 7 ms K-row read. - -The default multi-partition execution path is unaffected: those -plans already produce correct orderings via byte-range splitting, -so stats-based sort elimination simply does not fire there. No -regression and no behavior change for typical multi-threaded -queries. - -## Runtime Reorder for `TopK` and `DESC` Queries - -Stats-based sort elimination handles the `Exact` upgrade — strong -correctness, sort elimination — but only when the table has a -declared `output_ordering` *and* the files are provably -non-overlapping after sorting by min. Three classes of queries -fall outside that window: - -* **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. - The `Exact` upgrade cannot fire because there is no ordering - claim to upgrade. -* **Overlapping ranges** — files written by different ingestion - jobs share time windows. The `Exact` upgrade keeps the `SortExec` - because the global ordering can't be proven, even though the - files often do contain large stretches of in-order data. -* **`ORDER BY ... DESC` on ASC-sorted data** — flipping iteration - at the row-group level emits "RGs descending × rows ascending", - close to the requested order but not strictly DESC, so the - `SortExec` has to stay for correctness. - -For all three, a full external `SortExec` is overkill. The parquet -metadata is right there, and reading the *most-promising* data -first lets `TopK`'s dynamic filter threshold tighten quickly so the -rest gets pruned. Runtime reorder wires that up by generalising -the `Inexact` path the rule introduced. - -### Two independent triggers for `Inexact` - -try_pushdown_sort decision tree: Exact, Inexact, or Unsupported - -`try_pushdown_sort` first checks whether the natural ordering -already satisfies the request (→ `Exact`) or whether a non-empty -*proper prefix* of the request is already satisfied (→ -`Unsupported`, so the outer `SortExec`'s `sort_prefix` -optimisation can fire instead). Otherwise it looks at two -**independent** Inexact signals — either one is enough, and they -compose when both apply: - -**Stats-based RG reorder** — fires when the leading sort key is a -plain `Column` in the file schema. The opener sorts row groups by -`min(col)` via parquet statistics. Restrictive (plain physical -column only), but lets the scan globally reorder data so the -most-promising row group is decoded first. - -**Iteration reverse** — fires when the source's declared ordering, -**reversed**, satisfies the request. This goes through the full -`EquivalenceProperties` reasoning machinery and is **strictly more -powerful** than the column-in-schema check above. It fires for: - -* **Function monotonicity** — file declares `ts DESC`, request is - `date_trunc('day', ts) ASC` → reversed `ts ASC` satisfies the - request via monotonicity even though parquet has no stats keyed - by the function. Same for `ceil(value)`, `CAST(x AS Date)`, etc. -* **Constant columns from filters** — `WHERE region = 'us'` marks - `region` as constant in the equivalence class, so a request - involving `region` is trivially satisfied. -* **Equivalence relationships** — `WHERE a = b` transfers a known - ordering on `a` to a request on `b`. -* **Multi-column composite orderings** — the source's declared - multi-key ordering reversed satisfies the multi-key request as a - whole. - -### Three runtime steps in the opener - -Runtime reorder pipeline: file reorder, RG reorder, then optional reverse - -The two triggers above set two fields on `ParquetSource`: - -```rust -struct ParquetSource { - sort_order_for_reorder: Option, // what to reorder by - reverse_row_groups: bool, // whether to flip iteration - // ... -} -``` - -The opener consumes them in three composable steps: - -1. **File-level reorder** (`FileSource::reorder_files`). The shared - morsel queue — a work-stealing primitive that lets sibling - partitions share a single file pool — sorts the partitioned-file - list by `min(col)`. The first file picked across all partitions - is globally the most-promising one. Skipped when the stats - reorder trigger didn't fire. -2. **Row-group-level reorder** - (`PreparedAccessPlan::reorder_by_statistics`). Once a file is - opened, sort its row groups by `min(col)` ASC so the most-promising - row group is decoded first. Same trigger as step 1; the two - layers nest because a file's `min(col)` is the minimum over its - row groups' `min(col)` values. -3. **Iteration reverse** (`PreparedAccessPlan::reverse`). Flips the - row-group iteration order. For `DESC` requests on a plain - column the flip composes with steps 1–2 (ASC-by-min → reverse → - DESC-by-min). For the function-wrapped / constants-from-filters / - multi-column cases, steps 1–2 are skipped and this is the only - step that runs — just a flip of the file's natural order. - -Both flags surface on the `DataSourceExec` line in `EXPLAIN`: - -```text -DataSourceExec: file_groups=..., file_type=parquet, - sort_order_for_reorder=[a@0 ASC], reverse_row_groups=true -``` - -### `ORDER BY ... DESC` in practice - -A `DESC` request on an ASC-sorted plain column goes through both -triggers — the stats reorder normalises to ASC-by-min and the -iteration reverse flips to DESC-by-min. The result is *"RGs -descending × rows ascending"* — close to the requested order but -not strictly DESC, hence `Inexact`. The `SortExec` stays for -correctness, but `TopK`'s dynamic filter tightens fast because the -first row groups read already contain values near the final -answer, so subsequent row groups can be skipped via min/max -statistics. This is what powers fast `ORDER BY ts DESC LIMIT N` on -ASC-sorted files today. - -Why not full `Exact` reverse that deletes the `SortExec` outright? -Decoding a whole row group forward, reversing the buffer, then -emitting works — but peaks at ~128 MB vs. the few-MB-per-batch -streaming profile readers expect. `Exact` reverse waits on a -page-level primitive that keeps the runtime win on a streaming -memory budget — covered in the roadmap below. - -### When neither Inexact trigger fires - -* **Aggregations on the sort key** — `SELECT URL, COUNT(*) AS c FROM - hits GROUP BY URL ORDER BY c DESC LIMIT 10` (the ClickBench TopK - shape). The leading sort key `c` is an aggregate result with no - per-RG stats and no equivalence to a file column, so neither - trigger fires. Pushing sort metadata through `AggregateExec` is a - separate problem entirely. -* **Function-wrapped sort with no source-declared ordering** — the - reversed-equivalence branch has nothing to invert. -* **Source declares a forward prefix of the request** — - `try_pushdown_sort` returns `Unsupported` so the surrounding - `SortExec` can keep its `sort_prefix` annotation; prefix-aware - early termination in `TopK` is strictly better than reorder on - data that's already in prefix order on disk. - -## Current Bottlenecks - -Sort elimination removes the `SortExec` entirely when ranges are -non-overlapping — there's nothing more to optimize on that path. -The `Inexact` runtime-reorder path is where the merged work still -leaves performance on the table. Three concrete inefficiencies: - -### Bottleneck 1: `SortExec` stays on top, so `LIMIT N` does not propagate as a static stop signal - -In the `Inexact` path the `SortExec` stays in the plan and -`TopK`'s fetch belongs to `SortExec`, not to the parquet scan. -The only thing that can cut work below the `SortExec` is the -dynamic-filter pushdown: as the heap fills, the filter -(`ts > threshold`) is pushed to the source and its threshold -tightens with every batch. That filter does **stats-prune -subsequent, not-yet-opened row groups** — if a row group's -`max(ts) < threshold` it is skipped without decode. But the -`SortExec` keeps pulling batches, and the outer operator does its -own final ordering pass on the "RGs descending × rows ascending" -stream even after the heap is settled. We have measured this -in-house: swapping our internal `Exact` reverse for upstream's -`Inexact` reverse + `TopK` on `ORDER BY ts DESC LIMIT N` makes -end-to-end latency go **up**, not down — exactly because the -`SortExec` final pass and the per-row heap maintenance pile up on -top. - -### Bottleneck 2: Inside the currently-open row group, the sort column is fully decoded - -Even with the dynamic filter pushed all the way to parquet, the -filter has to be evaluated row-by-row inside the open row group: -the sort column has to be **fully decoded** so each value can be -compared against the threshold, the surviving rows feed the heap -to tighten the threshold, and only then can the resulting -`RowSelection` skip the *other* columns for rows that didn't -pass. For `ORDER BY ts DESC LIMIT 10` on a 1M-row row group that -is ~1M sort-column decodes regardless of `N`. Parquet doesn't -allow partial row-group reads, so even an RG-level `Exact` -reverse would pay this same cost — the only way to materially -reduce it is to drop to page granularity. - -### Bottleneck 3: File-granular work scheduling can't close the tap mid-file - -Once a `FileStream` picks up a file from the shared work queue, -it has to finish that file. Today's dynamic work scheduling is -**file-granular**: idle partitions stop pulling new files from -the queue once a global limit is satisfied, but the partition -that's currently inside a file decodes that file's remaining row -groups regardless. The work queue holds `PartitionedFile`, not -row-group descriptors. So even with a tight threshold and -aggressive stats pruning of un-opened row groups, the *currently -open* file gets read to completion. - -## Roadmap: Removing the Bottlenecks - -### Page-level `Exact` reverse — addresses bottlenecks 1 + 2 - -Row-group reverse (128 MB peak, ~8 pages decoded) vs page reverse (1 MB peak, 1 page decoded) - -Parquet's `OffsetIndex` gives us byte-precise locations for every -data page in a column chunk, so we can `seek` directly to the last -page, decode it forward, reverse the resulting batch, and emit. -Peak buffer drops from ~128 MB (one row group) to ~1 MB (one -page), and first-batch latency drops to the cost of one page -decode — the row-group-level memory cliff disappears. With each -batch already in DESC order, `PushdownSort` can finally return -`Exact` for `DESC` requests, the `SortExec` is removed, and -`LIMIT N` becomes a static fetch on the source. The -`Inexact`-final-ordering-pass overhead from Bottleneck 1 goes -away outright, and the Bottleneck-2 decode reduces to the rows -the page-level seek actually pulls in. - -Why not reverse the rows *within* a page directly? Because we -can't. Parquet's page encodings (RLE, dictionary, delta, -bit-packing) are all forward streams — you cannot decode the last -value without decoding every value that came before it. The -design is: **reverse the page traversal, forward-decode each -page, reverse the resulting `RecordBatch`**. - -The primitive is landing upstream in arrow-rs. Early numbers on a -100k-row, 98-page column chunk show **~50× faster -time-to-first-N** for `n ≤ 1 page` and **~9× faster** for `n` -spanning 10 pages, compared with the row-group-level `Exact` -reverse. The DataFusion-side integration that turns this primitive -into an `Exact` result is a follow-up gated on the arrow-rs merge. - -The killer use case is **filtered reverse `TopK`**: - -```sql -SELECT * FROM events -WHERE user_id = 42 -ORDER BY ts DESC -LIMIT 10 -``` - -`RowSelection::with_limit` cannot help here — you don't know in -advance which rows match `user_id = 42`, so you can't pre-compute -a selection of the "last 10 matching rows". The only correct -strategy is to stream pages backward, evaluate the filter on -each, and stop when 10 matches are collected. Row-group reverse -stops at a ~128 MB granularity. Page reverse stops at ~1 MB -granularity. For a selective filter, the saving compounds. - -### Row-group-level dynamic early termination — addresses bottleneck 3 - -The work queue today holds `PartitionedFile`. Switching it to -hold **row-group descriptors** lets a partition stop mid-file the -moment a global signal says `TopK` has K confirmed winners. Two -flavors depending on whether file ranges actually overlap after -stats reorder: - -* **Non-overlapping ranges.** The first file globally contains - the smallest values, the second contains the next batch, and so - on. Once `TopK`'s threshold passes file 0's max, every - subsequent file is pruned by stats already — the only fix - needed is the RG-granular queue so the partition currently - inside file 0 also stops at the right RG. -* **Overlapping ranges.** The smallest *next* value could sit in - any of several open files. Matching the non-overlap efficiency - requires actively comparing each open file's next-RG `min` and - pulling from whichever is smallest — a **k-way merge across - files** at RG granularity. The dynamic-filter pushdown already - approximates this implicitly (an RG whose `max < threshold` is - dropped), but explicit k-way comparison would close the tap - earlier when the filter tightens slowly across overlapping - files. - -A natural extension of the existing morsel-style work scheduling -but not yet on a PR. - -The two roadmap items above are *complementary*, not -alternatives: - -* `Exact` reverse closes the tap for `DESC` queries by removing - the `SortExec` entirely. -* Row-group-level scheduling closes the tap for `Inexact` queries - where `Exact` still cannot fire (function-wrapped sorts, - overlapping ranges) — the `SortExec` stays, but the scan stops - pulling row groups once `TopK` is satisfied. - -### Preview: the combined statistics-driven `TopK` pipeline - -The [combined statistics-driven `TopK` pipeline] is the in-flight -work that stacks several of these mechanisms: pre-scan -[TopK threshold init from parquet statistics], -[global file reorder in the shared queue], and the runtime -row-group / file reorder + reverse already merged. On a -microbenchmark (single file, 61 sorted row groups, `--partitions 1`) -**60 of the 61 row groups are skipped**, only one is decoded: - -| Query | Baseline | With pipeline | Speedup | -| ------------------------------ | -------: | ------------: | ------: | -| `ORDER BY col DESC LIMIT 100` | 28.5 ms | 1.64 ms | **17×** | -| `ORDER BY col DESC LIMIT 1000` | 22.2 ms | 0.37 ms | **60×** | -| `SELECT * ORDER BY ... LIMIT 100` | 22.5 ms | 0.66 ms | **34×** | -| `SELECT * ORDER BY ... LIMIT 1000` | 22.4 ms | 0.61 ms | **37×** | - -This pipeline still reports `Inexact` — the `SortExec` stays on -top to enforce correctness across overlapping ranges — so it pays -the Bottleneck-1 and Bottleneck-3 overheads listed above. The -17×–60× is what statistics-driven RG-level pruning alone can -deliver; `Exact` reverse + row-group-level early termination is -what pushes it further. - -### Extending the stats reorder step - -Alongside removing the bottlenecks above, the -[stats reorder step itself has room to grow][stats-reorder-followup]. -Today it only uses the leading sort key on a plain column — reverse -already handles function-wrapped and multi-column cases via -`EquivalenceProperties` reasoning, but stats-based RG ordering only -fires on a plain leading column. Lexicographic multi-key reorder via -`arrow::compute::lexsort_to_indices` is low-hanging fruit; extending -to monotonic function wrappers via leaf-column extraction (e.g. -`date_trunc('day', ts)` → use `min(ts)`) needs a bit more -`EquivalenceProperties` integration but is doable. - -[morsel-style work scheduling]: https://github.com/apache/datafusion/pull/21351 -[global file reorder in the shared queue]: https://github.com/apache/datafusion/issues/21733 -[TopK threshold init from parquet statistics]: https://github.com/apache/datafusion/pull/21712 -[combined statistics-driven `TopK` pipeline]: https://github.com/apache/datafusion/pull/21580 -[stats-reorder-followup]: https://github.com/apache/datafusion/issues/22198 - -Concretely useful issues for new contributors: - -* [Umbrella issue for sort pushdown][umbrella-issue]. -* [Reorder row groups by statistics within each file][rg-reorder-issue]. -* [Add more `ExecutionPlan` impls to support sort pushdown][more-impls-issue]. - -[umbrella-issue]: https://github.com/apache/datafusion/issues/17348 -[rg-reorder-issue]: https://github.com/apache/datafusion/issues/21317 -[more-impls-issue]: https://github.com/apache/datafusion/issues/19394 - -## Acknowledgements - -Thank you to [@alamb], [@adriangb], [@xudong963], [@2010YOUY01], and -[@Dandandan] for reviewing the design and the patches across many -iterations. The DataFusion community's willingness to engage deeply -with optimizer changes — including the ones that touch foundational -invariants — is what made this work possible. - -[@alamb]: https://github.com/alamb -[@adriangb]: https://github.com/adriangb -[@xudong963]: https://github.com/xudong963 -[@2010YOUY01]: https://github.com/2010YOUY01 -[@Dandandan]: https://github.com/Dandandan - -## References - -Prior post this work builds on: - -* [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. - -Landed PRs that make up this work: - -* `MinMaxStatistics` foundation: [apache/datafusion#9593](https://github.com/apache/datafusion/pull/9593) -* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064](https://github.com/apache/datafusion/pull/19064) -* Reverse-output redesign: [apache/datafusion#19446](https://github.com/apache/datafusion/pull/19446), [apache/datafusion#19557](https://github.com/apache/datafusion/pull/19557) -* Sort elimination via statistics: [apache/datafusion#21182](https://github.com/apache/datafusion/pull/21182) -* `BufferExec` capacity for sort elimination: [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) -* Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) -* Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) -* Row-group-level `Inexact` reverse: [apache/datafusion#18817](https://github.com/apache/datafusion/pull/18817) - -In flight / open: - -* Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) -* TopK threshold init from parquet statistics: [apache/datafusion#21712](https://github.com/apache/datafusion/pull/21712) -* Combined statistics-driven `TopK` pipeline: [apache/datafusion#21580](https://github.com/apache/datafusion/pull/21580) -* Global file reorder in shared queue: [apache/datafusion#21733](https://github.com/apache/datafusion/issues/21733) -* Multi-column / function-wrapped reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) -* Umbrella issue for sort pushdown: [apache/datafusion#17348](https://github.com/apache/datafusion/issues/17348) - -Benchmark suite: [`sort_pushdown`] diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md new file mode 100644 index 00000000..14d00987 --- /dev/null +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -0,0 +1,625 @@ +--- +layout: post +title: Sort Pushdown in DataFusion: Skip Sorts, Skip Decode, Skip I/O +date: 2026-07-05 +author: Qi Zhu +categories: [performance] +--- + + + +[TOC] + +*Qi Zhu, [Massive](https://www.massive.com/)* + +**[Apache DataFusion] now automatically takes advantage of sortedness in the +data — even when the data is only *partially* sorted, and even when +DataFusion has not been told about the ordering ahead of time.** This post +explains why that matters and walks through how DataFusion achieves it, +through a combination of plan-time sort pushdown, runtime scan reordering, +and mid-scan row-group pruning driven by [dynamic filters][dyn-filters-blog]. + +[Apache DataFusion]: https://datafusion.apache.org/ +[dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ + +## Why sort pushdown matters + +Many real datasets are at least partly sorted on disk: + +- Time-series files are written in ingestion-time order. +- Event logs are sharded and sorted by event id. +- Partitioned tables have a natural ordering by partition key. +- Modern data lakes based on [Apache Iceberg] and similar formats + often have to work with data **as it was written** — resorting the + whole table isn't an option. + +But that "pre-existing sortedness" is only useful if the query engine can +**notice** it and **use** it. Two common failure modes: + +1. The engine doesn't know about the ordering — the writer didn't set + Parquet `sorting_columns`, and the table definition doesn't include a + [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. +2. The engine knows the *per-file* ordering, but the file *listing* on + disk is in a different order, so global sortedness can't be proven at + plan time. + +In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the +cost of a full external `SortExec` — a pipeline-blocking operator that +must see every input row before emitting anything, dominating both +latency and peak memory on large scans. + +Min/max statistics used for *predicate* pushdown are well-known and +widely implemented across databases. Using them to *reason about sort +order* — deleting redundant sorts, biasing scan order toward the +most-promising data — is less common. This post is about how DataFusion +does the latter. + +[Apache Iceberg]: https://iceberg.apache.org/ + +## What DataFusion could already do — and what was missing + +DataFusion has always been able to skip the sort in the **exact** case, +using the machinery covered in [@akurmustafa's earlier post on +ordering analysis][ordering-analysis]: when the table definition +declares an ordering (via `WITH ORDER` or Parquet `sorting_columns`) +**and** the on-disk file listing already matches that order, the +existing `EnsureRequirements` rule sees that the scan's +`output_ordering` satisfies the request and **removes the redundant +`SortExec`** entirely. + +This post is about **everything else** — the messier real-world cases +where sortedness exists but isn't provable up front: + +- Files listed in the "wrong" order on disk (each file internally + sorted, but the listing doesn't match). +- Declared ordering with **overlapping** ranges across files. +- **No** declared ordering at all. +- `ORDER BY ... DESC` on ASC-sorted data. + +Three complementary techniques close each gap: + +1. **Statistics-based sort elimination** (`Exact` path). Extend the + optimizer to prove ordering from min/max statistics after + reordering the file list, then delete the `SortExec` entirely. +2. **Runtime scan reorder** (`Inexact` path). Keep the `SortExec`, but + bias scan order so the *most-promising* data is read first — + `TopK`'s [dynamic filter][dyn-filters-blog] tightens quickly and + downstream data is pruned by statistics before it's read. +3. **Runtime row-group dynamic pruning** ([#22450]). Inside the + parquet decoder loop, re-check the live `TopK` threshold at every + row-group boundary and physically remove pruned row groups before + any bytes are fetched. + +Together these compose into a **three-layer pruning stack** +(file-level, row-group-level, row-level), all driven by the same +`TopK` dynamic filter. Headline results: + +- **Sort elimination**: 2×–49× faster on ASC-LIMIT queries where the + file list was in the wrong disk order. +- **Runtime row-group pruning ([#22450])**: 5 of 11 `topk_tpch` + queries run 3–4× faster with zero regressions; total runtime drops + −44%. + +The rest of this post walks through each technique in turn. + +[#22450]: https://github.com/apache/datafusion/pull/22450 +[#20839]: https://github.com/apache/datafusion/pull/20839 +[Apache Parquet]: https://parquet.apache.org/ +[ordering-analysis]: https://datafusion.apache.org/blog/2025/03/11/ordering-analysis/ + +## How DataFusion Tracks Ordering + +EXPLAIN before / after: SortExec eliminated once ordering is Exact + +DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html) carries an ordering claim for +each scan's output, which is one of: + +- **`Exact`** — the optimizer is *certain* the output is in this order, + and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. + `LIMIT N` becomes a static fetch on the source (the reader stops the + moment N rows are emitted). +- **`Inexact`** — the optimizer believes the output is probably ordered + but cannot prove it. Downstream operators like + [`SortPreservingMergeExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort_preserving_merge/struct.SortPreservingMergeExec.html) can still benefit, but the + explicit `SortExec` stays for correctness. In this case `TopK`'s + [dynamic filter][dyn-filters-blog] tightens as the heap fills, and + data whose min/max cannot beat the threshold is pruned before it is + fully read. + +For example, given a query that returns the 10 most recent trades: + +```sql +SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; +``` + +- With no ordering knowledge, DataFusion scans everything and uses a + `TopK` heap to keep the running best 10. +- With **`Exact`** ordering, DataFusion drops the sort entirely and + stops reading after emitting 10 rows. +- With **`Inexact`** ordering, the `SortExec` stays but scans start + from the most-promising data, so the `TopK` threshold tightens fast + and the rest is pruned by statistics. + +The optimizer rule that upgrades a scan from `Unsupported` to +`Exact`/`Inexact` — and that removes the resulting redundant +`SortExec` — is [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs). `PushdownSort` +runs late, after `EnsureRequirements` has finalised the plan shape. +It walks each `SortExec`, asks the child leaf via `try_pushdown_sort` +which flavour the source can produce, and rewrites accordingly. + +## The `Exact` Path · Sort Elimination via Statistics + +File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
+*Figure: file reorder by per-file `min/max` puts the file list in range +order without touching file contents.* + +DataFusion could already recognize the *exact* sortedness case (declared +ordering + matching on-disk file list). The new capability is recognizing +sortedness when the **file list is in the wrong order** on disk, using +the min/max statistics that the Parquet writer already stored per row +group. Implemented across two PRs on `PushdownSort`: +[apache/datafusion#19064][#19064] (rule scaffolding), and +[apache/datafusion#21182][#21182] (stats-based file reorder). + +[#19064]: https://github.com/apache/datafusion/pull/19064 +[#21182]: https://github.com/apache/datafusion/pull/21182 + +For example, consider three files `a.parquet`, `b.parquet`, +`c.parquet`. Each is internally sorted by `ts` and declares +`WITH ORDER (ts ASC)`, but they were written by different jobs and end +up listed alphabetically on disk (which does *not* match sort order). +The old machinery has no way to prove global sortedness, so an +`ORDER BY ts` query pays for a full external sort even though the +underlying data is already sorted. + +`PushdownSort` fixes this in three steps at the file-scan node: + +1. **Sort the file list by per-file `min`** on the sort column. +2. **Check adjacency**: does `file[i].max ≤ file[i+1].min` hold for + every adjacent pair? If yes, the sorted file list produces a globally + sorted stream. +3. **Upgrade the source's ordering claim to `Exact`** and remove the + surrounding `SortExec`. + +Detecting non-overlapping ranges via min/max statistics
+*Figure: after reorder, the left case has non-overlapping ranges (safe +to upgrade to `Exact`); the right case has overlaps (upgrade skipped, +falls through to the `Inexact` path).* + +Two conservative bail-outs: (a) sort keys must be plain columns +(`ORDER BY date_trunc('hour', ts)` doesn't qualify — no per-file min/max +for the function output), and (b) sort columns must be null-free, so +`NULLS FIRST`/`NULLS LAST` semantics are preserved across file +boundaries. The overlap case falls through to the `Inexact` path +covered later. + +### `BufferExec` · a subtle multi-partition side effect + +SPM stalls when SortExec is removed in multi-partition plans
+*Figure: removing the per-partition `SortExec` leaves the top-of-plan +merge (`SortPreservingMergeExec`) directly consuming raw I/O; a stall +on any partition stalls the whole plan.* + +Removing the `SortExec` looked like a pure win, but the first +multi-partition benchmarks showed something counter-intuitive: **some +queries got slower**. The root cause is that the removed `SortExec` +was doing two jobs — sorting *and* implicitly buffering. Each +per-partition `SortExec` runs as its own task, greedily draining its +source in the background; the top-of-plan `SortPreservingMergeExec` +picks from those large in-memory buffers and never blocks on I/O in +any single partition. + +Once the `SortExec` is deleted, the merge sits directly on the raw +parquet streams. It's a lazy consumer — a k-way merge must see the +head row from every input before deciding which to emit. A stall in +*any one* partition now stalls the entire merge. + +BufferExec replaces the deleted SortExec with a bounded streaming buffer per partition
+*Figure: `BufferExec` is inserted where the `SortExec` used to live — +same greedy per-partition prefill, but no blocking sort.* + +The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): a bounded per-partition +prefill buffer that plays the same "greedy parallel I/O driver" role +the `SortExec` implicitly did. No sort, no blocking, and strictly +less memory than the `SortExec` it replaces. The capacity is bounded +(default 1 GB, configurable via +[`sort_pushdown_buffer_capacity`](https://github.com/apache/datafusion/pull/21426)) and grows via the +global memory pool, so it back-pressures the source instead of +OOMing. + +### Benchmark: `sort_pushdown` suite + +Sort pushdown benchmark: 2x-49x speedup across four queries
+*Figure: `sort_pushdown` results (`--partitions 1`, release build). ASC +queries with the file list reversed against sort-key ranges.* + +Numbers below are the [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) suite, +`--partitions 1`, versus `main`: + +| Query | Before | After | Speedup | +| ------------------------------------------- | -------:| -------:| -------: | +| Q1 — `ORDER BY key` (full scan) | 259 ms | 122 ms | **2.1×** | +| Q2 — `ORDER BY key LIMIT 100` | 80 ms | 3 ms | **27×** | +| Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | +| Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | + +- **Full-scan queries (Q1, Q3)** save the cost of the sort itself + (~½ end-to-end latency for in-memory sorts). +- **`LIMIT` queries (Q2, Q4)** benefit dramatically because deleting + the `SortExec` turns `LIMIT N` into a **static fetch** on the source — + the reader stops after N rows. A 342 ms full-file scan collapses + into a 7 ms K-row read. + +## The `Inexact` Path · Runtime Reorder for `TopK` and `DESC` + +Stats-based sort elimination handles the `Exact` upgrade — strong +correctness, sort elimination — but only when the table has a +declared `output_ordering` *and* the files are provably +non-overlapping after sorting by min. Three classes of queries +fall outside that window: + +* **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. + The `Exact` upgrade cannot fire because there is no ordering + claim to upgrade. +* **Overlapping ranges** — files written by different ingestion + jobs share time windows. The `Exact` upgrade keeps the `SortExec` + because the global ordering can't be proven, even though the + files often do contain large stretches of in-order data. +* **`ORDER BY ... DESC` on ASC-sorted data** — flipping iteration + at the row-group level emits "RGs descending × rows ascending", + close to the requested order but not strictly DESC, so the + `SortExec` has to stay for correctness. + +For all three, a full external `SortExec` is overkill. The parquet +metadata is right there, and reading the *most-promising* data +first lets `TopK`'s dynamic filter threshold tighten quickly so the +rest gets pruned. Runtime reorder wires that up by generalising +the `Inexact` path the rule introduced. + +### When Inexact fires + +try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
+*Figure: for each `SortExec`, the leaf source returns `Exact` (drop +the sort), `Inexact` (bias the scan and keep the sort), or +`Unsupported`.* + +The Inexact verdict fires when either of two independent signals is +true: + +- **Stats-based reorder available**: the leading sort key is a plain + column in the file schema, so the scan can sort files and row + groups by `min(col)` from Parquet statistics. +- **Reverse satisfies the request**: the source's declared ordering, + when reversed, satisfies what the query asks for. This uses + DataFusion's [equivalence-properties][ordering-analysis] reasoning + and covers function monotonicity (`ts DESC` declared, `date_trunc('day', ts) ASC` + requested), constants inferred from filters, and multi-column + composite orderings. + +### How the scan reorders data + +Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
+*Figure: the parquet opener applies file-level reorder → row-group-level +reorder → optional iteration reverse.* + +The parquet opener applies up to three composable steps at query start: + +1. **File-level reorder** — across a shared work-stealing queue, the + file list is sorted by `min(col)`, so the most-promising file is + picked first across all partitions. +2. **Row-group-level reorder** — once a file is opened, its row groups + are sorted by `min(col)`. +3. **Iteration reverse** — flip row-group iteration order for `DESC` + requests (and for the reverse-satisfies-the-request cases above). + +### File-level early stop already works + +Tier 1 file-level reorder with early stop via file_pruner
+*Figure: after file reorder, low-value files at the tail of the queue +are cut by the file-level pruner before they are ever opened — no +metadata I/O.* + +Once files are ordered "most-promising first", `TopK`'s heap fills +quickly and its dynamic filter threshold tightens. Low-value files at +the tail of the queue are then checked against the live threshold +by the [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) before they are ever opened — +never loading their footer, page index, or any data. + +### Row-group-level: the gap [#22450] fills + +Tier 2 RG-level reorder — filter column still read for every RG pre-#22450
+*Figure: inside a file, the first row group tightens the threshold — +subsequent row groups have their projection columns short-circuited, +but the filter column still has to be read to discover that no rows +qualify.* + +Inside a file, the story is almost identical — but with one gap. +After the first row group fills the heap, subsequent row groups +whose values can't beat the threshold evaluate to an empty +`RowSelection`, and arrow-rs's reader short-circuits: no projection +columns fetched, no decompress, no decode. + +However, **the filter column still gets read for every row group**, +because the dynamic filter has to be evaluated row-by-row to +*discover* that no rows survive. On a large file with many row +groups, that's a meaningful tax — most of which is redundant, since +metadata alone could have proven the row group unwinnable. Closing +that gap is what [#22450] does. + +## #22450 · Runtime Row-Group Dynamic Pruning + +The merge that just landed — [apache/datafusion#22450][#22450] — +re-checks the dynamic filter **at every row-group boundary** inside +an open file, converts the live threshold into a fresh +`PruningPredicate`, and physically removes any row group whose +min/max can't possibly beat the threshold. The pruned row groups are +**never decoded, not even on the filter column**. + +### Architecture · who drives the IO + decode loop + +Three eras of who drives the parquet IO + decode loop + +The interesting backstory is that **DataFusion didn't actually own +this loop until recently**. Three eras: + +* **Pre-[#20839]**: arrow-rs owned the I/O + decode loop as a black + box; DataFusion only called `.next()` and served byte ranges. The + row-group list was frozen at construction, so once the loop started, + no mid-stream decisions were possible. +* **[#20839]**: the push-based parquet decoder moved the loop into + DataFusion. The capability to insert a decision mid-loop now + existed — but the loop went from `drain` straight to `drive`, with + no decision point. +* **[#22450]**: adds the missing decision point. At every row-group + boundary, the loop pauses to ask the runtime pruner whether the + remaining row groups are still worth reading. + +### The loop, and the decision point [#22450] adds + +transition() loop: drain, decide, drive — Step 2 is the #22450 addition
+*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what +[#22450] adds — it only fires at row-group boundaries.* + +The loop body reads: **drain** the current row group's batches until +it's exhausted; **decide** at the boundary whether any of the +remaining row groups can be dropped based on the live threshold; then +**drive** the decoder into the next row group and repeat. Inside a +row group, only drain and drive run — no decision point. + +RowGroupPruner: watch (cheap), rebuild (expensive, only if changed), prune (cheap)
+*Figure: the pruner has a cheap "check if the filter changed" step, a +moderately expensive "rebuild the predicate if so" step, and a cheap +"apply the predicate to remaining row groups" step.* + +The pruner is designed so the expensive work only fires when it can +possibly help: a cheap epoch check tells it whether the dynamic filter +has actually changed since last time, and only then does it rebuild +the pruning predicate. The predicate is then applied to remaining +row groups' min/max statistics — pure metadata comparison, no I/O. +Errors always fall back to "keep the row group" — a flaky pruner +never drops live data. + +### Cascading prune · how the heap eats row groups + +Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
+*Figure: for `ORDER BY x DESC LIMIT 10`, opening the first row group +(values [90..100)) is enough to fill the heap; at the next boundary, +every remaining row group with `max < 90` is pruned in one pass.* + +The savings compound because the threshold moves in **steps**, not +smoothly. For `ORDER BY x DESC LIMIT 10` on a 10-row-group file +where reorder puts high-value row groups first: + +1. RG 9 (values `[90..100)`) opens. One row group is enough to fill + the heap of size 10 — the threshold jumps into RG 9's range (≥ 90). +2. At the next row-group boundary, the pruner sees that all of RG 8 + through RG 0 have `max < 90` and drops them in one pass. +3. Bytes for those nine row groups were **never fetched** — not + projection columns, not the filter column. Full I/O + decompress + + decode all skipped. + +This is the unconditional value of [#22450]: when reorder lines up +disjoint per-RG ranges (the common case for time-series or +partition-key sorts), a single row group can cascade-eliminate every +remaining row group at the next boundary. + +## Three-Layer Pruning · file + RG + row, stacked + +Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter + +A common question at this point: "if [#22450] prunes whole row +groups, does that replace the `RowFilter` row-level prune that the +`Inexact` path was already using?" **No** — the three layers stack, +and they're driven by the **same** `TopK` dynamic filter. (The +"Tier 1 / Tier 2" framing earlier maps to "Layer 0 / Layer A" +below — same partition, different lens. Layer B is what runs on +each row group after Layer A keeps it.) + +* **Layer 0 · file-level** (`file_pruner` + `EarlyStoppingStream`). + Cuts dead files before they're opened. The only layer that skips + parquet metadata I/O entirely. Already shipped before [#22450] — + this is Tier 1. +* **Layer A · row-group-level** ([#22450]). Cuts dead row groups + inside open files at every row-group boundary. Bytes never + fetched, filter column never decoded. **This is the layer that + fills the Tier 2 gap** ("× no early stop yet" pre-[#22450]). +* **Layer B · row-level** (`RowFilter`). For row groups that + survive Layer A, the filter is still evaluated row-by-row to + build a `RowSelection`. Rows that fail the predicate get their + *projection* columns short-circuited via arrow-rs's + `selects_any()`, but the *filter* column is necessarily read. + This layer has the highest residual cost (the filter column), + but also the finest granularity. + +The same dynamic filter drives all three. A single insertion into +the `TopK` heap becomes a new threshold that Layer B applies +per-row immediately (in the currently-open row group), and Layer A +re-applies to remaining row groups at the next boundary. No layer +subsumes another — Layer A prunes on metadata alone (never touching +the filter column), while Layer B is finer-grained but has to read +the filter column to decide. + +### Benchmark · `topk_tpch` (TPC-H SF1, `LIMIT 100`) + +topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% + +The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark runs 11 TPC-H SF1 queries, all of the +shape `ORDER BY ... LIMIT 100`, comparing `main` against the same +branch with [#22450] enabled. Headline numbers: + +| Metric | Value | +| ----------------------------------- | ---------------------------------- | +| Total wall-clock (sum of 11 queries) | 248.8 ms → 139.1 ms (**−44%**) | +| Queries with ≥2× speedup vs main | **5 of 11** (Q2, Q4, Q8, Q9, Q10) | +| Queries with regression vs main | **0** | +| Best single-query speedup | **~4×** | + +The five queries with significant speedups all use `l_orderkey` +as the **leading** sort key — lineitem's physical sort key, a +`BIGINT` with ~1.5M distinct values per SF1, so per-RG `min/max` +ranges are cleanly disjoint and `Layer A` can cascade-prune +aggressively. The non-winners (Q1, Q3, Q5, Q6, Q7, Q11) lead with +`l_linenumber` (cardinality 7), `l_comment`, or `l_shipmode` — +columns whose per-RG ranges overlap heavily because they're not the +physical sort order. (Q5–Q7 still *include* `l_orderkey`, but only +as a third-key tie-breaker — the leading key is what controls RG-level +disjointness.) A tighter threshold doesn't translate into clean +RG-level boundaries to prune at, so `Layer B` (row-level) still does +its share of the work. + +The takeaway isn't "5 out of 11", it's "**zero regressions and +no-op when the data doesn't help, 3–4× when it does**". The sweet +spot — sort key aligned with the physical layout — is the common +case for time-series, partitioned tables, and ingestion-ordered +event logs. + +## Future Directions + +Two complementary directions are open. The first needs an upstream +arrow-rs primitive; the second is pure DataFusion plumbing on top +of [#22450]: + +### A · Page-level `Exact` reverse · arrow-rs [#9937] + +Row-group reverse (128 MB peak) vs page-level reverse (1 MB peak) + +[#9937]: https://github.com/apache/arrow-rs/pull/9937 + +Today's `DESC` query support lives in the `Inexact` path: the +row-group reverse emits "RGs descending × rows ascending", which is +close to DESC but not strictly so. `SortExec` stays. + +A page-level reverse primitive in arrow-rs would let the reader +walk the parquet offset index in reverse — decoding each page +forward, reversing its `RecordBatch`, and emitting before moving to +the previous page. Peak buffer drops from ~128 MB (one +row group) to ~1 MB (one page); per-page decode stays forward (RLE, +dictionary, delta, and bit-packed encodings are all forward-only +by construction — page *traversal* is what gets reversed). Once +each batch already comes out in DESC order, `PushdownSort` can +finally return `Exact` for `DESC`, the `SortExec` is removed +outright, and `LIMIT N` becomes a static fetch. + +In flight upstream as [arrow-rs#9937]. The killer use case is +**filtered reverse `TopK`** — e.g. `WHERE user_id = 42 ORDER BY ts +DESC LIMIT 10`. You can't pre-compute a `RowSelection::with_limit` +because matching rows are sparse; the only correct strategy is to +stream pages backward, filter, and stop when 10 matches accumulate. +Row-group reverse stops at ~128 MB granularity; page reverse stops +at ~1 MB. + +[arrow-rs#9937]: https://github.com/apache/arrow-rs/pull/9937 + +### B · Page-level dynamic prune at the row-group boundary + +Page-level dynamic prune: extends #22450 to skip individual pages, not just whole row groups + +[#22450] prunes whole row groups at row-group boundaries. The +finer-grained extension prunes whole **pages** within a surviving +row group. The signal is the same dynamic filter, just re-applied +at page granularity — for any page whose `max(col)` is already +below the threshold, the filter column's bytes for that page can be +skipped along with the projection columns. + +Today's page-level pruning runs once at file open using the static +query predicate. Future B extends [#22450]'s "refresh at RG +boundary" pattern to also rebuild the page-level filter with the +live threshold, so upcoming row groups get tighter page selections +mid-scan. Same arrow-rs API [#22450] already uses — no new +primitive needed. Tracked in [apache/datafusion#23216]. + +[apache/datafusion#23216]: https://github.com/apache/datafusion/issues/23216 + +Conceptually this is the same idea as [#22450] stepped down one +level: every level of the parquet hierarchy gets to chip off its +share of the residue from the level above. + +## Acknowledgements + +Thank you to [@adriangb], [@alamb], [@xudong963], [@2010YOUY01], and +[@Dandandan] for reviewing the design and the patches across many +iterations. The DataFusion community's willingness to engage deeply +with optimizer changes — including the ones that touch foundational +invariants like who-drives-the-decode-loop — is what made this work +possible. + +[@alamb]: https://github.com/alamb +[@adriangb]: https://github.com/adriangb +[@xudong963]: https://github.com/xudong963 +[@2010YOUY01]: https://github.com/2010YOUY01 +[@Dandandan]: https://github.com/Dandandan + +## References + +Umbrella issue tracking the entire effort: + +* **[EPIC] Sort Pushdown · skip sorts and skip IO for ORDER BY / TopK queries: [apache/datafusion#23036](https://github.com/apache/datafusion/issues/23036)** — phase-by-phase status of all the PRs and follow-ups. + +Prior post this work builds on: + +* [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. + +Landed PRs that make up the merged work: + +* `MinMaxStatistics` foundation: [apache/datafusion#9593](https://github.com/apache/datafusion/pull/9593) +* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064](https://github.com/apache/datafusion/pull/19064) +* Reverse-output redesign: [apache/datafusion#19446](https://github.com/apache/datafusion/pull/19446), [apache/datafusion#19557](https://github.com/apache/datafusion/pull/19557) +* Sort elimination via statistics: [apache/datafusion#21182](https://github.com/apache/datafusion/pull/21182) +* `BufferExec` capacity for sort elimination: [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) +* Push-based parquet decoder (DataFusion owns the loop): [apache/datafusion#20839](https://github.com/apache/datafusion/pull/20839) +* Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) +* Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) +* **Runtime row-group dynamic pruning ([#22450])** — the centerpiece of this post. + +In flight / open: + +* Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) +* `peek_next_row_group` API for per-RG `fully_matched` RowFilter skip (arrow-rs): [apache/arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) +* Page-level dynamic prune at RG boundary (Future B): [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216) +* Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) +* Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) + +Concretely useful issues for new contributors: + +* [Add more `ExecutionPlan` impls to support sort pushdown][more-impls-issue]. + +[more-impls-issue]: https://github.com/apache/datafusion/issues/19394 + +Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [topk_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). diff --git a/content/images/sort-pushdown/arch_one_glance.png b/content/images/sort-pushdown/arch_one_glance.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8dafc3a15c85f423ac2d43a77a23360350f433 GIT binary patch literal 132456 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 literal 0 HcmV?d00001 diff --git a/content/images/sort-pushdown/buffer-exec-stall.svg b/content/images/sort-pushdown/buffer-exec-stall.svg new file mode 100644 index 00000000..bbcc9a24 --- /dev/null +++ b/content/images/sort-pushdown/buffer-exec-stall.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + ✗ Without BufferExec + SPM polls I/O directly — k-way merge stalls on any slow partition + + + + DataSource + (I/O bound) + + + + Partition 0 + ⏳ I/O in flight + no batch ready + + + + Partition 1 + + ready + + + + Partition 2 + + ready + + + + Partition N + + ready + + + + + + + + + + + + + + + + SPM + k-way merge + STALLED + waits for P0 + + + + no progress + + + + + + ✓ With BufferExec + Background prefill — SPM always has rows in hand + + + + DataSource + (I/O bound) + + + + BufferExec (bounded) + + + + Partition 0 + + + + + + ready + + + + Partition 1 + + + + + + ready + + + + Partition 2 + + + + + + ready + + + + Partition N + + + + + + ready + + + + + + + + + → SPM + unblocked + + + + + SPM polls partition (blocked when no batch) + + background prefill keeps queue warm + + buffered batch (ready to drain) + diff --git a/content/images/sort-pushdown/buffer-exec.svg b/content/images/sort-pushdown/buffer-exec.svg new file mode 100644 index 00000000..fe8a744d --- /dev/null +++ b/content/images/sort-pushdown/buffer-exec.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + BufferExec — per-partition bounded queues + + + + DataSource + (I/O bound) + + + + BufferExec + capacity: sort_pushdown_buffer_capacity · default 1 GB + + + + Partition 0 + + + + + + bounded queue + + + + Partition 1 + + + + + + + + + + + + Partition N + + + + + + + + + + + + + + + + + + + SPM + k-way merge + + + + + background prefill + + consumer drains on demand (no I/O stall) + + buffered batch + diff --git a/content/images/sort-pushdown/desc_walk_file.png b/content/images/sort-pushdown/desc_walk_file.png new file mode 100644 index 0000000000000000000000000000000000000000..913aa86cfa57e638dbd13a78b7c21adbf0ffc0af GIT binary patch literal 98049 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


(BtQyE=a{xvt>q!4QwOs!e$akO=N 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 literal 0 HcmV?d00001 diff --git a/content/images/sort-pushdown/desc_walk_rg.png b/content/images/sort-pushdown/desc_walk_rg.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfff55966ad8cc8f92a6e6654447c7885c4b730 GIT binary patch literal 110443 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
ft+N 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 z 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 literal 0 HcmV?d00001 diff --git a/content/images/sort-pushdown/phase1-file-reorder.svg b/content/images/sort-pushdown/phase1-file-reorder.svg index 9ae798ba..3ea69648 100644 --- a/content/images/sort-pushdown/phase1-file-reorder.svg +++ b/content/images/sort-pushdown/phase1-file-reorder.svg @@ -17,7 +17,7 @@ - Phase 1: file rearrangement by declared ordering + File rearrangement by min/max statistics Before — directory order: diff --git a/content/images/sort-pushdown/phase2-stats-overlap.svg b/content/images/sort-pushdown/phase2-stats-overlap.svg index 027860ef..ab03f133 100644 --- a/content/images/sort-pushdown/phase2-stats-overlap.svg +++ b/content/images/sort-pushdown/phase2-stats-overlap.svg @@ -1,79 +1,92 @@ - + - Phase 2: use min/max statistics to prove non-overlap + Using min/max statistics to prove non-overlap - - - Non-overlapping ranges + + + Non-overlapping ranges + + + file_c [0..100] + + + + file_b [100..200] + + + + file_a [200..300] + - - - - - - 0 - 100 - 200 - 300 - min(ts) / max(ts) - - - - file_c [0..100] - - file_b [100..200] - - file_a [200..300] + + + + + + 0 + 100 + 200 + 300 + min(ts) / max(ts) - - - - Ordering: Exact ✓ - SortExec can be removed - - - - Overlapping ranges - - - - - - - 0 - 100 - 200 - 300 - min(ts) / max(ts) - - - - file_x [0..180] - - file_y [80..260] - - file_z [140..300] + + + + Ordering: Exact ✓ + SortExec can be removed + + + + Overlapping ranges + + + file_x [0..180] + + + + file_y [80..260] + + + + file_z [140..300] + - - + + + + + + + + + + 0 + 100 + 200 + 300 + min(ts) / max(ts) - Ordering: Inexact (or stripped) - SortExec stays + Ordering: Inexact (or stripped) + SortExec stays - PushdownSort sorts files by min, checks adjacency, upgrades to Exact only when ranges don't overlap. + PushdownSort sorts files by min, checks adjacency, upgrades to Exact only when ranges don't overlap. diff --git a/content/images/sort-pushdown/plan-diff.svg b/content/images/sort-pushdown/plan-diff.svg index a4d08673..8fdd8bc4 100644 --- a/content/images/sort-pushdown/plan-diff.svg +++ b/content/images/sort-pushdown/plan-diff.svg @@ -1,13 +1,13 @@ - + @@ -15,56 +15,39 @@ - EXPLAIN before / after sort pushdown + EXPLAIN before / after sort pushdown (single-partition) - - Before — SortExec on top + + Before — SortExec on top of scan - - CoalescePartitionsExec + + SortExec: TopK(fetch=3) + expr=[ts@0 ASC NULLS LAST] + preserve_partitioning=[false] - + - - SortExec - expr=[ts ASC], full sort + + DataSourceExec + file_groups={a, b, c} + file_type=parquet - - - - RepartitionExec - - - - - DataSourceExec - files: [a.parquet, b.parquet, c.parquet] + blocking full sort across the scan + LIMIT applied after sort - + After — SortExec eliminated - - SortPreservingMergeExec - - - - - - SortExec (removed) - no longer needed - - - - - - - RepartitionExec - - + + DataSourceExec + file_groups={c, b, a} + limit=3 + output_ordering=[ts ASC NULLS LAST] - - DataSourceExec - files: [c.parquet, b.parquet, a.parquet] + files reordered by min/max stats + LIMIT becomes a static fetch on the source + reader stops the moment 3 rows are emitted + no blocking sort, no full scan diff --git a/content/images/sort-pushdown/pr21956-decision.svg b/content/images/sort-pushdown/pr21956-decision.svg index a8203241..f03aa853 100644 --- a/content/images/sort-pushdown/pr21956-decision.svg +++ b/content/images/sort-pushdown/pr21956-decision.svg @@ -1,66 +1,87 @@ - + + + + - try_pushdown_sort: Exact / Inexact / Unsupported decision + try_pushdown_sort — Exact / Inexact / Unsupported + + + + + source.try_pushdown_sort(req) + + + + + + + Natural ordering satisfies request? + eq.ordering_satisfy(req) + + + + yes - - - PushdownSort rule - source.try_pushdown_sort(req, eq) + + Exact + drop SortExec - + + + no - - - eq.ordering_satisfy(req)? - (natural ordering already matches?) + + + Pushdown still applies? + column_in_file_schema + OR reversed_satisfies(req) - - - yes - - Exact - drop SortExec + + + yes - - - no + + Inexact + set runtime-reorder flags - - - column_in_file_schema - || reversed_satisfies ? + + + no - - - yes - - Inexact - set both flags + + + Unsupported + SortExec stays · full external sort - - - no - - Unsupported - SortExec stays + + + Outcomes + + Exact · static limit on source + + Inexact · TopK + RG pruner + + Unsupported · no benefit - - - Exact - → Phase 2 sort elimination · fetch becomes static limit - Inexact - → #21956 runtime pipeline: file reorder + RG reorder + reverse · SortExec / TopK kept on top for correctness diff --git a/content/images/sort-pushdown/pr21956-runtime-pipeline.svg b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg index 5bb8d678..6490ea96 100644 --- a/content/images/sort-pushdown/pr21956-runtime-pipeline.svg +++ b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg @@ -1,69 +1,82 @@ - + - + - Inexact pushdown: two flags drive a three-step runtime pipeline + Two flags drive a three-step runtime pipeline - - - ParquetSource carries the inexact-pushdown decision - sort_order_for_reorder = Some([req_col ASC | DESC]) - reverse_row_groups = bool - // set by try_pushdown_sort, read by the opener at scan time + + + ParquetSource carries the inexact-pushdown decision - + sort_order_for_reorder + = Some([req_col ASC | DESC]) - - - - 1 - File-level reorder · shared morsel queue - FileSource::reorder_files - → sort files by min(col); first file picked across all - partitions is globally the most-promising one + reverse_row_groups + = bool - - for each opened file + set by + try_pushdown_sort + read by opener - - - - 2 - Row-group-level reorder · per file - PreparedAccessPlan::reorder_by_statistics - → row_group_indexes sorted ASC by min(col) - using parquet column statistics + + - - if reverse_row_groups + + + + 1 + File-level reorder + across the whole scan · shared morsel queue + Reorder files by min(col) so the most-promising file opens first - - - - 3 - Reverse iteration · DESC requests - PreparedAccessPlan::reverse - → row_group_indexes.into_iter().rev() + + + for each opened file - + + + + 2 + Row-group-level reorder + per opened file + Sort RGs ASC by min(col) from the parquet column statistics - - - Decoder reads row groups in this order - SortExec / TopK above the source still enforces final ordering - — the stats reorder is approximate, not strict — + + + if reverse_row_groups + + + + + 3 + Reverse iteration + DESC requests only + Iterate RG list in reverse → "RGs DESC × rows ASC" + + + + + + + Decoder reads row groups in this order + approximate ordering — SortExec / TopK above the source still enforces final ordering diff --git a/content/images/sort-pushdown/pruner_loop.png b/content/images/sort-pushdown/pruner_loop.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e273b06c5743d5c34f507f21cbc55d35f0c31b GIT binary patch literal 141158 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

C_R~WMWK^cE|{e(UM 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

iid2q#FZ{m-}C#50BGp3=v9o11OODRK(*< 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 OqxMGgb(PYW(EkfS?+Ud5 literal 0 HcmV?d00001 diff --git a/content/images/sort-pushdown/pruning_stack.png b/content/images/sort-pushdown/pruning_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..31f85b538fa767d0dbb0904e02824335b5efd7b4 GIT binary patch literal 175106 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ⅇ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%0Dn}?s>O^K&(&wQ(gsXB1F5F68Wr({Ttbzyvh zqxI;j!*XoHOikv0SrNV+s`;ei!zNQ{$f4WS;0H zIAz7df{Tq9wMSE0y%Kv}VR!AHvkfy>AWoCRah6kZXVKoDHqqR!X9o~!Zv_c&Om)b}TjHO|+ zJ0Qp8IFY*WC+BH><-QVz~@`&s$tJ5))R2e76!H@d)) zJXOgcE*7&2Y-~FY0Z)I^+JE%RyVFX~4CKi1E)5A&QFQX+2vyw#Cl%xrah6!Who3l0 zx_Pt06;>w zk>6I8o11pq?l1UMlx_FZ)teX98?8ddle=42800EFW!NwrbCB?GDY=dC%f#OPp4eq& zyMx|JA4S}0x zu$O7A1GQ(U^K-9Ab@Fb?-ZjiLSn5uRLjFW-qGsuflzRU~Y44q-mQWi?a2vUg_XU?PwBkY2N%$jyST~+e7 zEf3hU;^r5Zo06&aYdsAa3((dvYcK=pi!cf*p(fq;GFYHOsE-P2(D#(hIoMh41ImBG zJ$>lVG<4Uwkf6_g>|+vB?DG|NJZ7J7^H(c+-a{xCSF?719yvNL)S!MOywnr-h*6+D zNbhK|OsV#TG$jL&t>lMcHB3cZ$}gwwO`MS9drXoWmj?}%0NVE7a_)q+y|jgTH8HmN zhR$RXhe~O*Nc^$Fgg0g=B*ewzgMS2^sYE(3Fa$cTdP0#>u;gXgAIl_EjCneo+A9X1 zYTwwD5sBuT7hj^JIFw6B%dc~9w<)D|d?% zZwl*~KbkH^`xy(uV{F}~-c6mWP{5gw+Uy&j^pmrh920`MRM$rRc+?1-;%Jzlf}twI z&lmB57vI=52?T`v^fh@(DH~C9hg@4=lh+6Br780%gi2`ZCE|NA!&oQ4Sj{ zbobq2v0FjB0lQV&gXLS)E`{Wo92T*ssG&6DH3gfKafwaVCCr!Tn~?`717wQn5CIv6 zDHc5-filM>eoggdqZ^o6VZXUq@UhtG+mS%DV755piwj*4%K4<1SN9;mT8S_Q>^ zaGU57nX6xpL9Zk9KeR0Hnwxn0_D0^Cw|5R{+`9yOS|ZcEQZBFJJ=lA{ATe1a5h$Bq zc`=Twb|x~Nu3)tGiW08A{A9Gm^vU!&-3ud#Dopi1Rm$T@oab6Onq0%18+B!C&{}B{ zjls+9FUMpDZI5lW#SiQo8&;_7ml>7on}>@b|!1vXv@uERLz@Ea1!OYkls=#`I&ou&TSgw?0C#A!~MKD zER07<{&u?OFGQRyKB*jM#<5qijwZ5FZcBwn#$Wg0h#dcR>#DI$XpunjQT3lgOhzR|A+ec zBKd*OipuV1JxkPnTdN z*u&B;Og#7d4BjE49x`x4yMdHeRRZ5RNhcaT!XL6ob5UE-DjZ^svAuP{>S&E#NSxE0{IgL;8%PPXwWqL873pEE=C4u8l?M&JNVT*j;6+(#(49wbM)eJYD3l(dSZx!Y6JkF^iYCFjoy7~W zzMoTRq*ayOCYV$F{r;P8yBfuj3o52N$@0sjzSnv+TX{!e=$SOGZ4>Qfib_c~x;|0_$w}CsYFda75aMr#HMME8)%GP%#$c za3+Y3<@Ehgp?;*WM=G~;ZBYPm_|F=g8eiI__{*EWA_vov7`r+;HK(h(y*4AR%#9Zj(jUA=%cq^<_^q)J~<obX zSUSQ&#V^5wCw$|tc-hb~jy%d1{M3zzOewkcd8kvuWqvio5&@f{gbZ#@Ox3%QcQxE@ zilaz6DXhXEsw;J8V(3oEuKyw>6|7n=h;-|ar6p^gm||;9!a35c`N6{Zom2!Nz)O4A zwo$pem1APrt?Vx@+uqZUMdtv|Xv2@zEryUJPQt!Iw8vC$B$lh4MELvW28hh<4Sew$ z^lcH6+aVH=(wI-7K1ey9{9e12kttQTxD4oc4&RbH-+axt9s`6GZ%yx&&aX!&%Vy?9 zy^@|=JLghY5;rtX@;qK2Fe8-PAbRiO7=`^TBL0z9Odu7d!q&V1Zfm+B+NU+ZbAw>6 z@*r`_q&4P69llr^Z#}&wg2Yt>PA*gn@h|^OL1G_ocqK)UwV5)@K9tQ=o^Z3XiuO9NL7*RE zvWHMUx|m0pv_-IfZuFx_ti=r9vGearrOX}ebjbE)Fpl?PxHlbLv=lL|WV z=8Ft;qY2I3WDAvM;u8g1gcLcGURwl7dMgplm={NkVW&D8Y}C$&cR460@*Nd#!FO-f ztlr-%ZrbcA>nBLC{K-jP3?ccs1bk>VEq$cah^V2CC#6TXBDuNkAE{l?n4D7fCj{uc z;Y0Tm7+D_IVW!eTF~xj6jYv9?+<@P)LriI0=JrFmU@xR0C%xJ}h06ThcgUd+*5ap> zgjZ4aitie97s-lo9hC|ah(5gZwfNqAK1K=?KrwO} zi+=)sQlM3ke!l_c%!(CgiFHE14JC~=)nGP+cor=ZQp(HaY)=NvCHyTWhZNqMGWKuE zeY%0yR*z3iu00RkY;vln%|>#jEc6|rZnxn3xh=eJv?!9=mJOzGf4Pa;uo#2t50fGa z9gYn)bm=(sH7h*dFY_rquX_<)_aVhxyvIfCnX1_#s6>HGJ}L&jI8^nfu}N5A;F*Hz zT3cC$t{0~qPdYQo)45#!$;lnuRRR%flBEnY3uE7rg+Iiy(!@{~&NrTio+*>Ly=^Jy zkQz&2A!q`J;o)Zp)bDu=j?15m7m?#DAKaNssW5IY!Bg`4V?y13VM1BA!|8y;pM4xL!-Nu-%!w6a(I zbdw{+{05K2J2R@)3k8$j8aWNwh}Y5z0ln5aiF+&11$HT;?wC=LEQQ{3lj8BOCK+;a z5raZT;g|8_8{D#~vr>^Om`81UlFE`m$~5ma-#OM}W01roZ%}Mw&}&UC4JdM!iNjeq zeu|gQ^{7g#aoXV$SLoXFYg!@4BsPjG$f-_=6VGSQH!}SNKM}V-gQ^>i#SN4!!YL?7b$8;b>^drrXBi zj(x60iEe@g9|MhgUnrd{HVlimQenV0Y zlJWeor+I|*cz(# z%l$cyei(lTIdqhT!M$&gols772ng(}zUy;PKpJZH%@QkJtU6zJ2kr3&Y>~Z>)>KG0waa4WMEK|Q%LN~SOvAePC+fd91ed&E~6zM(bomkFg6LIe8 z18CQw+9)UVK%G`eg$!mr(oDTV;aKq%#Ps(XQRT;Gs~fT5XN2XL3`umg3ukJuW^KgA zm=MBp)zPtXpVUCO#kq+}BI$%zk*hua!Bdy# zzSXxvRM5uPJLk;V0u8D+0%+ZilZ&6r0}RMJHxM+l-HE#jJJ=G)sXxTsDPcXcc`~0T zI9|DgKWHA@fWHYe2%i&fFwPz*Em-XQR3Mv#SXsaaA?<2+=bYTDB(cBH8CwPVOuQ8& zz1PpHx8;vw8`s`Lb4Gy)&jxrtqw?iTAU<`93+32@HoI`+KJo*#39be$?4dq3)9oe; zdGdmc!HIn1Rq4SpRf9cdWN*`~*L0hZ0m=1k7fs{>e^yHb3rSL>MeQidp4io4Rld@< zk{*cj(P88kv(@3;8T%QuM=EwFNUH6xOs4Kq0OG3XyL0ME4n?4)GSBd3<3oCkqet{QfkF z`C5Xh3d}@>A$(KWaPuNVhFK?!a?6 zFe7-*W;I0yH2$q$x>tPA;?!H{A7K>$dG~N|0@t z&qYu}Sf0*Whx(T!koy3fRK32lHJpk#GZfM?k~M0S(DSm&M=8+G5A|qrp=$HP{_xD> z#sdy2wwczzBz4W4r{!FUjD63aCT}wQ+OmYq^3Z+>kJPr_QUhmHd=BB~5;BC; zO5&yzCGWz$+R=qzU(4vNK7fLM2X;S+wu5s^b{0HxtAVRfJE@m4mRo&O8ja@VbN3M- zt5KDZZC37^4deUpJt0Ocdbn6wKj|_}zzCd_&Eajc8}7O!e=EoD@HeRfqRK~vsk2%} z9aGl92~pB=LVW4?!2CmGcZ>~kiBGf*DCsW|WgR%GOG~}25xI}3Vs23LoB{_~ebhmf($gbv zr|ctDA*flcwVTzf>_`L%#28QQ*e>P}Jigv~bX>GBIACYi9BYScTutd{G%g-vsVqGVT8gXK%qx4eZbQIshA_eBEC~kv@5FVS? z=<@23b)zOXOp+V}0{J}}+98HLjR=#PfnFoDWb3N7s@Ie^ua~#2c%Uo{Zgiod0P-ZT z3H!&%4>oa4D|S2DX?0E};i21wrp~+Vu{gWYn9?K9F~GO>Ia`|$Z6Q2y)!0k-m$b27MvA+>+okZ$WUzmN(mncFsp1IW#KHXNX*WKfec+ICXoO!D@ za*NbDiJDQ z@aC%BfOQXV(EEvLxY@)(o{sD@eIbEO#E)sH{53AoTNO%(s$L(ogen3+^l#XP#>Pk1 z0*aCs)YP7$xR~7w0zWLbZ@v||b)^F~*%&W08r@;dUB|_@oC|f~AsF+ny$&F7?xspk zeQP-N#mw_u2-f4(ww$5^Tr z(`eE|PDmV=2utmIaZ*7}x}3MQag_5uwH0&&@vK;`+JSEMT9Xy;jz-1szZ8iED=61g zj_=8ZPyMNQh@5eApb=z@tDqASBp}*itL&rP>gOt#6bb({u|*Q_u<0JHOR9Pn!PQui zqY!vqsLl43u`0-*CGxnxje2+Zb;LsCU00EZ^m$vxqC-g{T^sUt$Lw+Ta|z7D(0k|P5`x7+YLWA?+NoR2-%|CB zN=9kvV`yCJl$7(x6-p?Yzj$tqMq51wAF)m?$&gQG(w>~m*cA7xNF*3mOxPaOY#+CQ zZME+DV#y6VDT$=M@MHds@G{P4vfunZ<*)d|x9Eegf)yVktS$f(joLiVpcxAYpqiH@ zbJ=Zijqu8V)|iiO5PRx`Ts;mRy9=4oXpJdYgf76@6w<>KK8|r{5w4lJSE*jU$?`=+ z?#jIV-HKqF@Ji^)HTbS{6{4qA)n10}EsfYZLdunZei;Kj(}q~3YZ0AmH;v@{m+Qj3 zhVFcJwub*5>L9<8U@gT}SMaoh@+2`utfFG^8q?YrSHx)U0myK@;kyZU5#?t|xc)1) z7|x#dtpa^F8*258?{c7RzQMw4NAwlU>dVCT%3_w54;Kv-E&FrXp|n44>ENi+!osC| zdy0ytzKi3B+N(sOZwUvMV$^4CY!{qng9+H|`t12yzDH$b%^(PaYcaG4ZW>uU=P9-I z)g;0LHvJ0e`KaTy*TEe5EDa8p<1B&Ok^V|>LjI_#vxWkh( zlJ*_5UK#oxr!r>}=Pdg=*UnmjE9g{OH9X==&T!|WP@UeU#B=tgU?n2Tu1Yr>YRSH_ zQsKobkyA+D>J+8gb7@8R-E5vRx&V=^5ZZdc5~$S$&Do^jzB}`O zSfMDZfE(&$?3(a!>OfPHj1pqrCn@7Y-xv5!e_`jFY4&xWhB!i5Ye%#st?U%!Yn6YG zEa`z;MQX2Wo|8iyPUhyfC$W9a+ig<|*!%t2?;;XsC0|s9tS&E|C``y`>5$)e0Xml% z;!KJCkV6^XsQajK-VZ#G2)$XUme>SxKA+)y=lpJ;600NXMTOLzbz)D{Y~@hSbO zZ0+>M`my56IxddOdnx_qj}6aKv6hNDWm>mFHM+~MUOtufpd5#e-4XQJjqo0udWK@M zU`c3Bc>g!OhxE$L6M)xag<W^-Uuq|JAGHpNAcCL|Ezk@L>bp8Q0SLWyZh#hQ5{&feVhq}!PH zje#S#=Y^(lafdCNPjM8_|C-5Y(d;)3Obqa;v#8W(JS@eHz147;XCQLfHVjnRb;bsu zTry!DUL)L7k1dh#ZpP@ey@?zr*ZEXph9%gA9{x(UMKlaXs z;tstHM!%s0T0}fdd1mP-WjT+Y_|3Q(rD*DetZ`w35DJ`!rUiCppskRhyUH^d9|00J zT0m#{v-{nhEs?9Kt3LAxuaJqAWTY{GnFY-5-_|n^?-rNK3{M#>=MuJabN+&dtf+_8 zDM5Y7J!<{r;jKgZy^(7Knol_w1+Cj~*=drSzT^AWrMlq%Deo(z;^?+*lMo<51A*X; zdvJGmf)gZYfMCHI2#tr}(zr|G?g?(4;O_43F5Nh<^PPLnyLXKH@BMsZ)Q=inHF{TV zS+&-hbFS^35e&Drqn9O>b4lIKiA2doM5Z+M-nat z2Sj+aF7i3jiuY}%MMmUEl?Yxx%0~>%_EFM@uXJ*Qd2^pw>$#L!?x6QB@itVNXnkJ1 zq;tAomJGi>Bp{NoB_f6q?#8KK=4LkLPT&&=`pR%_;*hz@-0O^N?@#+FCvcXThljI9 z9Ny7Y22~wIWljA!s9a$X?{}A9hC@3?`o5K{u-3KH-(*Vz-sY|{oN^dxCNb3h?N=f* zRYu8}2uy0!_}(%4@qSvP8EhUY?7JleKhe}=x=dJ6E{e7&dA(qUU;Dw4_RIJ(>7V1> zBhwdEkrYL*pQYM04DgggiRqM%PN0OPf5~4yMuUDrkwM#Z$tFIwWDDUHTb=fu4oWM> zA2LLcp-V(=5+)WaYcEC47RHa(fT|2nHjA#%x&r07yC=S`a_i=^)p*E!(_M{o$^Zf; zU7cO9^oEYA)(pPl1FE<+55XG z5s~qkMPz(l1}L-Feifg3sX#`gy>->9u*3#h-YO?{%oX->QyuzLJ<>J;##~UHkK-tE zbKc>tUUSc|Ab03)`>`R^&inB=X%M zmJgc6T6u#hg%LP8InVnJ&oE+A-aJ58njBW#j@{wQZh(=C$y@JCY&U**x=2|ooOr6V zRC11LA19K}H9Eabyhua__Y5S}7a&IzhS4I?SFK8%lU37LmILrolgyIe&RWR&NaTJP zc{{#0W@>H!7RZL}4foL2jjlkZW!Y11u%ANfnkriV(Bn*_7VR|HLzedxa+7MDu`=Ii znYlTfBGvl#OxhN>H@8olF-K88;GePI3m2=L`i7{lHq!gz2B?t#Qzqa0pk%EEyV&ms zdOleoFsWjZ6!u*i+eV9pG45`OjvO0O*tk4Xwom{Ml?h^@Fd@Nd4oZ~_-UN1LkTlB+V&Qs5FrFiMs33e?@en-gFgE_ujWH!5={MPpv)+@AGFkCu31zs1TlDCe2gd7Vfd|{K1MhLA6 zij-*B1Q^hs2VBvVdvZqjm;I8C zXg-S+7EEMsYXjwG$o`5 zWac8{;PX`O=U;V%xFn1H{1o=$ut(^`mqQNX%@_Y-zpt5CvG5xK$}ME7n4k05%SL+E z3V#0po+|Pvn`=H1pA6|9j>1Ntk^Ym+$i^+?}5U1Ac^^e+<} z=D!d1uj7o|Ki+8)zbVH_Mxa^CRDeFyDIfS`QcnLi65rH3{k;GM1?#r zp@fa%O*NI2Pjp|{bl{1V5zm-f?Yh$j zRM~4!txI5_r_w9-=Gt4ZSQ~Nq>UoGMUQ85h04CR9jvbz1$Jl^|5PkgHGygg^#9paW zJrWCHX;fc%Y@h!QT#X9&HdHEKIbvBVdA~tascJs*PeVYXagraCiX^Qr7T|aIu4H5y!qiNWN==YQi|vT>n@D{ z(HR>NxHmO*m{;!l%L!V6W+(lpyBf?*#0)r%2rYR z5*%-nLRp@Qm?hQSHf8@FivNs>>C4W~YMB4&jDMfJ_#A})@ALn3RmAsX)2@Ga+kdW7 zQ+(0o_|HB6K6&*&`uN{B|Nr*4y{{$2tPpE*4pa{(IA4N`4S;8A6N6lBWn1`s#+4bh ze>S8$!}Odg&ql2ug$<8YgO$}VDXDfTOI;X8ySJ+xmL?cu}W6R)(WCrRU<=0PQBMOcAUsJg99;R3}C)<%Vy?pK>GdRDs^Km}ybp5m# z;O$FgDaB*f&@K5WDn~qB%2=45PJeu|H1!~0{Y}r#+C$H-@9^tFoz$_F;-}e;eP4!9As(AY33rjEl#PKd?T{ITh~DXi1E=k=mtHlMM4jCV zV<6gA(l*$3AiuU`pn5%YXC>y>Kz!^$rFHSs6Y!K!?|OmL{rJrO++iaFE|%nvirpvT zwg@V7*fRbgJ22!LN@B4a68iIN7x9hlijTlA^Vf~HVRRa|WwF7oPf)f`v{FH;(fFm) z`>pjhAC32C8X2ZeL@uunG+Om(8%sWHAa-uu=$*;4$8Kf7b~#{3V2a1QZ_RB4&{V9@ zh(NrgAU>BW0v8bzk-Pf7Pu^-x%kT&TPi^O7x4l5?SZi$2$5bt`%GlxX!KUD)dSB?G z+s=@jSGoE|L0?|+ugxPJz}QozVZ8*v{g%ZYcGkQVF%jN#zkJw;zWES^s(1oX9SEi0 z<}X_@%7|vT@YR2xRB!d>>~==;OJ7xt@qnj;2qRHfwp4K5#FA>it4{4J8Yt(F`~jVT zUu;l%HZf-?9<#n~Bq|CP3BB0EeOk-uWGkZitQ`*O6mS~vfTeK+;^lG8MOn1M1lg8w3tm`|Hd1wwn$0^3z@Z2P;~JO5f6(xfu|R+a6?)9^>nqb4xU$&r|& zI0_aKbB3T%#=a}>L$yp0IGqN6K#qxKnuexiEMKb+_uRo`tE86G>(ac~Sm?_Ci)6cp zKsg9!4`lYq&Oe~`U~7QVY%2qPcR;zcf?e6RBnR9UR!{IFEL014um97a+gC&ie~-+e zfvQ5o>Mqg{*zGhvTslp&zhapV`5GWJ&HgbHAu$sumsW2qu+!{Ig5%Ad?|i)Rd6ZOG ztlF#U7WWu0Tu~FKU!U`EXms9*-CG%s!xkf>5^&y*M=#Nijo3!)DD~5RN!D7c@=K>F zH{^T|^yMm5x>$Ro#mt-J$%9kFp4B*of~{>D0j`Nk2^y@((kQ(n68Kiqaz5R2zCHn0 z@Vj@Pa5)iUyEk0EU$F!#3|-{8UZ8M370R4jKUHcCcX3Ugre_Em;7>W4n`1C^koy*e zGqFyzj~QS`7tZ~(h?`Kt6Ir+A=mxaxykk^vkxwJ;Q zhA`pdZ@Ccm-N}H{Y8E80wHY^A>Snke6ar_j`Rkmiz@@V~KfAVj^u^LDp&>s*m2CNj z{;rpQ%$III?0Ywu?Nn6JUv0B2 zY)(PE^Q6x-r#51Tpt=2xTUt&TRjfZ9a%#m$+0u@tULVk$Fw!4nQm>srpAz4y$Y;`C zU-;#^q>Fkz+2PF4PzCspuSNJ>UIM%yLp?V)<5bb0--hQb``cv(%!e0|dpfIP8y>L* zPT?yW<7V=DaaE#{jIK5EBR<&e%dNhB6yY-G)_c3JkocI$fq0mG*!X z`8sc0Tw92JS<;89G7E99Jh~4_s_ezvr_E2W91-k0<{z#nM=1 zcv3%jrY=$2cDfH6{hbV3Kp>Dq0bdOPUuV1MJBCVVu2&iz$+O8t=td7Y zvy-x$N8CH_k~bc}4yfb(BPEe94l+SydTB+Oln;Z^Yi})IK>FG_xh7; zWCqo*woh4h8acW+)@~M>c2cN-)kf#7cp*VU0w?jtoos@sjVUs|#x5 z3bT;gQKB<*d;;RtLr>?;zhV+{swA=)mj{DMD(v!?GmNm6MLVu3$VMs*J!u@4<9Hqd z4$za(4!}>|Oi?1BW{-p?*d1D9&GZc?{LVP}qL|4_ zO_)uuNpXLwjeXy5!TV`1$)k%Di6PS}xNpL8AP6%pU)--HHMJbl6X!l3(RhCIU48r} z(UyA&Cx-pzVk@C^fjcq{@=WH(Owqbg+usqC*(6!-?uf)R#E8deq7%F#(f-bXaWhfGka;`g zmilhLWPn7j7xR`#01vzSIvVHg=0iPX{AofpN@PLPW6`a25ONnMJ0#K3#N!fC*gZHW z)*GO(vJV=_e8RI{T*U?NI^9>9WVbApW(vcvmjqcuYXmstu&gJ3nugVgmGy1V`B1;M zNu_f05Y_-0kJoRY8DOIB}Kcurjl_it}86>X@| zjd)ngE$r=pFEJqngLN8#K*-|wV`}0W9^2V8(lp*S;Eb}KauooZQ>&J6?_ z(8KxKPfXhUp9B|2Ww*!%Q|{tg;Ah|Q7!g~BY*6;P&PTKnnhDs=X!?GR97Z#}HIW=5LF=H^s zeNSxrcv0ELRw+7T7?!Tj;I-nm;?vr%+UnDOi#H~iH%!Li@$>7wS$Mkkz6+Q)w^ErpV%vVy+Bipd;WBt@=TQFbXjD?oR_x!`abOBTux zq_(suiv>xBC7eW#gu7x^HD0GMO&q%qnPRZP1*Ry%!n0ws;w$tcZi`zt&aE_opLEi0Ft>}MUzu!u2Y-I3E$`mLZ$2D-epmoYk~_rQ z=tE;8_vV#uyMcK=z-=AiW6(L~)c`yPNM~9&zgL6E;o-@)?Wdp1qXhLUKyU?o&wJbA zKK4aqwN|wx(TC={o^3HM;U7bYkUN*XBg~Yr2mdQE2PE1f0BK=Hvu)}FL)dGq=dP@c z;=B%XC1D(RRo`{KaO?9`vMtn|jM^Ga)TOj-^R|OpvmGrpqi_MDkhK*st3ztS%|MpK$IN;`R0HI0j2s1z9PRMBy6KEuB-|lAu&Cq z$jE55Z&e2?P!hAL+diJ0p~qq^GN`F-!jHM+iKi>`p%Q6MYzz)9tNE~{mdvSFZ#xeX zM$(h1oA23uW3>1SBc?5TV?;c|M!HClGQBwr+A_F|6VxMmXq9yO3m<|@>A6Nu=FiA) zBCWS5&Xrpmy#h2Qvv_)}??B ziz9B6zER7klk^< z2LK7SsNg{TvmC+7hvf>wz-aX2tIPOe5?=d60^=t&@W%*hb6j|$NMxa-?7)Y3cf##$ zpQm5xpNi9I=z zv@EMSI*kKdr6dd8MfLT8_Mcn$AAhFs^cO8FN!0lRW9 zV96xBb}DOrDkNj}tjL+oCn4Vyb=kDzrX9q$IWtpvDyZ@MGibvT%c6Cb_j7^cL?&th z(6iyf@w_qGra}woFQBXBV37m_zc3+bD0WL$;9pL=;x z*}`@QBaeRfVSg8b+r@c=A+gh?3caUuXkF0R8lTePo)%r@S}fHmCbt^FH+zc4VdpiS z4XJdk6kk}=`eD$c8xV&ZLEKu)67Z%Y|O>Qf+Agbx?P1TDfx`w7*rgyoA_?RvM;n5IF zBa9!$2y11h&#fkfW=TBk=;Pn;H{<*IU$LIVqb~0r>9D}5Ae$N9BE#aDinNo;pUKH_ zv(u%c1-D|(i90>4xUY$f!uP8pWF4p%+NEbE_dNHF62@R`vSR>L=xa3P(H{}));u(} zO1?S*-u-(N#u!0Y`C*}ZM5XnTN$1NwA?2SILJ|PaRan&vg8U&vY~e~pqryuWy-=su zU0fs^fruEz4BPcJbN{Tg8KKqq>A2Ry%Mlg^jl5_kX2t*&iOC^f`-Hob{Woj)C_WA% zSo+JCn#K8NYpW^La#(v#C*`KdN-)y7Da~-OXfPj@_B3J@Q-@u2Z;zf{R6=dnrUpK7 zYf0e(z8Q7>5K7+`p^ZuhDnec%Gu+In+cV)y;h9_iR?G6|a zg1XWS+kba{lSIAcOMW?nWD$6tU)#$TrYu*+@qIkbUklzW6fhy`X!V7Zy#TSdcn25s zN*=DV)*%v>>FL>$XA~^$f&4tGS@jlk;#-lY0>e1PyNDa_J6PcHMX)iC-3xewr9*Gk z58PPMGo!*#`ke2N3_5l3OfM75b;&-0a*E)9H@0qcyf&U<6o zEs9`^lbx0rWAVI9e@j+fcBn_3{bGa64z@ZeX;X|UUS}lj(+^3{jwM6;S5dy*a5i+` z8BYsgpo!c~81DBFvckc1EMaHd#`lQ!v7CM38x;!m~yBu*#D-inWLiC?oXn6X3VFB|Qq(4Z=6? zO+K5L5+Z3tCkzQGx!zuI2XrVFWi)?lVkLD7s^^R00CkKz9AXDyWM*BoGji>TP1~63 z3wJ202_&Va|1oL5E`WvVBsM#x&)-QnU3A-m%-i^B(+qW+YTtu5iPrXsGR z4#h+06?1nJf0|C*X12J>`nbM4yjkW$S#s{07c+m!Ds$qh!>5B3Dzxza)~>N4YLU%3 z+DE^dlk%(XpE>h0hk=eUi|S!Bi92LerU)<013EdDk78^-x3ib})Q&%Y&kpL1`uY91 zYc6~2V)~SlMp)$Zj8bs|EY-cWF#?;sQ4;Ek#UJ~f>{BCd{6)X`ELd%!Pp)7JbYr9VvIFa(#+Tr|T?H0echiQp3$QYIcRGHE` z<$C;io;Is1i^(=jGFl0uc|e7H0~LBs;2+Mn>S)?LBhkYOA>>h8bawbHk%af0Ve+#d zAHSnFTeI6qf-rq>#Ry%JRKFdcaWRRPn>X)BUecLSCMK(q9!L)$43Y=zPE+QLQkw1u zgrc6|0RbMYU&;BcJ{O%8OlGMd2iu%%lR-Sz48btR7T7%!2Rg}yQ=mqOi>Ohhw%Z8< zOilj-gjWvz&_i=E3$)c(Z@&~XS&)4P^ZXVhTq2@aSW9x*W@sK(e`L6lW74(2tH+3! zqZ`ZD#E1L``+~rxLFge+vUjaJ$5s$hw+r4W8Ye z#+!T;Mr(O@;C?ak)?>3!=jF?9(IvlS%Ce$u)#?jm3C6y#Tg;O-7I|zrmT+{V^?&F_ zx7!y*1#x-qWX|jc;QAG17DApf0lzanHY4%IUXq$9MEzd5WO3#MEDp?fVtR}i<-bCC zhPTcj()zPY2HPF{?aahr!lyh{rvD8FZ=UCCUslsrrhd|zzH0?8Zkx{++vPYouLYcg zwkg6WZWl9o`L>!aVI+KS91f#d(UAPPO89k^T7x8S8$D{naF84K%qUt(BQj3G!veR%%oAY* zEM-RP)vuU#e)JOE2E3xD>ODP_>Gl9y6t|M&@i{EsuP)=hXbJIkdF6_5c)X<4%Lb&_T-M;qT=LDinZ6X~MeqSrQhOLFGO}MG;mM|k6fs08 zOFa)=D_=?&q8i_C?Bz)M7WCL&6mT{sL>ERkBo!an=uDv9gAQ{BRTrXU=8xPn9{-3G zn}1DPU0)s}b7;#BYO<68+-?Pm4H3X`t*sOybX7yX=ADF!o}O5<1NnR2nv+`x$*%;w zm5BC0UqoL~Qs1C8Z5^hrym)PvaI(FoS9s_Sh-OmOrlQGP@6Z z5PvS(DMo}8A1_f-{xAb2^T$d|=AF>C_4n%^N{Nny-{lztw}jO-L6ny0n_q5uea!h+(7NDI^} zvQ3@=+kk{{5~UnJ4%q};(XAITxC|oq0%q!v#tt0C&sey5JgZUU&>sxzf(QJL+vtT= z=SC~;Z`X-X$bAH*pRW57xX!=(5xh}E$3ip8Pvpao(hcTk0GKj@h}*g)U0AgX0cJ%H@()g zFDV}5weoO^_4B=?Npe@Om`ttsfRW9wkmn%?FE>X)rU0O$5d2O9V+=m|Y&FYO5fZ2M z`f|J3yF(!KY92vv7z+P@_G;dttG_lCE$Gx8s7tPLCLeFLi0W&VM4#y^SKt*#I!`^^&=X}$c-GB^hw|vN{wxC3xUHp_8OU+@MqTr^Y+?%{WIrzDY%`iE zUFI0I_~h-jRJKO~JDkfMX;@8Kslfuz_~Ylk2)^cJA=#r$b^3E~9Q}bNXeMrE$PE&u zMI~~465n3bE>Y!KkEM?k^6Ghf8AHZ=tsU`2)(9x)r1Uxr%6e~?;(PQM!ubvNtzJ&arck!f_ku$}BKt+<*1Gy6<4@){omlVn_5m-hG!1 z5cxTp*eb%eUNwCCmEXN9kR`pJOTp;QB6T77rggT_*b(Tnw!X#WTqH*THfU7Acmgm= z`ZGK==tPA0Sa?OB?NFVuDwXK0t-9jP5N1e0V~T+Dr7ztS;Yv0i!>z3(?5VJqT5)8= zH$$OVBsiJNH%h6@E|(j0!_j|?Kd3eS7-KTZb7t_MvoMA6*y85rs6xy_%)OebacYe3 z|AKxq>b_2{5LAOt@AX>@-~y9V7gGIu5q#UHH<(n0p&<&)dG?ZXWSHGi^+xd>Q*A!B?T5&Hzs1nOUf`qt0 z7G@?l_!g|JdUc#M)TLdKmkJ|XY|a-y8Pu}}{U>drh!G&^$X{MV#KsHW!4A1#UgrR# zyFbm-r6K6J8Gf7rL%hL&rvp+zORyeqEun)vCGzI%*0WPklzCT05{QRh4VEO#GR{R7 zD6FXN_H6Bz@SS|-Tg)9CIH(IRl?gYqBq6yOB>A3y#wRvKpgIr+Ak`rv)%gDfJ>fwY37bj z#R}I@<1?u-X|VkH)U#9BxLvomd__Oo7hn~;HBW77r#aD7Tb)H`6L}WDJaEF4ZJe!y zXbcAoNk&A)2nkL(4I7yxaAy$Z3p~P?$yp;vx+|4J-`HXt&Q@#QrMF!Abn$E|oZEl1 zro4xoM(`ZZInbQ?qpr$jVkKUb#3!-V8-YLWgWvrMB zd*b5`wptA6$mQ)TsHTK{PP_bZPw8s-B$1o9c$(I?zB*mp+pA&I=1W(X^HEo;z z=T)DVQ&?A4gVV82SnMshhZ2C6^khLh?so3JWgTK=(`3E$D11^m49$rGJ zhGgsutf(`{yVfgEhkLh;Z5zdMOj`Cp>k>j5Udz}=yBf}c)XLt&=!CQP*1rjb?7v=H zq=vsct(=i|7^kZcOTOFDDW_oZ#__@0{1NB0+6 z>*Y!0k#ks&lc{Snh#ICJIZ6ikMKB+5!MX0A5FOQD z*VbXwU4n$*^62ht|LLqy#>P=$0Kz=|NJ%XH=FME}$InxG7&5U>DW8qod^X6NhTSJR ztB2L^Gvp2Stqhlcng$?>di+heJdgNuIK|_wteaO{x*R(h26ct zd?;1MmQtY3VI_NqRi|SJ8%m_~vGWJ-^hHSF(2wCbD`%%WSjMeeOATbtb$hCAsZl7< zDdy~tQB`)~5rV4pX!l<$U*mapP2)r2w^%XbO%$j58Lla%ATR|9e|%-NaB7QV1B*tU ziK41dCY*d#LRz1ykXurnP=gRcdT~mCE{y-sA7?%?xOw3GTlNgVcJu~?Hr@wJVo)aY z`o#0vf=I|I$Y83#snhu#TcU>`iEt}B!X%mTunDW?2Fjam+9*4o(o2)mYSyG*<<(|m zi3=}gqqBV?So>p|5YH?9eUxoD9OCJ`$G*Gsr-Q!ee8zq1WH#n-YcC6w!}kF#nCrG$ z=B;snM*D5Zr7(j8AB%oL@XH;M!C#u7DY6`OG(K7FqHJvQ20-B(I2Fj)*blh^akhzkzu;%aS0G)~Erq)IxN$=JWBhvD4*v?G)7Y z_y2UJ*^hVm59H`0e2=>?)Q>t&nFSVvd9HL9@p`_AyIz^W(~R8`zZ;C z`@VrAKXzfn_$5srq~&-nYvA<3sIx7%eC%g7h_aA@fE=PO60jRxkq%>9dLgEStNf&=qY||9 zWOVb+r>+(OcUO*0BW)9z4Xj`fPQ7*Bel>%kgqibR?LL>(;X- zF$mx|lKDhU-M**hcC3OUAg|Bl2smQ+)9BzU()|BWilAxAjv7hXoqmw{|Iai zkH7NUY+*&dF~^tBlTSjv7B7lIP$s?{7Lf#ccA^x@XtDf@(Kv0PmXQ z3m_-HfUr~;5$JP9&yUM+f^Dbr@RI$x@9wx4%Ma)O36 zXv2FJ7rJBdt0@!%c5x~@j7QyZ?N|lU19-Pa(S0@vjMB$9r(=oHFR$HRl}o*{_$I1VXpW+VRY&;=exTr4qmY4zT?QP#toUmU;xQXS#-Pclak z6JN5Kwd2@gMAxT^(p=$~k#uq0B%Y1aoHI_U9$e|6VgN`u>C9hm70J4P>)3}dt7 zLNJtywc5&-sZrHXXOxC0LN!dg%gFN$QZ!8SafPUIM`7h^9}`)PX{mcuwEasonb@H% zG4#?)j=d)ctXHd4Ljua>d8~R1Q3~E|!Fy2Dg5LWFLqLXT+avVY%brSuo-zfFZ+3{( zgD88{lARq?MZM&%`PAvuW~Z<(i1i{rBhiXl%c)uU9n2ui&t$QrdLNWyHO|<3wy09O zk$hk`B?kD`e-wF&sqY%W&d4(mxZ>kr0+VuS-*wv>cpxTHE#26_$TGPPn3!GKTx|oD zkes0h1v@S4C$2v^>k4YD~wLP;+)-p`Mu8G{KgTSBXD8*vz+IWqPfVl6=SX^-D6{C zI%N-1vf?Wob&fCwgR1Y4aL0KQZ;#1eJ1E`koN-P{pRVDJf0M7bflX$FP9e(OqvB+w zo9hYiWnzTs^aL{?5JN$(%Liayza{iS7L3kxASk0XlYfW<+*H%MJ3xe?HEXm?O6z@L zR#ul4Y#ua-1S~HBqUvZt-OXRPcbbKGckv5$qw5`3<96665v9mTi#AhcZp@twB2-Hi zkcQ%pDF`*a0u1xz`B4j2Nkv?M5sBHepubG|-pi`zk9VsQL(b%wJ4-!Z&T{s(YamFd zr0w-WZY{Fd@Uh>`XtYPotx&CzNjdTcL$uA6!hTxl3{{#Tp64*dA5*j~JVgc(nxh9L z=RZj-h&-TTl+61|Bi_g5mCa}8qpkJ*2wIp6*U&?Dr*zDBPE6$Xw5K~|YKE)-r|x)Id9EQ}bR{GR=I><-ASV8ioTo{FN*zW;_l@w#G;Z(lba%17 zJZtAm=fZbPS$mC;!!e#iFaT4B^acT&=*UcXl6x1=nCE&=;eTjH<%Wc7Jwrg{@lj$V zC6zI;$XovPMcj;y4FDWe(8uh{wuWu@^Mm&MHK})Yf4oSmidAv`Gdtv5{C9^gBVpaP66qh}+#R|PxYxAy6>yaXIqzZa;j-k33p znsnD^x2%wI-fRSF5fw@FZ zdZ%ZOmR=i*)8*pMTM2A1n9~4CHGdq358!w-bah}mNK;|(_X1Tdl#;Y^zeBUCjE$s~ zoc*X0xFwCjsbz4zf=eQOExf1^paqpkoSBgjWjuDXXMLm~oxm&sL$s=WOP#B9+U5cj zjO`&m#DzfDRw8ii)S)n$pDuHV(t<-#lju+F`w6vm$T6mUXzaI*`k3liKn< zfzMD)_o|?k+#USRY4;F^e2a7BfcS#$*lB+4AD-V~9 z_uFxu#-`;b_*d(L5-Uv+B5Lg4O9so>-w9 z7k?pY9ug9ihNuzSZ#&=XaC$Yv7+Mc_quuL+vc)c|+l`HdQ4Cf%amen?dvmQrO<(L3 zbw$|oI>&~LAD6u{Is7nN9!FMji0=_@JsYCZFV@ZMN$f!Gp6L&3`sM8T!SWix9ddcZ zJrXq8Z3wAN<%#iWKk%AfMAqjgp$7cyyJ9(~vWov+`dYh1*IckWYXh4a;B8dgKBq7B z!r!LLxxe?VNRuofUGc`%AA0}1p0^HGepZ`mU1$~-Pmd34BaSP*ygDb$jgH6yDj-{D-;2f zm=+TGezMur${@DhPqK=a*OvwW){WNKW%>kn6eW{kXA?$1sV+HuBGC7rm8XNaY;3)Le-DbcD|(Vy!M{{ z2{2=JXuvE%y(4Xe*}#POIF_`aajcE#WQgVRL8X21&IDpU7iWj!ed&E;Q`7KDGUBAn z@KGf0ukBP$^qrOXmu4%w>R$9hgH1cxrS)n)1diC#$Dnm+Lk7wGWnNFi#-rsF3CH}O zIews;;QLS2`VilBh?V{VU0_Gf9ai1^dAq>U%k3BzPu!WC z-^v*=DETGM8L`1$&}7T5FpnsrMRVDZ%uxmp60U9TnTpXtX>r`cN-Xk_3RSBo>GY ze6*HK|6@Ks=&k@ruda{TXAF~T-J0U%6i87ReyB4KG#8>w<8~lb47NrnVp4SLed5Yi zsuV;I#0*l6J}yKsAs(dL7w{M9L!|3bB-^Yt-bZ_EKq~mGhLG3-mf>DkW6ERnc}NsX ziZ)kj5v#I1z&%a!&`W~JwX7^IYgW=c=`eid!GSyomBn)P4=qjv2~lKfB<471M3!06 zfiNX>kY9@d-}XoBe%;9#SRb zFaH`J1<-Amo5f9kK=KLn^3q$s6d{A6rgr}?QBRK-^lpia`vm%5s;YaPe>ix5UxUt1 zvKa3ZxXYS0EFk{^>i47hvPHivF7|sv}a2AggjXF`JcxAuQZD=2q(Ji z9|6&S|LvdQ>iO?dvVUKF&heM}hiLY{AF|^A+aH_$Z}P6ou76E}f2+0rrRDm6)@((a b+>@W*PB%;bScCrE|3g7WMY=-Ly$ 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%0D^_Hu3yW3p58ScoEVn9K>gl^{<2{p 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⋙q6dv+~8gi!OQmCTXEtX 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 n|I-Tp_0Rv`wF2Oa%M+n@XXh7e% Date: Wed, 8 Jul 2026 21:47:45 +0800 Subject: [PATCH 16/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 14d00987..cbfeecc0 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -29,7 +29,7 @@ limitations under the License. *Qi Zhu, [Massive](https://www.massive.com/)* -**[Apache DataFusion] now automatically takes advantage of sortedness in the +**[Apache DataFusion] automatically takes advantage of sortedness in the data — even when the data is only *partially* sorted, and even when DataFusion has not been told about the ordering ahead of time.** This post explains why that matters and walks through how DataFusion achieves it, From d6fac615f23b2d720c81c44ca041998842941485 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:48:02 +0800 Subject: [PATCH 17/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index cbfeecc0..1aedf1a9 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -41,7 +41,7 @@ and mid-scan row-group pruning driven by [dynamic filters][dyn-filters-blog]. ## Why sort pushdown matters -Many real datasets are at least partly sorted on disk: +Many real datasets are at least partly sorted when stored: - Time-series files are written in ingestion-time order. - Event logs are sharded and sorted by event id. From 2822f477733c7e1ce89f0dfee5e2dbfa08105c28 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:48:16 +0800 Subject: [PATCH 18/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 1aedf1a9..16696704 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -171,12 +171,11 @@ which flavour the source can produce, and rewrites accordingly. order without touching file contents.* DataFusion could already recognize the *exact* sortedness case (declared -ordering + matching on-disk file list). The new capability is recognizing -sortedness when the **file list is in the wrong order** on disk, using -the min/max statistics that the Parquet writer already stored per row -group. Implemented across two PRs on `PushdownSort`: +ordering + matching on-disk file list). It can now also recognize +sortedness when the **file list is in the wrong order** on disk, by using +the min/max row group statistics stored in the Parquet file (relevant PRs: [apache/datafusion#19064][#19064] (rule scaffolding), and -[apache/datafusion#21182][#21182] (stats-based file reorder). +[apache/datafusion#21182][#21182] (stats-based file reorder)) [#19064]: https://github.com/apache/datafusion/pull/19064 [#21182]: https://github.com/apache/datafusion/pull/21182 From 1b75d5a7369de598d51ffb3dcdcd40581a03bcc8 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:48:34 +0800 Subject: [PATCH 19/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 16696704..51a29f28 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -61,8 +61,8 @@ But that "pre-existing sortedness" is only useful if the query engine can plan time. In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the -cost of a full external `SortExec` — a pipeline-blocking operator that -must see every input row before emitting anything, dominating both +cost of a full sort — a pipeline-blocking operator that +must buffer every input row before emitting anything, dominating both latency and peak memory on large scans. Min/max statistics used for *predicate* pushdown are well-known and From 89b422dab1f2b5f15fb305ec4a912720ae855874 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:48:51 +0800 Subject: [PATCH 20/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 51a29f28..eebee631 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -47,8 +47,8 @@ Many real datasets are at least partly sorted when stored: - Event logs are sharded and sorted by event id. - Partitioned tables have a natural ordering by partition key. - Modern data lakes based on [Apache Iceberg] and similar formats - often have to work with data **as it was written** — resorting the - whole table isn't an option. + often store data in the order **it was written**, and resorting the + data is prohibitively expensive for many workloads. But that "pre-existing sortedness" is only useful if the query engine can **notice** it and **use** it. Two common failure modes: From 06f5bba2a0a3d53a4fdcef23d2a5620970c564ba Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:49:09 +0800 Subject: [PATCH 21/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index eebee631..e4eb17cb 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -67,7 +67,7 @@ latency and peak memory on large scans. Min/max statistics used for *predicate* pushdown are well-known and widely implemented across databases. Using them to *reason about sort -order* — deleting redundant sorts, biasing scan order toward the +order* — deleting redundant sorts and biasing scan order toward the most-promising data — is less common. This post is about how DataFusion does the latter. From efec00e20267f3d41fb14ae530da78d1dd8b3c15 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 21:51:49 +0800 Subject: [PATCH 22/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index e4eb17cb..813ef017 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -99,7 +99,7 @@ Three complementary techniques close each gap: optimizer to prove ordering from min/max statistics after reordering the file list, then delete the `SortExec` entirely. 2. **Runtime scan reorder** (`Inexact` path). Keep the `SortExec`, but - bias scan order so the *most-promising* data is read first — + bias the order files are scanned so the *most-promising* data is read first — `TopK`'s [dynamic filter][dyn-filters-blog] tightens quickly and downstream data is pruned by statistics before it's read. 3. **Runtime row-group dynamic pruning** ([#22450]). Inside the From 4daaa2d6bda0be714c912231df79be5f2fb3b940 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 22:11:12 +0800 Subject: [PATCH 23/79] Address alamb review round 2 (46 comments) Tighten intro to be engine-agnostic and drop time-tied phrasing; use plain 'sort' instead of SortExec in engine-agnostic sections while keeping SortExec in DataFusion-internals sections. Remove several implementation-detail paragraphs (bail-out conditions, plan-walk order, three-eras evolution history). Rename PR-numbered sections to concept names (Row Group Filter early stop, Runtime Row-Group Dynamic Pruning, Example of pruning row groups using TopK dynamic predicates). Relabel Layer 0/A/B as Layer 1/2/3 consistently. Move sort_pushdown / topk_tpch benchmark descriptions into their section intros. Reframe benchmark comparisons as DataFusion 54 sort optimizations disabled vs enabled. Collapse Future Directions to a summary sentence with issue links. Add Get Involved section and Massive sponsorship shout-out. Net -86 lines (625 -> 539). --- content/blog/2026-07-05-sort-pushdown.md | 343 +++++++++-------------- 1 file changed, 129 insertions(+), 214 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 813ef017..c3d3e86a 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -29,7 +29,7 @@ limitations under the License. *Qi Zhu, [Massive](https://www.massive.com/)* -**[Apache DataFusion] automatically takes advantage of sortedness in the +**[Apache DataFusion] automatically takes advantage of sortedness in the data — even when the data is only *partially* sorted, and even when DataFusion has not been told about the ordering ahead of time.** This post explains why that matters and walks through how DataFusion achieves it, @@ -47,18 +47,20 @@ Many real datasets are at least partly sorted when stored: - Event logs are sharded and sorted by event id. - Partitioned tables have a natural ordering by partition key. - Modern data lakes based on [Apache Iceberg] and similar formats - often store data in the order **it was written**, and resorting the + often store data in the order **it was written**, and resorting the data is prohibitively expensive for many workloads. But that "pre-existing sortedness" is only useful if the query engine can **notice** it and **use** it. Two common failure modes: 1. The engine doesn't know about the ordering — the writer didn't set - Parquet `sorting_columns`, and the table definition doesn't include a - [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. -2. The engine knows the *per-file* ordering, but the file *listing* on - disk is in a different order, so global sortedness can't be proven at - plan time. + Parquet [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), + or the system wasn't informed about the ordering with a mechanism such as + DataFusion's [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. +2. The engine knows each individual file is internally sorted, but the + file *listing* is in a different order (in DataFusion terms, the + `ListingTable`'s file list order does not match the per-file ordering), + so global sortedness can't be proven at plan time. In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the cost of a full sort — a pipeline-blocking operator that @@ -97,14 +99,15 @@ Three complementary techniques close each gap: 1. **Statistics-based sort elimination** (`Exact` path). Extend the optimizer to prove ordering from min/max statistics after - reordering the file list, then delete the `SortExec` entirely. -2. **Runtime scan reorder** (`Inexact` path). Keep the `SortExec`, but - bias the order files are scanned so the *most-promising* data is read first — - `TopK`'s [dynamic filter][dyn-filters-blog] tightens quickly and - downstream data is pruned by statistics before it's read. + reordering the file list, then delete the sort entirely. +2. **Runtime scan reorder** (`Inexact` path). Keep the sort, but + bias the order files are scanned so the *most-promising* data is read first — + dynamic predicate pruning (see the [dynamic filters blog post][dyn-filters-blog]) + tightens quickly and downstream data is pruned by statistics before it's read. 3. **Runtime row-group dynamic pruning** ([#22450]). Inside the - parquet decoder loop, re-check the live `TopK` threshold at every - row-group boundary and physically remove pruned row groups before + parquet decoder loop, re-check dynamic predicate pruning at every + row-group boundary if it has gotten more precise due to additional + runtime information, and physically remove pruned row groups before any bytes are fetched. Together these compose into a **three-layer pruning stack** @@ -154,15 +157,12 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; - With **`Exact`** ordering, DataFusion drops the sort entirely and stops reading after emitting 10 rows. - With **`Inexact`** ordering, the `SortExec` stays but scans start - from the most-promising data, so the `TopK` threshold tightens fast + from the most-promising data, so the `TopK` threshold is more likely to tighten fast and the rest is pruned by statistics. The optimizer rule that upgrades a scan from `Unsupported` to `Exact`/`Inexact` — and that removes the resulting redundant -`SortExec` — is [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs). `PushdownSort` -runs late, after `EnsureRequirements` has finalised the plan shape. -It walks each `SortExec`, asks the child leaf via `try_pushdown_sort` -which flavour the source can produce, and rewrites accordingly. +`SortExec` — is [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs). ## The `Exact` Path · Sort Elimination via Statistics @@ -175,7 +175,7 @@ ordering + matching on-disk file list). It can now also recognize sortedness when the **file list is in the wrong order** on disk, by using the min/max row group statistics stored in the Parquet file (relevant PRs: [apache/datafusion#19064][#19064] (rule scaffolding), and -[apache/datafusion#21182][#21182] (stats-based file reorder)) +[apache/datafusion#21182][#21182] (stats-based file reorder)). [#19064]: https://github.com/apache/datafusion/pull/19064 [#21182]: https://github.com/apache/datafusion/pull/21182 @@ -202,12 +202,7 @@ underlying data is already sorted. to upgrade to `Exact`); the right case has overlaps (upgrade skipped, falls through to the `Inexact` path).* -Two conservative bail-outs: (a) sort keys must be plain columns -(`ORDER BY date_trunc('hour', ts)` doesn't qualify — no per-file min/max -for the function output), and (b) sort columns must be null-free, so -`NULLS FIRST`/`NULLS LAST` semantics are preserved across file -boundaries. The overlap case falls through to the `Inexact` path -covered later. +The overlap case falls through to the `Inexact` path covered later. ### `BufferExec` · a subtle multi-partition side effect @@ -219,16 +214,10 @@ on any partition stalls the whole plan.* Removing the `SortExec` looked like a pure win, but the first multi-partition benchmarks showed something counter-intuitive: **some queries got slower**. The root cause is that the removed `SortExec` -was doing two jobs — sorting *and* implicitly buffering. Each -per-partition `SortExec` runs as its own task, greedily draining its -source in the background; the top-of-plan `SortPreservingMergeExec` -picks from those large in-memory buffers and never blocks on I/O in -any single partition. - -Once the `SortExec` is deleted, the merge sits directly on the raw -parquet streams. It's a lazy consumer — a k-way merge must see the -head row from every input before deciding which to emit. A stall in -*any one* partition now stalls the entire merge. +was doing two jobs — sorting *and* implicitly buffering. The fix was +to introduce explicit buffering in certain plans, see +[apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) +for details, as shown in the following figure. BufferExec replaces the deleted SortExec with a bounded streaming buffer per partition
*Figure: `BufferExec` is inserted where the `SortExec` used to live — @@ -245,11 +234,15 @@ OOMing. ### Benchmark: `sort_pushdown` suite +To evaluate the effectiveness of eliminating sorts using statistics, we ran +DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) +benchmark suite. + Sort pushdown benchmark: 2x-49x speedup across four queries
*Figure: `sort_pushdown` results (`--partitions 1`, release build). ASC queries with the file list reversed against sort-key ranges.* -Numbers below are the [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) suite, +Numbers below are the `sort_pushdown` suite, `--partitions 1`, versus `main`: | Query | Before | After | Speedup | @@ -268,36 +261,19 @@ Numbers below are the [`sort_pushdown`](https://github.com/apache/datafusion/tre ## The `Inexact` Path · Runtime Reorder for `TopK` and `DESC` -Stats-based sort elimination handles the `Exact` upgrade — strong -correctness, sort elimination — but only when the table has a +Stats-based sort elimination handles the case when the table has a declared `output_ordering` *and* the files are provably -non-overlapping after sorting by min. Three classes of queries -fall outside that window: - -* **Unsorted data** — no `WITH ORDER`, no parquet `sorting_columns`. - The `Exact` upgrade cannot fire because there is no ordering - claim to upgrade. -* **Overlapping ranges** — files written by different ingestion - jobs share time windows. The `Exact` upgrade keeps the `SortExec` - because the global ordering can't be proven, even though the - files often do contain large stretches of in-order data. -* **`ORDER BY ... DESC` on ASC-sorted data** — flipping iteration - at the row-group level emits "RGs descending × rows ascending", - close to the requested order but not strictly DESC, so the - `SortExec` has to stay for correctness. - -For all three, a full external `SortExec` is overkill. The parquet -metadata is right there, and reading the *most-promising* data -first lets `TopK`'s dynamic filter threshold tighten quickly so the -rest gets pruned. Runtime reorder wires that up by generalising -the `Inexact` path the rule introduced. - -### When Inexact fires +non-overlapping after sorting by min. However when these cases +do not apply, a full sort is still overkill. The parquet metadata +is right there, and reading the *most-promising* data first lets +`TopK`'s dynamic filter threshold tighten quickly so the rest gets +pruned. Runtime reorder wires that up by generalising the `Inexact` +path the rule introduced. try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
-*Figure: for each `SortExec`, the leaf source returns `Exact` (drop -the sort), `Inexact` (bias the scan and keep the sort), or -`Unsupported`.* +*Figure: for each `SortExec` that `PushdownSort` tries to push down +into the scan, the data source returns `Exact` (drop the sort), +`Inexact` (bias the scan and keep the sort), or `Unsupported`.* The Inexact verdict fires when either of two independent signals is true: @@ -314,26 +290,30 @@ true: ### How the scan reorders data +If `PushdownSort` determines `Inexact` applies to the data source, and +the source supports `Inexact`, further optimizations are possible. For +example, the parquet opener applies runtime reordering as follows: + Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
*Figure: the parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* The parquet opener applies up to three composable steps at query start: -1. **File-level reorder** — across a shared work-stealing queue, the - file list is sorted by `min(col)`, so the most-promising file is - picked first across all partitions. +1. **File-level reorder** — the file list is sorted by `min(col)`, + so the most-promising file is picked first across all partitions. 2. **Row-group-level reorder** — once a file is opened, its row groups are sorted by `min(col)`. 3. **Iteration reverse** — flip row-group iteration order for `DESC` - requests (and for the reverse-satisfies-the-request cases above). + requests. -### File-level early stop already works +### File-level early stop -Tier 1 file-level reorder with early stop via file_pruner
-*Figure: after file reorder, low-value files at the tail of the queue -are cut by the file-level pruner before they are ever opened — no -metadata I/O.* +File-level reorder with early stop via file_pruner
+*Figure: after file reorder, low-value files (`file_d` and `file_c`, +where "low-value" means the sort key values are smaller for ASC queries) +at the tail of the queue are cut by the file-level pruner before they +are ever opened — no metadata I/O.* Once files are ordered "most-promising first", `TopK`'s heap fills quickly and its dynamic filter threshold tightens. Low-value files at @@ -341,56 +321,32 @@ the tail of the queue are then checked against the live threshold by the [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) before they are ever opened — never loading their footer, page index, or any data. -### Row-group-level: the gap [#22450] fills +### Row Group Filter early stop -Tier 2 RG-level reorder — filter column still read for every RG pre-#22450
+Row-group level reorder — filter column still read for every row group before Row Group Filter early stop
*Figure: inside a file, the first row group tightens the threshold — subsequent row groups have their projection columns short-circuited, but the filter column still has to be read to discover that no rows qualify.* -Inside a file, the story is almost identical — but with one gap. -After the first row group fills the heap, subsequent row groups -whose values can't beat the threshold evaluate to an empty -`RowSelection`, and arrow-rs's reader short-circuits: no projection -columns fetched, no decompress, no decode. - -However, **the filter column still gets read for every row group**, -because the dynamic filter has to be evaluated row-by-row to -*discover* that no rows survive. On a large file with many row -groups, that's a meaningful tax — most of which is redundant, since -metadata alone could have proven the row group unwinnable. Closing -that gap is what [#22450] does. - -## #22450 · Runtime Row-Group Dynamic Pruning - -The merge that just landed — [apache/datafusion#22450][#22450] — -re-checks the dynamic filter **at every row-group boundary** inside -an open file, converts the live threshold into a fresh -`PruningPredicate`, and physically removes any row group whose -min/max can't possibly beat the threshold. The pruned row groups are -**never decoded, not even on the filter column**. - -### Architecture · who drives the IO + decode loop +Reordering row groups so the ones most likely to contain the minimum +value are read first makes the existing `TopK` dynamic filters + +[filter pushdown](https://datafusion.apache.org/blog/2025/03/21/parquet-pushdown/) +optimization more effective, and they can often rule out entire row +groups after evaluating just the filter columns, avoiding fetching any +projection columns. This optimization was added in +[apache/datafusion#22450][#22450]. -Three eras of who drives the parquet IO + decode loop +## Runtime Row-Group Dynamic Pruning -The interesting backstory is that **DataFusion didn't actually own -this loop until recently**. Three eras: - -* **Pre-[#20839]**: arrow-rs owned the I/O + decode loop as a black - box; DataFusion only called `.next()` and served byte ranges. The - row-group list was frozen at construction, so once the loop started, - no mid-stream decisions were possible. -* **[#20839]**: the push-based parquet decoder moved the loop into - DataFusion. The capability to insert a decision mid-loop now - existed — but the loop went from `drain` straight to `drive`, with - no decision point. -* **[#22450]**: adds the missing decision point. At every row-group - boundary, the loop pauses to ask the runtime pruner whether the - remaining row groups are still worth reading. +DataFusion now also re-checks the dynamic filter **at every row-group +boundary** inside an open file (only when the dynamic filter has been +updated since the initial check), converts the live threshold into a +fresh `PruningPredicate`, and physically removes any row group whose +min/max can't possibly beat the threshold. The pruned row groups are +**never decoded, not even on the filter column**. -### The loop, and the decision point [#22450] adds +### The loop and decision point transition() loop: drain, decide, drive — Step 2 is the #22450 addition
*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what @@ -411,19 +367,20 @@ The pruner is designed so the expensive work only fires when it can possibly help: a cheap epoch check tells it whether the dynamic filter has actually changed since last time, and only then does it rebuild the pruning predicate. The predicate is then applied to remaining -row groups' min/max statistics — pure metadata comparison, no I/O. -Errors always fall back to "keep the row group" — a flaky pruner -never drops live data. +row groups' min/max statistics, using only metadata, no I/O. + +### Example of pruning row groups using TopK dynamic predicates -### Cascading prune · how the heap eats row groups +This section walks through an example of how the techniques described in +this blog work together to prune row groups. The savings compound because +the threshold moves in **steps**, not smoothly. Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
*Figure: for `ORDER BY x DESC LIMIT 10`, opening the first row group (values [90..100)) is enough to fill the heap; at the next boundary, every remaining row group with `max < 90` is pruned in one pass.* -The savings compound because the threshold moves in **steps**, not -smoothly. For `ORDER BY x DESC LIMIT 10` on a 10-row-group file +For `ORDER BY x DESC LIMIT 10` on a 10-row-group file where reorder puts high-value row groups first: 1. RG 9 (values `[90..100)`) opens. One row group is enough to fill @@ -441,26 +398,21 @@ remaining row group at the next boundary. ## Three-Layer Pruning · file + RG + row, stacked -Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter +The sort-based optimizations described above work by taking advantage +of a multi-layer pruning strategy: file-level, row-group-level, and +row-level, all driven by the **same** `TopK` dynamic filter. The three +layers stack — no layer subsumes another. -A common question at this point: "if [#22450] prunes whole row -groups, does that replace the `RowFilter` row-level prune that the -`Inexact` path was already using?" **No** — the three layers stack, -and they're driven by the **same** `TopK` dynamic filter. (The -"Tier 1 / Tier 2" framing earlier maps to "Layer 0 / Layer A" -below — same partition, different lens. Layer B is what runs on -each row group after Layer A keeps it.) +Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter -* **Layer 0 · file-level** (`file_pruner` + `EarlyStoppingStream`). +* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). Cuts dead files before they're opened. The only layer that skips - parquet metadata I/O entirely. Already shipped before [#22450] — - this is Tier 1. -* **Layer A · row-group-level** ([#22450]). Cuts dead row groups + parquet metadata I/O entirely. +* **Layer 2 · row-group-level** ([#22450]). Cuts dead row groups inside open files at every row-group boundary. Bytes never - fetched, filter column never decoded. **This is the layer that - fills the Tier 2 gap** ("× no early stop yet" pre-[#22450]). -* **Layer B · row-level** (`RowFilter`). For row groups that - survive Layer A, the filter is still evaluated row-by-row to + fetched, filter column never decoded. +* **Layer 3 · row-level** (`RowFilter`). For row groups that + survive Layer 2, the filter is still evaluated row-by-row to build a `RowSelection`. Rows that fail the predicate get their *projection* columns short-circuited via arrow-rs's `selects_any()`, but the *filter* column is necessarily read. @@ -468,107 +420,60 @@ each row group after Layer A keeps it.) but also the finest granularity. The same dynamic filter drives all three. A single insertion into -the `TopK` heap becomes a new threshold that Layer B applies -per-row immediately (in the currently-open row group), and Layer A -re-applies to remaining row groups at the next boundary. No layer -subsumes another — Layer A prunes on metadata alone (never touching -the filter column), while Layer B is finer-grained but has to read -the filter column to decide. +the `TopK` heap becomes a new threshold that Layer 3 applies +per-row immediately (in the currently-open row group), and Layer 2 +re-applies to remaining row groups at the next boundary. Layer 2 +prunes on metadata alone (never touching the filter column), while +Layer 3 is finer-grained but has to read the filter column to decide. ### Benchmark · `topk_tpch` (TPC-H SF1, `LIMIT 100`) +The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) +benchmark runs 11 TPC-H SF1 queries, all of the shape +`ORDER BY ... LIMIT 100`. The data is stored in parquet, sorted by +`l_orderkey` (lineitem's physical sort key — a `BIGINT` with ~1.5M +distinct values per SF1), so per-RG `min/max` ranges are cleanly disjoint. +We compare DataFusion 54 with the sort optimizations described in this blog +disabled versus enabled. + topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% -The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark runs 11 TPC-H SF1 queries, all of the -shape `ORDER BY ... LIMIT 100`, comparing `main` against the same -branch with [#22450] enabled. Headline numbers: +Headline numbers: | Metric | Value | | ----------------------------------- | ---------------------------------- | | Total wall-clock (sum of 11 queries) | 248.8 ms → 139.1 ms (**−44%**) | -| Queries with ≥2× speedup vs main | **5 of 11** (Q2, Q4, Q8, Q9, Q10) | -| Queries with regression vs main | **0** | +| Queries with ≥2× speedup | **5 of 11** (Q2, Q4, Q8, Q9, Q10) | +| Queries with regression | **0** | | Best single-query speedup | **~4×** | The five queries with significant speedups all use `l_orderkey` -as the **leading** sort key — lineitem's physical sort key, a -`BIGINT` with ~1.5M distinct values per SF1, so per-RG `min/max` -ranges are cleanly disjoint and `Layer A` can cascade-prune +as the **leading** sort key, so `Layer 2` can cascade-prune aggressively. The non-winners (Q1, Q3, Q5, Q6, Q7, Q11) lead with `l_linenumber` (cardinality 7), `l_comment`, or `l_shipmode` — columns whose per-RG ranges overlap heavily because they're not the physical sort order. (Q5–Q7 still *include* `l_orderkey`, but only as a third-key tie-breaker — the leading key is what controls RG-level disjointness.) A tighter threshold doesn't translate into clean -RG-level boundaries to prune at, so `Layer B` (row-level) still does +RG-level boundaries to prune at, so `Layer 3` (row-level) still does its share of the work. -The takeaway isn't "5 out of 11", it's "**zero regressions and -no-op when the data doesn't help, 3–4× when it does**". The sweet -spot — sort key aligned with the physical layout — is the common -case for time-series, partitioned tables, and ingestion-ordered -event logs. +Several common time-series workloads are accelerated 3–4× with zero +regressions and no-op when the data doesn't help. The sweet spot — +sort key aligned with the physical layout — is the common case for +time-series, partitioned tables, and ingestion-ordered event logs. ## Future Directions -Two complementary directions are open. The first needs an upstream -arrow-rs primitive; the second is pure DataFusion plumbing on top -of [#22450]: - -### A · Page-level `Exact` reverse · arrow-rs [#9937] - -Row-group reverse (128 MB peak) vs page-level reverse (1 MB peak) - -[#9937]: https://github.com/apache/arrow-rs/pull/9937 - -Today's `DESC` query support lives in the `Inexact` path: the -row-group reverse emits "RGs descending × rows ascending", which is -close to DESC but not strictly so. `SortExec` stays. - -A page-level reverse primitive in arrow-rs would let the reader -walk the parquet offset index in reverse — decoding each page -forward, reversing its `RecordBatch`, and emitting before moving to -the previous page. Peak buffer drops from ~128 MB (one -row group) to ~1 MB (one page); per-page decode stays forward (RLE, -dictionary, delta, and bit-packed encodings are all forward-only -by construction — page *traversal* is what gets reversed). Once -each batch already comes out in DESC order, `PushdownSort` can -finally return `Exact` for `DESC`, the `SortExec` is removed -outright, and `LIMIT N` becomes a static fetch. - -In flight upstream as [arrow-rs#9937]. The killer use case is -**filtered reverse `TopK`** — e.g. `WHERE user_id = 42 ORDER BY ts -DESC LIMIT 10`. You can't pre-compute a `RowSelection::with_limit` -because matching rows are sparse; the only correct strategy is to -stream pages backward, filter, and stop when 10 matches accumulate. -Row-group reverse stops at ~128 MB granularity; page reverse stops -at ~1 MB. - -[arrow-rs#9937]: https://github.com/apache/arrow-rs/pull/9937 - -### B · Page-level dynamic prune at the row-group boundary - -Page-level dynamic prune: extends #22450 to skip individual pages, not just whole row groups - -[#22450] prunes whole row groups at row-group boundaries. The -finer-grained extension prunes whole **pages** within a surviving -row group. The signal is the same dynamic filter, just re-applied -at page granularity — for any page whose `max(col)` is already -below the threshold, the filter column's bytes for that page can be -skipped along with the projection columns. - -Today's page-level pruning runs once at file open using the static -query predicate. Future B extends [#22450]'s "refresh at RG -boundary" pattern to also rebuild the page-level filter with the -live threshold, so upcoming row groups get tighter page selections -mid-scan. Same arrow-rs API [#22450] already uses — no new -primitive needed. Tracked in [apache/datafusion#23216]. - -[apache/datafusion#23216]: https://github.com/apache/datafusion/issues/23216 - -Conceptually this is the same idea as [#22450] stepped down one -level: every level of the parquet hierarchy gets to chip off its -share of the residue from the level above. +Two complementary directions are open: page-level `Exact` reverse +support (needs an upstream arrow-rs primitive, tracked in +[arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) so that +`DESC` queries can drop the sort entirely, and page-level dynamic +prune at the row-group boundary (pure DataFusion plumbing on top of +[#22450], tracked in +[apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) +which extends the same "refresh at RG boundary" pattern one level +down the parquet hierarchy. ## Acknowledgements @@ -579,6 +484,9 @@ with optimizer changes — including the ones that touch foundational invariants like who-drives-the-decode-loop — is what made this work possible. +Thanks also to [Massive](https://www.massive.com/) for sponsoring this +work. + [@alamb]: https://github.com/alamb [@adriangb]: https://github.com/adriangb [@xudong963]: https://github.com/xudong963 @@ -622,3 +530,10 @@ Concretely useful issues for new contributors: [more-impls-issue]: https://github.com/apache/datafusion/issues/19394 Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [topk_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). + +## Get Involved + +- **Try it out**: Run your `ORDER BY` / `ORDER BY ... LIMIT N` queries on your own data and share what you see. +- **Work on a [good first issue](https://github.com/apache/datafusion/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)**, or pick up one of the [follow-ups](https://github.com/apache/datafusion/issues/23036) listed in the umbrella issue. +- **File issues or join the conversation**: [GitHub](https://github.com/apache/datafusion/) for bugs and feature requests, [Slack or Discord](https://datafusion.apache.org/contributor-guide/communication.html) for discussion. +- Learn more by visiting the [DataFusion](https://datafusion.apache.org/index.html) project page. From 9b48aa84dff0155731da614bdf1eea5904089a6f Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 22:17:05 +0800 Subject: [PATCH 24/79] Remove transition_anatomy and pruner_loop figures Both figures had visual overflow issues that alamb flagged (Step 2/3 code text overflowing box boundaries, WATCH circle cutoff). Their captions were also flagged as content that should live in the blog text rather than embedded in the diagram. Since the surrounding markdown text already covers the drain/decide/drive loop and the watch/rebuild/prune pipeline, dropping the figures resolves both concerns without losing content. --- content/blog/2026-07-05-sort-pushdown.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c3d3e86a..2ec7638f 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -348,21 +348,12 @@ min/max can't possibly beat the threshold. The pruned row groups are ### The loop and decision point -transition() loop: drain, decide, drive — Step 2 is the #22450 addition
-*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what -[#22450] adds — it only fires at row-group boundaries.* - -The loop body reads: **drain** the current row group's batches until -it's exhausted; **decide** at the boundary whether any of the +The decoder loop reads: **drain** the current row group's batches until +it's exhausted; **decide** at the row-group boundary whether any of the remaining row groups can be dropped based on the live threshold; then **drive** the decoder into the next row group and repeat. Inside a row group, only drain and drive run — no decision point. -RowGroupPruner: watch (cheap), rebuild (expensive, only if changed), prune (cheap)
-*Figure: the pruner has a cheap "check if the filter changed" step, a -moderately expensive "rebuild the predicate if so" step, and a cheap -"apply the predicate to remaining row groups" step.* - The pruner is designed so the expensive work only fires when it can possibly help: a cheap epoch check tells it whether the dynamic filter has actually changed since last time, and only then does it rebuild From 126ad2088c90b75e27b98a68f42b437c1f3d5a4a Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 22:18:06 +0800 Subject: [PATCH 25/79] Revert "Remove transition_anatomy and pruner_loop figures" This reverts commit 9b48aa84dff0155731da614bdf1eea5904089a6f. --- content/blog/2026-07-05-sort-pushdown.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 2ec7638f..c3d3e86a 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -348,12 +348,21 @@ min/max can't possibly beat the threshold. The pruned row groups are ### The loop and decision point -The decoder loop reads: **drain** the current row group's batches until -it's exhausted; **decide** at the row-group boundary whether any of the +transition() loop: drain, decide, drive — Step 2 is the #22450 addition
+*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what +[#22450] adds — it only fires at row-group boundaries.* + +The loop body reads: **drain** the current row group's batches until +it's exhausted; **decide** at the boundary whether any of the remaining row groups can be dropped based on the live threshold; then **drive** the decoder into the next row group and repeat. Inside a row group, only drain and drive run — no decision point. +RowGroupPruner: watch (cheap), rebuild (expensive, only if changed), prune (cheap)
+*Figure: the pruner has a cheap "check if the filter changed" step, a +moderately expensive "rebuild the predicate if so" step, and a cheap +"apply the predicate to remaining row groups" step.* + The pruner is designed so the expensive work only fires when it can possibly help: a cheap epoch check tells it whether the dynamic filter has actually changed since last time, and only then does it rebuild From 4e8a2d6f8dbc2773ff8ffd38af928f6229add721 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 22:22:52 +0800 Subject: [PATCH 26/79] Regenerate transition_anatomy and pruner_loop figures Address alamb's figure-annotation feedback: transition_anatomy.png: - Widened Step 2 / Step 3 code boxes so `into_builder().with_row_groups(...)` and `Data -> set_active_reader` fit inside their boxes without overflow. - Removed the bottom captions that duplicated content already in the blog text. pruner_loop.png: - Widened WATCH shape so `1 atomic load` fits without cutoff. - Removed the `Errors fall back to keep` line (too much detail per alamb). - Same three shapes + arrows + descriptor cards; only sizing tweaked. --- content/images/sort-pushdown/pruner_loop.png | Bin 141158 -> 124223 bytes .../sort-pushdown/transition_anatomy.png | Bin 135742 -> 130980 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/content/images/sort-pushdown/pruner_loop.png b/content/images/sort-pushdown/pruner_loop.png index c2e273b06c5743d5c34f507f21cbc55d35f0c31b..3852b0c3f0b63ae35bd3185d9f036ad23395d222 100644 GIT binary patch literal 124223 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�G4BGlG1;|e;j)OY~s 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

ylIQDEJI8Sk)*z{AU-*lg}jXar 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

C_R~WMWK^cE|{e(UM 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

iid2q#FZ{m-}C#50BGp3=v9o11OODRK(*< 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 OqxMGgb(PYW(EkfS?+Ud5 diff --git a/content/images/sort-pushdown/transition_anatomy.png b/content/images/sort-pushdown/transition_anatomy.png index 065edaba6e238840cc58d2c9a9ea0b5eadb5a65c..37a38b524114f6b38befc5b85b2e48cb6d870aa2 100644 GIT binary patch literal 130980 zcmeFZi9b~R`#-L`#jQejqO#s9R6@#g)R)rYs`^{r`@T_VRI&5q~&p35>$={E;P$jg9x+;qQ@u z@ON|Bj8MKwGoI z06(CB$sprc(A>Jg*}w0;c>SG=MGo!Kb56bZ>I4@(v;rdC-j#NH5Wbi=;I+=!Cv;iAz1b$k&rAWua$uNl8#ePydU3aaSKgpS9O06_q!HD?!b*W^wBwhv+2K& zv^_j)@@97eQ(Ck#rxLUOYrxx+!ur@KQD=>LzI zpKX2Sh>UIYYI~HD8-RalyxE`r?N)#fMSRxq_b4wGACjF9-zAqUB6imFrSTBd`U~4( zl=@Ef`{pa^=&auDFxsy-z@-D*3tY_ao6hCJwX(j7Z8sr@i*;$booRmnCQsK`dKJ69 zvy&jO$mLs7FdKYF3+Jhy@cwe6!g9+er;U~))RRbFk_0f0oY?gsAXc(jw3mrM1L~!3 zel?fQ!4(_CwuY|Xr4gBdpnMwV;R)Hk+vk4*B3f>AZ@*0ZHu0mFnxtVhEK={LKX&}v zl`9jo3oQ@CoP2I5fsAf%UQxRZ-aMtN-#EnYk*zc?iMct@z)w;`0icb_`*&Q;`!Suy2@A2H#IlDu~0;~p`z!{^hhJW_}TKMy}r z2JZQQ+cL}qGJcl2WMbB`I#Ed~zIQudpNS}N2>i0O&ga%S(Ob4L2YO=Ro_$&VGCuQY zRAjH%ogqW}{CkBic&-slFxFWu2I^-G`k1WFt}w4Uk#6HoWd{;pm%fMXmZ-Cge>BY9%f)(d^DNY10j{CUU1@ zCd69ZvdIv=uK$sz#HFyhdgT@4!nEl9ik#bbTVT`Ad6I3r-t3_23ak$f_JZJ$9|nM_ z{p)iokb4<#i@KXi{K}?O(|sQvZ0rSDR_}b~h;h#sSqUJYmA=gGm)xD-(2c5LC@#s% zVPz}GRNJMaB)rC?G>hqjxl*_o*pzbu!lUh*M43^3*vTE`<%iuG6=O`>YC!H8mc&l- z1UDROc3McOmp%h^D710C+nk+mJv-aW-9^q>jT2%YDfrY* z4LQZRlcIB(XFkkRNb2$lfB*XCJklKcP6e{RJ(pI35 z=5o?;YkROhiyFqH3)a&k+dM@At__F)-YuE$cbkpvu0TOjY)uO_J*3*PwfAkbJfdYk zH>A!rM^LxB!ub0q->flKQ{$v678^yAcL&Gjs7k`t;Wh_M+(XQf$j1hQN$jE2w5H7; zZ$PV|zqW-Lkk%(%Wn1zR;x4`HU`i5;K|ATD%ZF6D#KYJ0w_(#R6e(Ic0(2wse0_joa3-~pJ1Ze0 zY`;a7zKM|vYH{NvW#Vq;fbyf%VˑX6W387^ixe(}i|R_pA{m5-iq9W$u1Er~P% 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

MGs+L_B^jPa)1czu}v5o3Vco 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%0DsOh^bCdz#Fy-RO#Cb4W-O*!C20)6&I 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

N=bNc`N4uCFLXA+MQK?Hc7@^=KZD@mM zGaTf5FD$3SQ|80}79%^J<_)+-8FOWY{W7ohALNjdD_Bp<0?PCd>7jsw1T;QCy;7_| zh)I$y=R_3W9`v41b=1>dkDYtVga2EGhV4YW{Hu#yI-h^zn~K~F2#EXUvRq#FM*9Uo z0JR8^MA$%lcpVrTK*>BJ?vJt!GKi0~uiDDo&x-38tkb#-K#4j1{wlyji3Y;Sf>E=r z2BBC8DdLw8>PxOkQ$0o7UvF{=@U8q`Jme@PWSzmgjq5H{#as2^A?9zJe$C41H-=VL zRwOm%J`q1!Oy(2CS30Jhf^P(>-vPA8UZxpZNCrdUcWxKB{1ti zXWvkk{1X*AWPK9%+DeOeD0W>x+xAO*Gy0Mxu5LX&KHBiM-X(keKUWj&SIE0bp90pY z(l3taVK1;z7q4(!A7IYQgmfPM&jlObx*j<)YO%5e#I8^vY;gYt9*kN8QYWC0y#lCj z>(>MaTWVGy;({!#-gC--XIjjegRRWT&src!4xm8+V1g+AXXf{k>T8KL$YVSA*5M)L zc|k_Lmqi`4$1h~EBs2%B1{?K5*t2kH^;4NvO#{w<9K&3EicK~_A_bGid60B==iJMU z`quSKy1}UQTtp%-udr`Ay4;ncFKKjp-S)k$4Gw#JM0(!Euv7`;bVv0Jd^8B znLt$}&CjBFes%WdVev6c^XYL!chX*_QOxa#j!VDq{&LR53E6&HWN?e@d8=T9vlYBM z%}m!^MoJny*^mZ6SWPW0`%u+s{@>rw$NtX@@=sv-`(X6{eEMw&p8v7LA4B|q e*b-{3+q_yY72mhc+HUXk*2v)Il~TRikN+2P>9IWk literal 135742 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⋙q6dv+~8gi!OQmCTXEtX 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 n|I-Tp_0Rv`wF2Oa%M+n@XXh7e% Date: Wed, 8 Jul 2026 23:16:53 +0800 Subject: [PATCH 27/79] Move Three-Layer Pruning section earlier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per alamb's suggestion in #3544371141 — moved the multi-layer pruning strategy section from after Runtime Row-Group Dynamic Pruning to right after How DataFusion Tracks Ordering, so readers see the overall framework (three layers, one dynamic filter) before diving into each layer's implementation. Reworded the opener from 'sort-based optimizations described above' to 'techniques described below' since it's now leading rather than summarizing. Promoted the topk_tpch benchmark section to top-level ## since its parent section moved. --- content/blog/2026-07-05-sort-pushdown.md | 66 +++++++++++++----------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c3d3e86a..15949a0a 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -164,6 +164,40 @@ The optimizer rule that upgrades a scan from `Unsupported` to `Exact`/`Inexact` — and that removes the resulting redundant `SortExec` — is [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs). +## Three-Layer Pruning · file + RG + row, stacked + +Before diving into each technique, it's worth naming the overall +strategy: the three techniques described below all work by taking +advantage of a **multi-layer pruning stack** — file-level, +row-group-level, and row-level — driven by the **same** `TopK` +dynamic filter. The three layers stack; no layer subsumes another. + +Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter + +* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). + Cuts dead files before they're opened. The only layer that skips + parquet metadata I/O entirely. +* **Layer 2 · row-group-level** ([#22450]). Cuts dead row groups + inside open files at every row-group boundary. Bytes never + fetched, filter column never decoded. +* **Layer 3 · row-level** (`RowFilter`). For row groups that + survive Layer 2, the filter is still evaluated row-by-row to + build a `RowSelection`. Rows that fail the predicate get their + *projection* columns short-circuited via arrow-rs's + `selects_any()`, but the *filter* column is necessarily read. + This layer has the highest residual cost (the filter column), + but also the finest granularity. + +The same dynamic filter drives all three. A single insertion into +the `TopK` heap becomes a new threshold that Layer 3 applies +per-row immediately (in the currently-open row group), and Layer 2 +re-applies to remaining row groups at the next boundary. Layer 2 +prunes on metadata alone (never touching the filter column), while +Layer 3 is finer-grained but has to read the filter column to decide. + +The rest of the post walks through the two paths (`Exact` and +`Inexact`) plus the runtime row-group pruning behind Layer 2. + ## The `Exact` Path · Sort Elimination via Statistics File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
@@ -396,37 +430,7 @@ disjoint per-RG ranges (the common case for time-series or partition-key sorts), a single row group can cascade-eliminate every remaining row group at the next boundary. -## Three-Layer Pruning · file + RG + row, stacked - -The sort-based optimizations described above work by taking advantage -of a multi-layer pruning strategy: file-level, row-group-level, and -row-level, all driven by the **same** `TopK` dynamic filter. The three -layers stack — no layer subsumes another. - -Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter - -* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). - Cuts dead files before they're opened. The only layer that skips - parquet metadata I/O entirely. -* **Layer 2 · row-group-level** ([#22450]). Cuts dead row groups - inside open files at every row-group boundary. Bytes never - fetched, filter column never decoded. -* **Layer 3 · row-level** (`RowFilter`). For row groups that - survive Layer 2, the filter is still evaluated row-by-row to - build a `RowSelection`. Rows that fail the predicate get their - *projection* columns short-circuited via arrow-rs's - `selects_any()`, but the *filter* column is necessarily read. - This layer has the highest residual cost (the filter column), - but also the finest granularity. - -The same dynamic filter drives all three. A single insertion into -the `TopK` heap becomes a new threshold that Layer 3 applies -per-row immediately (in the currently-open row group), and Layer 2 -re-applies to remaining row groups at the next boundary. Layer 2 -prunes on metadata alone (never touching the filter column), while -Layer 3 is finer-grained but has to read the filter column to decide. - -### Benchmark · `topk_tpch` (TPC-H SF1, `LIMIT 100`) +## Benchmark · `topk_tpch` (TPC-H SF1, `LIMIT 100`) The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark runs 11 TPC-H SF1 queries, all of the shape From ead1ddc774117f7997c6b91841a0c4d63fcfcc94 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Wed, 8 Jul 2026 23:21:02 +0800 Subject: [PATCH 28/79] Add @alamb as second author Extensive review + collaborative shaping across multiple rounds warranted co-authorship. --- content/blog/2026-07-05-sort-pushdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 15949a0a..5733fabb 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -2,7 +2,7 @@ layout: post title: Sort Pushdown in DataFusion: Skip Sorts, Skip Decode, Skip I/O date: 2026-07-05 -author: Qi Zhu +author: Qi Zhu and Andrew Lamb categories: [performance] --- @@ -27,7 +27,7 @@ limitations under the License. [TOC] -*Qi Zhu, [Massive](https://www.massive.com/)* +*[Qi Zhu](https://github.com/zhuqi-lucas), [Massive](https://www.massive.com/); [Andrew Lamb](https://github.com/alamb), [InfluxData](https://www.influxdata.com/)* **[Apache DataFusion] automatically takes advantage of sortedness in the data — even when the data is only *partially* sorted, and even when From 25e259bdac3de1af97f27a96153fc46edaf53c30 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 12:31:35 -0400 Subject: [PATCH 29/79] Wordsmith into, add blog post --- content/blog/2026-07-05-sort-pushdown.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 5733fabb..19762686 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -27,7 +27,7 @@ limitations under the License. [TOC] -*[Qi Zhu](https://github.com/zhuqi-lucas), [Massive](https://www.massive.com/); [Andrew Lamb](https://github.com/alamb), [InfluxData](https://www.influxdata.com/)* +*[Qi Zhu](https://github.com/zhuqi-lucas) ([Massive](https://www.massive.com/)); [Andrew Lamb](https://github.com/alamb) ([InfluxData](https://www.influxdata.com/))* **[Apache DataFusion] automatically takes advantage of sortedness in the data — even when the data is only *partially* sorted, and even when @@ -51,29 +51,31 @@ Many real datasets are at least partly sorted when stored: data is prohibitively expensive for many workloads. But that "pre-existing sortedness" is only useful if the query engine can -**notice** it and **use** it. Two common failure modes: +**notice** it and **use** it. There are two common reasons they often cannot: -1. The engine doesn't know about the ordering — the writer didn't set +1. The engine doesn't know about the ordering — e.g. the writer didn't set Parquet [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), or the system wasn't informed about the ordering with a mechanism such as DataFusion's [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. -2. The engine knows each individual file is internally sorted, but the - file *listing* is in a different order (in DataFusion terms, the +2. The engine knows there are multiple individual sorted files, but does not + know the order to scan the files to maintain a global order (in DataFusion terms, the `ListingTable`'s file list order does not match the per-file ordering), so global sortedness can't be proven at plan time. In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the -cost of a full sort — a pipeline-blocking operator that -must buffer every input row before emitting anything, dominating both +cost of a full sort, which is a pipeline-blocking operator that +buffers every input row before emitting anything, dominating both latency and peak memory on large scans. Min/max statistics used for *predicate* pushdown are well-known and -widely implemented across databases. Using them to *reason about sort -order* — deleting redundant sorts and biasing scan order toward the -most-promising data — is less common. This post is about how DataFusion -does the latter. +widely implemented across databases (see [Parquet Pruning in DataFusion: +Read Only What Matters][parquet-pruning-blog] for more details). Using +them to *reason about sort order* — deleting redundant sorts and biasing +scan order toward the most-promising data — is less common. This post is +about how DataFusion does the latter. [Apache Iceberg]: https://iceberg.apache.org/ +[parquet-pruning-blog]: https://datafusion.apache.org/blog/2025/03/20/parquet-pruning ## What DataFusion could already do — and what was missing From f37e1f03e7f69f6e0c2727550cd9c3076f95bc52 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 12:35:54 -0400 Subject: [PATCH 30/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 40 +++++++++++++----------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 19762686..a069b639 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -68,16 +68,17 @@ buffers every input row before emitting anything, dominating both latency and peak memory on large scans. Min/max statistics used for *predicate* pushdown are well-known and -widely implemented across databases (see [Parquet Pruning in DataFusion: -Read Only What Matters][parquet-pruning-blog] for more details). Using -them to *reason about sort order* — deleting redundant sorts and biasing -scan order toward the most-promising data — is less common. This post is +widely implemented across databases, as covered in [@XiangpengHao]'s +earlier post on [Parquet pruning][parquet-pruning-blog]. Using them to +*reason about sort order* — deleting redundant sorts and biasing scan +order toward the most-promising data — is less common. This post is about how DataFusion does the latter. [Apache Iceberg]: https://iceberg.apache.org/ +[@XiangpengHao]: https://github.com/XiangpengHao [parquet-pruning-blog]: https://datafusion.apache.org/blog/2025/03/20/parquet-pruning -## What DataFusion could already do — and what was missing +## Exact vs Inexact Ordering DataFusion has always been able to skip the sort in the **exact** case, using the machinery covered in [@akurmustafa's earlier post on @@ -89,7 +90,7 @@ existing `EnsureRequirements` rule sees that the scan's `SortExec`** entirely. This post is about **everything else** — the messier real-world cases -where sortedness exists but isn't provable up front: +where sortedness exists but is **inexact** or not provable up front: - Files listed in the "wrong" order on disk (each file internally sorted, but the listing doesn't match). @@ -107,7 +108,7 @@ Three complementary techniques close each gap: dynamic predicate pruning (see the [dynamic filters blog post][dyn-filters-blog]) tightens quickly and downstream data is pruned by statistics before it's read. 3. **Runtime row-group dynamic pruning** ([#22450]). Inside the - parquet decoder loop, re-check dynamic predicate pruning at every + Parquet decoder loop, re-check dynamic predicate pruning at every row-group boundary if it has gotten more precise due to additional runtime information, and physically remove pruned row groups before any bytes are fetched. @@ -178,7 +179,7 @@ dynamic filter. The three layers stack; no layer subsumes another. * **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). Cuts dead files before they're opened. The only layer that skips - parquet metadata I/O entirely. + Parquet metadata I/O entirely. * **Layer 2 · row-group-level** ([#22450]). Cuts dead row groups inside open files at every row-group boundary. Bytes never fetched, filter column never decoded. @@ -299,11 +300,11 @@ Numbers below are the `sort_pushdown` suite, Stats-based sort elimination handles the case when the table has a declared `output_ordering` *and* the files are provably -non-overlapping after sorting by min. However when these cases -do not apply, a full sort is still overkill. The parquet metadata +non-overlapping after sorting by min. However, when these cases +do not apply, a full sort is still overkill. The Parquet metadata is right there, and reading the *most-promising* data first lets `TopK`'s dynamic filter threshold tighten quickly so the rest gets -pruned. Runtime reorder wires that up by generalising the `Inexact` +pruned. Runtime reorder wires that up by generalizing the `Inexact` path the rule introduced. try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
@@ -326,15 +327,15 @@ true: ### How the scan reorders data -If `PushdownSort` determines `Inexact` applies to the data source, and +If `PushdownSort` determines `Inexact` applies to the data source and the source supports `Inexact`, further optimizations are possible. For -example, the parquet opener applies runtime reordering as follows: +example, the Parquet opener applies runtime reordering as follows: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
-*Figure: the parquet opener applies file-level reorder → row-group-level +*Figure: the Parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* -The parquet opener applies up to three composable steps at query start: +The Parquet opener applies up to three composable steps at query start: 1. **File-level reorder** — the file list is sorted by `min(col)`, so the most-promising file is picked first across all partitions. @@ -436,7 +437,7 @@ remaining row group at the next boundary. The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark runs 11 TPC-H SF1 queries, all of the shape -`ORDER BY ... LIMIT 100`. The data is stored in parquet, sorted by +`ORDER BY ... LIMIT 100`. The data is stored in Parquet, sorted by `l_orderkey` (lineitem's physical sort key — a `BIGINT` with ~1.5M distinct values per SF1), so per-RG `min/max` ranges are cleanly disjoint. We compare DataFusion 54 with the sort optimizations described in this blog @@ -465,7 +466,8 @@ RG-level boundaries to prune at, so `Layer 3` (row-level) still does its share of the work. Several common time-series workloads are accelerated 3–4× with zero -regressions and no-op when the data doesn't help. The sweet spot — +regressions, and the optimization becomes a no-op when the data doesn't +help. The sweet spot — sort key aligned with the physical layout — is the common case for time-series, partitioned tables, and ingestion-ordered event logs. @@ -479,7 +481,7 @@ prune at the row-group boundary (pure DataFusion plumbing on top of [#22450], tracked in [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) which extends the same "refresh at RG boundary" pattern one level -down the parquet hierarchy. +down the Parquet hierarchy. ## Acknowledgements @@ -516,7 +518,7 @@ Landed PRs that make up the merged work: * Reverse-output redesign: [apache/datafusion#19446](https://github.com/apache/datafusion/pull/19446), [apache/datafusion#19557](https://github.com/apache/datafusion/pull/19557) * Sort elimination via statistics: [apache/datafusion#21182](https://github.com/apache/datafusion/pull/21182) * `BufferExec` capacity for sort elimination: [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) -* Push-based parquet decoder (DataFusion owns the loop): [apache/datafusion#20839](https://github.com/apache/datafusion/pull/20839) +* Push-based Parquet decoder (DataFusion owns the loop): [apache/datafusion#20839](https://github.com/apache/datafusion/pull/20839) * Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) * Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) * **Runtime row-group dynamic pruning ([#22450])** — the centerpiece of this post. From 62000786faea8321639df06989ec350657f256da Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 12:37:25 -0400 Subject: [PATCH 31/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index a069b639..eec4baa5 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -92,7 +92,7 @@ existing `EnsureRequirements` rule sees that the scan's This post is about **everything else** — the messier real-world cases where sortedness exists but is **inexact** or not provable up front: -- Files listed in the "wrong" order on disk (each file internally +- Files listed in the "wrong" order on disk (each file is internally sorted, but the listing doesn't match). - Declared ordering with **overlapping** ranges across files. - **No** declared ordering at all. From 3ba83a59f85d224191b6e38246d8f3f50813266a Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 12:43:08 -0400 Subject: [PATCH 32/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index eec4baa5..b108ae6d 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -93,33 +93,33 @@ This post is about **everything else** — the messier real-world cases where sortedness exists but is **inexact** or not provable up front: - Files listed in the "wrong" order on disk (each file is internally - sorted, but the listing doesn't match). -- Declared ordering with **overlapping** ranges across files. + sorted, but the files are not globally ordered doesn). +- Ordering is known, but the sort key ranges **overlap** across files. - **No** declared ordering at all. - `ORDER BY ... DESC` on ASC-sorted data. -Three complementary techniques close each gap: +Three complementary techniques close each gap and are described in more detail +in the rest of this post: 1. **Statistics-based sort elimination** (`Exact` path). Extend the optimizer to prove ordering from min/max statistics after reordering the file list, then delete the sort entirely. -2. **Runtime scan reorder** (`Inexact` path). Keep the sort, but - bias the order files are scanned so the *most-promising* data is read first — - dynamic predicate pruning (see the [dynamic filters blog post][dyn-filters-blog]) - tightens quickly and downstream data is pruned by statistics before it's read. -3. **Runtime row-group dynamic pruning** ([#22450]). Inside the - Parquet decoder loop, re-check dynamic predicate pruning at every - row-group boundary if it has gotten more precise due to additional - runtime information, and physically remove pruned row groups before +2. **Runtime scan reorder** (`Inexact` path). Can not eliminate the sort, but + biases file scan order so the *most-promising* data is read first and + the Top-K dynamic pruning (see the [dynamic filters blog post][dyn-filters-blog]) + can efficiently prune more data before it's read. +3. **Runtime row-group dynamic pruning**. Inside the + Parquet decoder, re-check dynamic predicate pruning at every + row-group boundary to pruned row groups before any bytes are fetched. -Together these compose into a **three-layer pruning stack** +Together these form a **three-layer pruning stack** (file-level, row-group-level, row-level), all driven by the same `TopK` dynamic filter. Headline results: - **Sort elimination**: 2×–49× faster on ASC-LIMIT queries where the file list was in the wrong disk order. -- **Runtime row-group pruning ([#22450])**: 5 of 11 `topk_tpch` +- **Runtime row-group pruning**: 5 of 11 of our benchmark queries run 3–4× faster with zero regressions; total runtime drops −44%. From 2f9db08866eae526c8ad13fa86dcb1ea9659d39d Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 12:48:11 -0400 Subject: [PATCH 33/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index b108ae6d..656e21d0 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -134,9 +134,12 @@ The rest of this post walks through each technique in turn. EXPLAIN before / after: SortExec eliminated once ordering is Exact -DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html) carries an ordering claim for -each scan's output, which is one of: +The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) +optimizer rule classifies each scan below a Sort as either: +`Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's +[`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): +- **`Unsupported`** — the optimizer cannot determine the ordering, so no Sort is removed. - **`Exact`** — the optimizer is *certain* the output is in this order, and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. `LIMIT N` becomes a static fetch on the source (the reader stops the @@ -163,10 +166,6 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; from the most-promising data, so the `TopK` threshold is more likely to tighten fast and the rest is pruned by statistics. -The optimizer rule that upgrades a scan from `Unsupported` to -`Exact`/`Inexact` — and that removes the resulting redundant -`SortExec` — is [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs). - ## Three-Layer Pruning · file + RG + row, stacked Before diving into each technique, it's worth naming the overall From 817dbe7dd88f17acf84b8ebb4f92c91d1f238844 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 13:00:25 -0400 Subject: [PATCH 34/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 161 +++++++++-------------- 1 file changed, 59 insertions(+), 102 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 656e21d0..92eaadb7 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -29,12 +29,10 @@ limitations under the License. *[Qi Zhu](https://github.com/zhuqi-lucas) ([Massive](https://www.massive.com/)); [Andrew Lamb](https://github.com/alamb) ([InfluxData](https://www.influxdata.com/))* -**[Apache DataFusion] automatically takes advantage of sortedness in the -data — even when the data is only *partially* sorted, and even when -DataFusion has not been told about the ordering ahead of time.** This post -explains why that matters and walks through how DataFusion achieves it, -through a combination of plan-time sort pushdown, runtime scan reordering, -and mid-scan row-group pruning driven by [dynamic filters][dyn-filters-blog]. +**[Apache DataFusion] uses sortedness automatically — even when data is only +partially sorted or no ordering was declared.** This post explains how plan-time +sort pushdown, runtime scan reordering, and row-group pruning driven by +[dynamic filters][dyn-filters-blog] make that possible. [Apache DataFusion]: https://datafusion.apache.org/ [dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ @@ -50,17 +48,15 @@ Many real datasets are at least partly sorted when stored: often store data in the order **it was written**, and resorting the data is prohibitively expensive for many workloads. -But that "pre-existing sortedness" is only useful if the query engine can -**notice** it and **use** it. There are two common reasons they often cannot: +Sortedness only helps if the query engine can detect and use it. Two common +cases make that hard: -1. The engine doesn't know about the ordering — e.g. the writer didn't set - Parquet [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), - or the system wasn't informed about the ordering with a mechanism such as - DataFusion's [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. -2. The engine knows there are multiple individual sorted files, but does not - know the order to scan the files to maintain a global order (in DataFusion terms, the - `ListingTable`'s file list order does not match the per-file ordering), - so global sortedness can't be proven at plan time. +1. The ordering is undeclared: the writer did not set Parquet + [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), + or the table was not created with DataFusion's + [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. +2. Files are individually sorted, but the scan order is not globally sorted, so + the engine cannot prove global ordering at plan time. In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the cost of a full sort, which is a pipeline-blocking operator that @@ -80,38 +76,29 @@ about how DataFusion does the latter. ## Exact vs Inexact Ordering -DataFusion has always been able to skip the sort in the **exact** case, -using the machinery covered in [@akurmustafa's earlier post on -ordering analysis][ordering-analysis]: when the table definition -declares an ordering (via `WITH ORDER` or Parquet `sorting_columns`) -**and** the on-disk file listing already matches that order, the -existing `EnsureRequirements` rule sees that the scan's -`output_ordering` satisfies the request and **removes the redundant -`SortExec`** entirely. +DataFusion has long skipped sorts in the **exact** case as covered in +[@akurmustafa's earlier post on ordering analysis][ordering-analysis]: +if the table declares an ordering (via `WITH ORDER` or Parquet +`sorting_columns`) and the file listing matches it, `EnsureRequirements` +removes the redundant `SortExec`. This post is about **everything else** — the messier real-world cases -where sortedness exists but is **inexact** or not provable up front: +where sortedness exists but is **inexact** or not provable up front: - Files listed in the "wrong" order on disk (each file is internally - sorted, but the files are not globally ordered doesn). + sorted, but the files are not globally ordered). - Ordering is known, but the sort key ranges **overlap** across files. - **No** declared ordering at all. - `ORDER BY ... DESC` on ASC-sorted data. -Three complementary techniques close each gap and are described in more detail -in the rest of this post: - -1. **Statistics-based sort elimination** (`Exact` path). Extend the - optimizer to prove ordering from min/max statistics after - reordering the file list, then delete the sort entirely. -2. **Runtime scan reorder** (`Inexact` path). Can not eliminate the sort, but - biases file scan order so the *most-promising* data is read first and - the Top-K dynamic pruning (see the [dynamic filters blog post][dyn-filters-blog]) - can efficiently prune more data before it's read. -3. **Runtime row-group dynamic pruning**. Inside the - Parquet decoder, re-check dynamic predicate pruning at every - row-group boundary to pruned row groups before - any bytes are fetched. +This post covers three techniques: + +1. **Statistics-based sort elimination** (`Exact`): reorder files by min/max + statistics, prove global ordering, and delete the sort. +2. **Runtime scan reorder** (`Inexact`): keep the sort, but read promising data + first so TopK dynamic pruning converges earlier. +3. **Runtime row-group dynamic pruning**: re-check dynamic predicates at + row-group boundaries and skip pruned groups before fetching bytes. Together these form a **three-layer pruning stack** (file-level, row-group-level, row-level), all driven by the same @@ -119,9 +106,8 @@ Together these form a **three-layer pruning stack** - **Sort elimination**: 2×–49× faster on ASC-LIMIT queries where the file list was in the wrong disk order. -- **Runtime row-group pruning**: 5 of 11 of our benchmark - queries run 3–4× faster with zero regressions; total runtime drops - −44%. +- **Runtime row-group pruning**: 5 of 11 benchmark queries run 3–4× + faster with zero regressions; total runtime drops −44%. The rest of this post walks through each technique in turn. @@ -168,11 +154,8 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ## Three-Layer Pruning · file + RG + row, stacked -Before diving into each technique, it's worth naming the overall -strategy: the three techniques described below all work by taking -advantage of a **multi-layer pruning stack** — file-level, -row-group-level, and row-level — driven by the **same** `TopK` -dynamic filter. The three layers stack; no layer subsumes another. +All three techniques use the same `TopK` dynamic filter across three pruning +layers: Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter @@ -190,15 +173,10 @@ dynamic filter. The three layers stack; no layer subsumes another. This layer has the highest residual cost (the filter column), but also the finest granularity. -The same dynamic filter drives all three. A single insertion into -the `TopK` heap becomes a new threshold that Layer 3 applies -per-row immediately (in the currently-open row group), and Layer 2 -re-applies to remaining row groups at the next boundary. Layer 2 -prunes on metadata alone (never touching the filter column), while -Layer 3 is finer-grained but has to read the filter column to decide. - -The rest of the post walks through the two paths (`Exact` and -`Inexact`) plus the runtime row-group pruning behind Layer 2. +The same dynamic filter drives all three. A single insertion into the `TopK` +heap becomes a new threshold that Layer 3 applies per-row immediately, while +Layer 2 re-applies it to remaining row groups at the next boundary. Layer 2 +uses metadata only; Layer 3 is finer-grained but must read the filter column. ## The `Exact` Path · Sort Elimination via Statistics @@ -247,11 +225,9 @@ The overlap case falls through to the `Inexact` path covered later. merge (`SortPreservingMergeExec`) directly consuming raw I/O; a stall on any partition stalls the whole plan.* -Removing the `SortExec` looked like a pure win, but the first -multi-partition benchmarks showed something counter-intuitive: **some -queries got slower**. The root cause is that the removed `SortExec` -was doing two jobs — sorting *and* implicitly buffering. The fix was -to introduce explicit buffering in certain plans, see +Removing `SortExec` was not always faster in multi-partition plans: the deleted +sort had also acted as an implicit buffer. The fix was explicit buffering in +some plans, see [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) for details, as shown in the following figure. @@ -259,14 +235,9 @@ for details, as shown in the following figure. *Figure: `BufferExec` is inserted where the `SortExec` used to live — same greedy per-partition prefill, but no blocking sort.* -The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): a bounded per-partition -prefill buffer that plays the same "greedy parallel I/O driver" role -the `SortExec` implicitly did. No sort, no blocking, and strictly -less memory than the `SortExec` it replaces. The capacity is bounded -(default 1 GB, configurable via -[`sort_pushdown_buffer_capacity`](https://github.com/apache/datafusion/pull/21426)) and grows via the -global memory pool, so it back-pressures the source instead of -OOMing. +The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): +a bounded per-partition prefill buffer that restores the greedy parallel I/O +driver role without sorting. ### Benchmark: `sort_pushdown` suite @@ -297,14 +268,10 @@ Numbers below are the `sort_pushdown` suite, ## The `Inexact` Path · Runtime Reorder for `TopK` and `DESC` -Stats-based sort elimination handles the case when the table has a -declared `output_ordering` *and* the files are provably -non-overlapping after sorting by min. However, when these cases -do not apply, a full sort is still overkill. The Parquet metadata -is right there, and reading the *most-promising* data first lets -`TopK`'s dynamic filter threshold tighten quickly so the rest gets -pruned. Runtime reorder wires that up by generalizing the `Inexact` -path the rule introduced. +Stats-based sort elimination applies only when ordering is declared and file +ranges are non-overlapping after the min-based file reorder. Otherwise, DataFusion keeps +the sort but uses Parquet metadata to read the most-promising data first, +helping the `TopK` dynamic filter prune the rest earlier. try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
*Figure: for each `SortExec` that `PushdownSort` tries to push down @@ -326,9 +293,8 @@ true: ### How the scan reorders data -If `PushdownSort` determines `Inexact` applies to the data source and -the source supports `Inexact`, further optimizations are possible. For -example, the Parquet opener applies runtime reordering as follows: +If `PushdownSort` determines `Inexact` applies and the source supports it, the +Parquet opener applies runtime reordering as follows: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
*Figure: the Parquet opener applies file-level reorder → row-group-level @@ -408,8 +374,7 @@ row groups' min/max statistics, using only metadata, no I/O. ### Example of pruning row groups using TopK dynamic predicates This section walks through an example of how the techniques described in -this blog work together to prune row groups. The savings compound because -the threshold moves in **steps**, not smoothly. +this blog work together to prune row groups. Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
*Figure: for `ORDER BY x DESC LIMIT 10`, opening the first row group @@ -453,16 +418,12 @@ Headline numbers: | Queries with regression | **0** | | Best single-query speedup | **~4×** | -The five queries with significant speedups all use `l_orderkey` -as the **leading** sort key, so `Layer 2` can cascade-prune -aggressively. The non-winners (Q1, Q3, Q5, Q6, Q7, Q11) lead with -`l_linenumber` (cardinality 7), `l_comment`, or `l_shipmode` — -columns whose per-RG ranges overlap heavily because they're not the -physical sort order. (Q5–Q7 still *include* `l_orderkey`, but only -as a third-key tie-breaker — the leading key is what controls RG-level -disjointness.) A tighter threshold doesn't translate into clean -RG-level boundaries to prune at, so `Layer 3` (row-level) still does -its share of the work. +The five fast queries all use `l_orderkey` as the **leading** sort key, so +`Layer 2` can cascade-prune aggressively. The other queries lead with low-cardinality +or unsorted columns (`l_linenumber`, `l_comment`, `l_shipmode`), whose per-RG +ranges overlap heavily. Even when `l_orderkey` appears later as a tie-breaker, +the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still +partially effective. Several common time-series workloads are accelerated 3–4× with zero regressions, and the optimization becomes a no-op when the data doesn't @@ -472,15 +433,11 @@ time-series, partitioned tables, and ingestion-ordered event logs. ## Future Directions -Two complementary directions are open: page-level `Exact` reverse -support (needs an upstream arrow-rs primitive, tracked in -[arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) so that -`DESC` queries can drop the sort entirely, and page-level dynamic -prune at the row-group boundary (pure DataFusion plumbing on top of -[#22450], tracked in -[apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) -which extends the same "refresh at RG boundary" pattern one level -down the Parquet hierarchy. +Two follow-ups are open. Page-level `Exact` reverse support needs an upstream +arrow-rs primitive ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) +and would let `DESC` queries drop the sort. Page-level dynamic pruning at +row-group boundaries ([apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) +extends the same refresh-at-boundary pattern one level deeper in Parquet. ## Acknowledgements From 73403bbba7536dcab808cb7de55038805b86ef3e Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 13:04:18 -0400 Subject: [PATCH 35/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 54 ++++++++++-------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 92eaadb7..5cb51c53 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -76,7 +76,7 @@ about how DataFusion does the latter. ## Exact vs Inexact Ordering -DataFusion has long skipped sorts in the **exact** case as covered in +DataFusion has long skipped sorts in the **exact** case, as covered in [@akurmustafa's earlier post on ordering analysis][ordering-analysis]: if the table declares an ordering (via `WITH ORDER` or Parquet `sorting_columns`) and the file listing matches it, `EnsureRequirements` @@ -121,11 +121,11 @@ The rest of this post walks through each technique in turn. EXPLAIN before / after: SortExec eliminated once ordering is Exact The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) -optimizer rule classifies each scan below a Sort as either: -`Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's +optimizer rule classifies each scan below a sort as either +`Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): -- **`Unsupported`** — the optimizer cannot determine the ordering, so no Sort is removed. +- **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. - **`Exact`** — the optimizer is *certain* the output is in this order, and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. `LIMIT N` becomes a static fetch on the source (the reader stops the @@ -227,7 +227,7 @@ on any partition stalls the whole plan.* Removing `SortExec` was not always faster in multi-partition plans: the deleted sort had also acted as an implicit buffer. The fix was explicit buffering in -some plans, see +some plans; see [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) for details, as shown in the following figure. @@ -237,7 +237,7 @@ same greedy per-partition prefill, but no blocking sort.* The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): a bounded per-partition prefill buffer that restores the greedy parallel I/O -driver role without sorting. +driver role without sorting. ### Benchmark: `sort_pushdown` suite @@ -269,16 +269,16 @@ Numbers below are the `sort_pushdown` suite, ## The `Inexact` Path · Runtime Reorder for `TopK` and `DESC` Stats-based sort elimination applies only when ordering is declared and file -ranges are non-overlapping after the min-based file reorder. Otherwise, DataFusion keeps -the sort but uses Parquet metadata to read the most-promising data first, -helping the `TopK` dynamic filter prune the rest earlier. +ranges are non-overlapping after the min-based file reorder. Otherwise, +DataFusion keeps the sort but uses Parquet metadata to read the most-promising +data first, helping the `TopK` dynamic filter prune the rest earlier. try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
*Figure: for each `SortExec` that `PushdownSort` tries to push down into the scan, the data source returns `Exact` (drop the sort), `Inexact` (bias the scan and keep the sort), or `Unsupported`.* -The Inexact verdict fires when either of two independent signals is +The `Inexact` verdict fires when either of two independent signals is true: - **Stats-based reorder available**: the leading sort key is a plain @@ -323,9 +323,9 @@ the tail of the queue are then checked against the live threshold by the [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) before they are ever opened — never loading their footer, page index, or any data. -### Row Group Filter early stop +### Row-group filter early stop -Row-group level reorder — filter column still read for every row group before Row Group Filter early stop
+Row-group-level reorder — filter column still read for every row group before row-group filter early stop
*Figure: inside a file, the first row group tightens the threshold — subsequent row groups have their projection columns short-circuited, but the filter column still has to be read to discover that no rows @@ -374,7 +374,7 @@ row groups' min/max statistics, using only metadata, no I/O. ### Example of pruning row groups using TopK dynamic predicates This section walks through an example of how the techniques described in -this blog work together to prune row groups. +this blog work together to prune row groups. Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
*Figure: for `ORDER BY x DESC LIMIT 10`, opening the first row group @@ -389,10 +389,10 @@ where reorder puts high-value row groups first: 2. At the next row-group boundary, the pruner sees that all of RG 8 through RG 0 have `max < 90` and drops them in one pass. 3. Bytes for those nine row groups were **never fetched** — not - projection columns, not the filter column. Full I/O + decompress + - decode all skipped. + projection columns, not the filter column. Full I/O, decompression, + and decoding are all skipped. -This is the unconditional value of [#22450]: when reorder lines up +This is the unconditional value of [#22450]: when reordering lines up disjoint per-RG ranges (the common case for time-series or partition-key sorts), a single row group can cascade-eliminate every remaining row group at the next boundary. @@ -419,11 +419,11 @@ Headline numbers: | Best single-query speedup | **~4×** | The five fast queries all use `l_orderkey` as the **leading** sort key, so -`Layer 2` can cascade-prune aggressively. The other queries lead with low-cardinality -or unsorted columns (`l_linenumber`, `l_comment`, `l_shipmode`), whose per-RG -ranges overlap heavily. Even when `l_orderkey` appears later as a tie-breaker, -the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still -partially effective. +`Layer 2` can cascade-prune aggressively. The other queries lead with +low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, +`l_shipmode`), whose per-RG ranges overlap heavily. Even when `l_orderkey` +appears later as a tie-breaker, the leading key controls RG-level disjointness, +so `Layer 3` (row-level) is still partially effective. Several common time-series workloads are accelerated 3–4× with zero regressions, and the optimization becomes a no-op when the data doesn't @@ -463,11 +463,7 @@ Umbrella issue tracking the entire effort: * **[EPIC] Sort Pushdown · skip sorts and skip IO for ORDER BY / TopK queries: [apache/datafusion#23036](https://github.com/apache/datafusion/issues/23036)** — phase-by-phase status of all the PRs and follow-ups. -Prior post this work builds on: - -* [Dynamic Filters: Passing Information Between Operators During Execution for 25x Faster Queries][dyn-filters-blog] — the dynamic filter primitive `TopK` uses. - -Landed PRs that make up the merged work: +Major PRs: * `MinMaxStatistics` foundation: [apache/datafusion#9593](https://github.com/apache/datafusion/pull/9593) * `PushdownSort` rule + row-group reverse: [apache/datafusion#19064](https://github.com/apache/datafusion/pull/19064) @@ -487,12 +483,6 @@ In flight / open: * Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) -Concretely useful issues for new contributors: - -* [Add more `ExecutionPlan` impls to support sort pushdown][more-impls-issue]. - -[more-impls-issue]: https://github.com/apache/datafusion/issues/19394 - Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [topk_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). ## Get Involved From 338a6101013e00bb02a4102b86c315657d524a32 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 13:10:13 -0400 Subject: [PATCH 36/79] wordsmith --- content/blog/2026-07-05-sort-pushdown.md | 76 ++++++++++-------------- 1 file changed, 30 insertions(+), 46 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 5cb51c53..c813f2a4 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -39,14 +39,10 @@ sort pushdown, runtime scan reordering, and row-group pruning driven by ## Why sort pushdown matters -Many real datasets are at least partly sorted when stored: - -- Time-series files are written in ingestion-time order. -- Event logs are sharded and sorted by event id. -- Partitioned tables have a natural ordering by partition key. -- Modern data lakes based on [Apache Iceberg] and similar formats - often store data in the order **it was written**, and resorting the - data is prohibitively expensive for many workloads. +Many real datasets are at least partly sorted when stored: time-series files by +ingestion time, event logs by event id, partitioned tables by partition key, and +modern data lakes based on [Apache Iceberg] and similar formats by write order. +Resorting the data is prohibitively expensive for many workloads. Sortedness only helps if the query engine can detect and use it. Two common cases make that hard: @@ -58,10 +54,9 @@ cases make that hard: 2. Files are individually sorted, but the scan order is not globally sorted, so the engine cannot prove global ordering at plan time. -In both cases, an `ORDER BY` or `ORDER BY ... LIMIT N` query pays the -cost of a full sort, which is a pipeline-blocking operator that -buffers every input row before emitting anything, dominating both -latency and peak memory on large scans. +In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a blocking full +sort, which buffers every row and dominates latency and peak memory on large +scans. Min/max statistics used for *predicate* pushdown are well-known and widely implemented across databases, as covered in [@XiangpengHao]'s @@ -173,22 +168,15 @@ layers: This layer has the highest residual cost (the filter column), but also the finest granularity. -The same dynamic filter drives all three. A single insertion into the `TopK` -heap becomes a new threshold that Layer 3 applies per-row immediately, while -Layer 2 re-applies it to remaining row groups at the next boundary. Layer 2 -uses metadata only; Layer 3 is finer-grained but must read the filter column. - ## The `Exact` Path · Sort Elimination via Statistics File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
*Figure: file reorder by per-file `min/max` puts the file list in range order without touching file contents.* -DataFusion could already recognize the *exact* sortedness case (declared -ordering + matching on-disk file list). It can now also recognize -sortedness when the **file list is in the wrong order** on disk, by using -the min/max row group statistics stored in the Parquet file (relevant PRs: -[apache/datafusion#19064][#19064] (rule scaffolding), and +DataFusion already handled declared ordering with matching file order. It now +also uses Parquet min/max statistics to reorder files and prove global ordering +(relevant PRs: [apache/datafusion#19064][#19064] (rule scaffolding), and [apache/datafusion#21182][#21182] (stats-based file reorder)). [#19064]: https://github.com/apache/datafusion/pull/19064 @@ -241,8 +229,8 @@ driver role without sorting. ### Benchmark: `sort_pushdown` suite -To evaluate the effectiveness of eliminating sorts using statistics, we ran -DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) +We measured statistics-based sort elimination with DataFusion's +[`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite. Sort pushdown benchmark: 2x-49x speedup across four queries
@@ -278,18 +266,12 @@ data first, helping the `TopK` dynamic filter prune the rest earlier. into the scan, the data source returns `Exact` (drop the sort), `Inexact` (bias the scan and keep the sort), or `Unsupported`.* -The `Inexact` verdict fires when either of two independent signals is -true: - -- **Stats-based reorder available**: the leading sort key is a plain - column in the file schema, so the scan can sort files and row - groups by `min(col)` from Parquet statistics. -- **Reverse satisfies the request**: the source's declared ordering, - when reversed, satisfies what the query asks for. This uses - DataFusion's [equivalence-properties][ordering-analysis] reasoning - and covers function monotonicity (`ts DESC` declared, `date_trunc('day', ts) ASC` - requested), constants inferred from filters, and multi-column - composite orderings. +The `Inexact` verdict fires when stats-based reorder is available (the leading +sort key is a plain file column) or when the reverse of the source's declared +ordering satisfies the request. The latter uses DataFusion's +[equivalence-properties][ordering-analysis] reasoning, including monotonic +functions[1](#footnote1), constants inferred from filters, +and multi-column orderings. ### How the scan reorders data @@ -317,11 +299,10 @@ where "low-value" means the sort key values are smaller for ASC queries) at the tail of the queue are cut by the file-level pruner before they are ever opened — no metadata I/O.* -Once files are ordered "most-promising first", `TopK`'s heap fills -quickly and its dynamic filter threshold tightens. Low-value files at -the tail of the queue are then checked against the live threshold -by the [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) before they are ever opened — -never loading their footer, page index, or any data. +Once files are ordered "most-promising first", `TopK`'s heap fills quickly and +its dynamic filter threshold tightens. The [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) +then cuts low-value files before opening them — no footer, page index, or data +I/O. ### Row-group filter early stop @@ -365,11 +346,10 @@ row group, only drain and drive run — no decision point. moderately expensive "rebuild the predicate if so" step, and a cheap "apply the predicate to remaining row groups" step.* -The pruner is designed so the expensive work only fires when it can -possibly help: a cheap epoch check tells it whether the dynamic filter -has actually changed since last time, and only then does it rebuild -the pruning predicate. The predicate is then applied to remaining -row groups' min/max statistics, using only metadata, no I/O. +The pruner does expensive work only when it can help: a cheap epoch check +detects dynamic-filter changes, and only then rebuilds the pruning predicate. +The predicate is then applied to remaining row groups' min/max statistics using +metadata only. ### Example of pruning row groups using TopK dynamic predicates @@ -451,6 +431,10 @@ possible. Thanks also to [Massive](https://www.massive.com/) for sponsoring this work. +
[1](#fn1) For example, if the source declares +`ts DESC`, reversing that ordering gives `ts ASC`, which can satisfy +`date_trunc('day', ts) ASC`. + [@alamb]: https://github.com/alamb [@adriangb]: https://github.com/adriangb [@xudong963]: https://github.com/xudong963 From 92a360535636d892f2f264720f8936a1b1599a34 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 13:14:08 -0400 Subject: [PATCH 37/79] nits --- content/blog/2026-07-05-sort-pushdown.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c813f2a4..04ef80b6 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -30,9 +30,9 @@ limitations under the License. *[Qi Zhu](https://github.com/zhuqi-lucas) ([Massive](https://www.massive.com/)); [Andrew Lamb](https://github.com/alamb) ([InfluxData](https://www.influxdata.com/))* **[Apache DataFusion] uses sortedness automatically — even when data is only -partially sorted or no ordering was declared.** This post explains how plan-time -sort pushdown, runtime scan reordering, and row-group pruning driven by -[dynamic filters][dyn-filters-blog] make that possible. +partially sorted or when no ordering was declared.** This post explains how +plan-time sort pushdown, runtime scan reordering, and row-group pruning driven +by [dynamic filters][dyn-filters-blog] make that possible. [Apache DataFusion]: https://datafusion.apache.org/ [dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ @@ -41,8 +41,8 @@ sort pushdown, runtime scan reordering, and row-group pruning driven by Many real datasets are at least partly sorted when stored: time-series files by ingestion time, event logs by event id, partitioned tables by partition key, and -modern data lakes based on [Apache Iceberg] and similar formats by write order. -Resorting the data is prohibitively expensive for many workloads. +modern data lakes based on [Apache Iceberg] and similar formats in write order. +Resorting data is prohibitively expensive for many workloads. Sortedness only helps if the query engine can detect and use it. Two common cases make that hard: @@ -116,8 +116,8 @@ The rest of this post walks through each technique in turn. EXPLAIN before / after: SortExec eliminated once ordering is Exact The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) -optimizer rule classifies each scan below a sort as either -`Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's +optimizer rule classifies each scan below a sort as one of `Unsupported`, +`Exact`, or `Inexact`, and records this information on DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): - **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. @@ -144,8 +144,8 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; - With **`Exact`** ordering, DataFusion drops the sort entirely and stops reading after emitting 10 rows. - With **`Inexact`** ordering, the `SortExec` stays but scans start - from the most-promising data, so the `TopK` threshold is more likely to tighten fast - and the rest is pruned by statistics. + from the most-promising data, so the `TopK` threshold is more likely to + tighten quickly and the rest is pruned by statistics. ## Three-Layer Pruning · file + RG + row, stacked From 4fe7b469e728952636725528bb7d2de165ba0252 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Wed, 8 Jul 2026 13:14:59 -0400 Subject: [PATCH 38/79] make headings more consistent --- content/blog/2026-07-05-sort-pushdown.md | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 04ef80b6..fdab12f1 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -37,7 +37,7 @@ by [dynamic filters][dyn-filters-blog] make that possible. [Apache DataFusion]: https://datafusion.apache.org/ [dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ -## Why sort pushdown matters +## Why Sort Pushdown Matters Many real datasets are at least partly sorted when stored: time-series files by ingestion time, event logs by event id, partitioned tables by partition key, and @@ -69,7 +69,7 @@ about how DataFusion does the latter. [@XiangpengHao]: https://github.com/XiangpengHao [parquet-pruning-blog]: https://datafusion.apache.org/blog/2025/03/20/parquet-pruning -## Exact vs Inexact Ordering +## Exact vs. Inexact Ordering DataFusion has long skipped sorts in the **exact** case, as covered in [@akurmustafa's earlier post on ordering analysis][ordering-analysis]: @@ -147,7 +147,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; from the most-promising data, so the `TopK` threshold is more likely to tighten quickly and the rest is pruned by statistics. -## Three-Layer Pruning · file + RG + row, stacked +## Three-Layer Pruning: File, Row Group, and Row All three techniques use the same `TopK` dynamic filter across three pruning layers: @@ -168,7 +168,7 @@ layers: This layer has the highest residual cost (the filter column), but also the finest granularity. -## The `Exact` Path · Sort Elimination via Statistics +## The Exact Path: Sort Elimination via Statistics File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
*Figure: file reorder by per-file `min/max` puts the file list in range @@ -206,7 +206,7 @@ falls through to the `Inexact` path).* The overlap case falls through to the `Inexact` path covered later. -### `BufferExec` · a subtle multi-partition side effect +### BufferExec: Buffering Without Sorting SPM stalls when SortExec is removed in multi-partition plans
*Figure: removing the per-partition `SortExec` leaves the top-of-plan @@ -227,7 +227,7 @@ The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafus a bounded per-partition prefill buffer that restores the greedy parallel I/O driver role without sorting. -### Benchmark: `sort_pushdown` suite +### Benchmark: sort_pushdown We measured statistics-based sort elimination with DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) @@ -254,7 +254,7 @@ Numbers below are the `sort_pushdown` suite, the reader stops after N rows. A 342 ms full-file scan collapses into a 7 ms K-row read. -## The `Inexact` Path · Runtime Reorder for `TopK` and `DESC` +## The Inexact Path: Runtime Reorder for TopK and DESC Stats-based sort elimination applies only when ordering is declared and file ranges are non-overlapping after the min-based file reorder. Otherwise, @@ -273,7 +273,7 @@ ordering satisfies the request. The latter uses DataFusion's functions[1](#footnote1), constants inferred from filters, and multi-column orderings. -### How the scan reorders data +### Scan Reordering If `PushdownSort` determines `Inexact` applies and the source supports it, the Parquet opener applies runtime reordering as follows: @@ -291,7 +291,7 @@ The Parquet opener applies up to three composable steps at query start: 3. **Iteration reverse** — flip row-group iteration order for `DESC` requests. -### File-level early stop +### File-Level Early Stop File-level reorder with early stop via file_pruner
*Figure: after file reorder, low-value files (`file_d` and `file_c`, @@ -304,7 +304,7 @@ its dynamic filter threshold tightens. The [`FilePruner`](https://github.com/apa then cuts low-value files before opening them — no footer, page index, or data I/O. -### Row-group filter early stop +### Row-Group Filter Early Stop Row-group-level reorder — filter column still read for every row group before row-group filter early stop
*Figure: inside a file, the first row group tightens the threshold — @@ -329,7 +329,7 @@ fresh `PruningPredicate`, and physically removes any row group whose min/max can't possibly beat the threshold. The pruned row groups are **never decoded, not even on the filter column**. -### The loop and decision point +### Decoder Loop and Decision Point transition() loop: drain, decide, drive — Step 2 is the #22450 addition
*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what @@ -351,7 +351,7 @@ detects dynamic-filter changes, and only then rebuilds the pruning predicate. The predicate is then applied to remaining row groups' min/max statistics using metadata only. -### Example of pruning row groups using TopK dynamic predicates +### TopK Row-Group Pruning Example This section walks through an example of how the techniques described in this blog work together to prune row groups. @@ -377,7 +377,7 @@ disjoint per-RG ranges (the common case for time-series or partition-key sorts), a single row group can cascade-eliminate every remaining row group at the next boundary. -## Benchmark · `topk_tpch` (TPC-H SF1, `LIMIT 100`) +## Benchmark: topk_tpch The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark runs 11 TPC-H SF1 queries, all of the shape From 06caf863b47ea9449852bf7bb4c098873c9f4476 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Thu, 9 Jul 2026 14:49:22 +0800 Subject: [PATCH 39/79] Drop PR-number-as-concept + stale (Future B) label MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rewrote 'unconditional value of [#22450]' as 'what runtime row-group dynamic pruning fundamentally provides'. - Dropped '(Future B)' — the A/B Future Directions split no longer exists. --- content/blog/2026-07-05-sort-pushdown.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index fdab12f1..6fc05587 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -372,10 +372,10 @@ where reorder puts high-value row groups first: projection columns, not the filter column. Full I/O, decompression, and decoding are all skipped. -This is the unconditional value of [#22450]: when reordering lines up -disjoint per-RG ranges (the common case for time-series or -partition-key sorts), a single row group can cascade-eliminate every -remaining row group at the next boundary. +This is what runtime row-group dynamic pruning fundamentally provides: +when reordering lines up disjoint per-RG ranges (the common case for +time-series or partition-key sorts), a single row group can +cascade-eliminate every remaining row group at the next boundary. ## Benchmark: topk_tpch @@ -463,7 +463,7 @@ In flight / open: * Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) * `peek_next_row_group` API for per-RG `fully_matched` RowFilter skip (arrow-rs): [apache/arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) -* Page-level dynamic prune at RG boundary (Future B): [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216) +* Page-level dynamic prune at RG boundary: [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216) * Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) From 22de1bc0dee51ff55fb90f2033e19a7c623856b8 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 10 Jul 2026 15:43:27 +0800 Subject: [PATCH 40/79] Update content/blog/2026-07-05-sort-pushdown.md Co-authored-by: Andrew Lamb --- content/blog/2026-07-05-sort-pushdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 6fc05587..20e7572f 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -1,6 +1,6 @@ --- layout: post -title: Sort Pushdown in DataFusion: Skip Sorts, Skip Decode, Skip I/O +title: Optimizing for Almost Sorted Data: Sort Pushdown in Apache DataFusion date: 2026-07-05 author: Qi Zhu and Andrew Lamb categories: [performance] From 6e1d134b4a4c54acbec74cc674bc2b774e9a37f4 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 14:44:23 -0400 Subject: [PATCH 41/79] Update figure 2, also wordsmit intro --- content/blog/2026-07-05-sort-pushdown.md | 22 +++-- .../images/sort-pushdown/pruning_stack.png | Bin 175106 -> 0 bytes .../images/sort-pushdown/pruning_stack.svg | 85 ++++++++++++++++++ 3 files changed, 99 insertions(+), 8 deletions(-) delete mode 100644 content/images/sort-pushdown/pruning_stack.png create mode 100644 content/images/sort-pushdown/pruning_stack.svg diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 20e7572f..3de986a7 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -37,22 +37,24 @@ by [dynamic filters][dyn-filters-blog] make that possible. [Apache DataFusion]: https://datafusion.apache.org/ [dyn-filters-blog]: https://datafusion.apache.org/blog/2025/09/10/dynamic-filters/ -## Why Sort Pushdown Matters +## Are Real Datasets Sorted? -Many real datasets are at least partly sorted when stored: time-series files by +Resorting data is prohibitively expensive for many workloads so fully sorting is often +not practical. + +However, many real datasets are at least partly sorted when stored: time-series files by ingestion time, event logs by event id, partitioned tables by partition key, and -modern data lakes based on [Apache Iceberg] and similar formats in write order. -Resorting data is prohibitively expensive for many workloads. +data lakes based on [Apache Iceberg] and similar formats in write order. Sortedness only helps if the query engine can detect and use it. Two common cases make that hard: -1. The ordering is undeclared: the writer did not set Parquet +1. The ordering is undeclared in the file. For example, the writer did not set Parquet [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), or the table was not created with DataFusion's [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. -2. Files are individually sorted, but the scan order is not globally sorted, so - the engine cannot prove global ordering at plan time. +2. Files are individually sorted, but the engine is canning multiple files + and does not know a global ordering at plan time. In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a blocking full sort, which buffers every row and dominates latency and peak memory on large @@ -152,7 +154,11 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; All three techniques use the same `TopK` dynamic filter across three pruning layers: -Three-layer pruning: file-level, RG-level, row-level, all driven by the same TopK dynamic filter +Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
+*Figure: three independent pruning layers, all driven by the same `TopK` +dynamic filter. Each adds its own savings at a different granularity — file +(whole file), row group (integer-RG), and row (per-row) — and none replaces +another.* * **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). Cuts dead files before they're opened. The only layer that skips diff --git a/content/images/sort-pushdown/pruning_stack.png b/content/images/sort-pushdown/pruning_stack.png deleted file mode 100644 index 31f85b538fa767d0dbb0904e02824335b5efd7b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175106 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ⅇ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 + + + + + + + + Three-layer pruning · file + row group + row + Three independent layers, each driven by the same TopK dynamic filter, at different granularities + + + + TopK heap threshold + pushes DynamicFilter to all three layers + + + + + Layer 1 · file-level dynamic prune + file_pruner + EarlyStoppingStream + + + skipped file + + + Skipped File ✓ done + ✗ no metadata load + ✗ no row-group decode + + + surviving file + + + + + Layer 2 · row-group prune (#22450) + every row-group boundary + + + pruned RG + + + Pruned RG ✓ done + ✗ no byte fetch + ✗ no decode · ✗ no RowFilter eval + + + surviving RG + + + + + Layer 3 · row-level RowFilter + per-row · decode sort col + eval + + + reject row + + + Reject row ✓ partial savings + ✗ skip other projection cols + ✗ skip their column IO + (sort col was decoded to evaluate) + + + pass row + + + + + Pass row · full work + ✓ decode every projection col + ✓ materialize batch upward + From 75409dc52cb6da4c43efb8ec0087a1a026a05233 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 14:51:47 -0400 Subject: [PATCH 42/79] refine --- content/blog/2026-07-05-sort-pushdown.md | 31 ++++++++++++------------ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 3de986a7..783ce366 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -62,22 +62,23 @@ scans. Min/max statistics used for *predicate* pushdown are well-known and widely implemented across databases, as covered in [@XiangpengHao]'s -earlier post on [Parquet pruning][parquet-pruning-blog]. Using them to +earlier post on [Parquet pruning][parquet-pruning-blog] +and the [Pruning in Snowflake: Working Smarter, Not Harder] paper. +Using them to *reason about sort order* — deleting redundant sorts and biasing scan -order toward the most-promising data — is less common. This post is -about how DataFusion does the latter. +order toward the most-promising data — is less common and what this blog is about. [Apache Iceberg]: https://iceberg.apache.org/ [@XiangpengHao]: https://github.com/XiangpengHao [parquet-pruning-blog]: https://datafusion.apache.org/blog/2025/03/20/parquet-pruning +[Pruning in Snowflake: Working Smarter, Not Harder]: https://dl.acm.org/doi/10.1145/3722212.3724447 ## Exact vs. Inexact Ordering -DataFusion has long skipped sorts in the **exact** case, as covered in +DataFusion has long skipped sorts when it knows the data is **exactly** sorted, as covered in [@akurmustafa's earlier post on ordering analysis][ordering-analysis]: if the table declares an ordering (via `WITH ORDER` or Parquet -`sorting_columns`) and the file listing matches it, `EnsureRequirements` -removes the redundant `SortExec`. +`sorting_columns`) and the file listing matches it, the redundant sort is removed. This post is about **everything else** — the messier real-world cases where sortedness exists but is **inexact** or not provable up front: @@ -88,18 +89,16 @@ where sortedness exists but is **inexact** or not provable up front: - **No** declared ordering at all. - `ORDER BY ... DESC` on ASC-sorted data. -This post covers three techniques: +This post covers three novel techniques: -1. **Statistics-based sort elimination** (`Exact`): reorder files by min/max - statistics, prove global ordering, and delete the sort. -2. **Runtime scan reorder** (`Inexact`): keep the sort, but read promising data - first so TopK dynamic pruning converges earlier. -3. **Runtime row-group dynamic pruning**: re-check dynamic predicates at - row-group boundaries and skip pruned groups before fetching bytes. +1. **Statistics-based sort elimination** (`Exact`): Avoids sorts entirely by reorder files by min/max + statistics to prove a global ordering. +2. **Runtime scan reorder** (`Inexact`): reorders the scan to read the most promising data + first so TopK dynamic pruning converges earlier. +3. **Runtime row-group dynamic pruning**: re-checks dynamic predicates at + row-group boundaries and skips pruned groups before fetching bytes. -Together these form a **three-layer pruning stack** -(file-level, row-group-level, row-level), all driven by the same -`TopK` dynamic filter. Headline results: +These techniques are implemented in DataFusion and together result in: - **Sort elimination**: 2×–49× faster on ASC-LIMIT queries where the file list was in the wrong disk order. From 44fc3a48a01678fa2555b46f1941ba436102fe27 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 14:58:55 -0400 Subject: [PATCH 43/79] shorten --- content/blog/2026-07-05-sort-pushdown.md | 33 ++++++------------- .../images/sort-pushdown/pruning_stack.svg | 3 +- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 783ce366..7fb733fe 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -105,7 +105,7 @@ These techniques are implemented in DataFusion and together result in: - **Runtime row-group pruning**: 5 of 11 benchmark queries run 3–4× faster with zero regressions; total runtime drops −44%. -The rest of this post walks through each technique in turn. +The rest of this post walks through each technique in detail. [#22450]: https://github.com/apache/datafusion/pull/22450 [#20839]: https://github.com/apache/datafusion/pull/20839 @@ -117,19 +117,17 @@ The rest of this post walks through each technique in turn. EXPLAIN before / after: SortExec eliminated once ordering is Exact The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) -optimizer rule classifies each scan below a sort as one of `Unsupported`, +optimizer rule classifies each scan below a sort as either `Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): - **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. - **`Exact`** — the optimizer is *certain* the output is in this order, and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. - `LIMIT N` becomes a static fetch on the source (the reader stops the - moment N rows are emitted). - **`Inexact`** — the optimizer believes the output is probably ordered but cannot prove it. Downstream operators like [`SortPreservingMergeExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort_preserving_merge/struct.SortPreservingMergeExec.html) can still benefit, but the - explicit `SortExec` stays for correctness. In this case `TopK`'s + explicit sort must remain. In this case `TopK`'s [dynamic filter][dyn-filters-blog] tightens as the heap fills, and data whose min/max cannot beat the threshold is pruned before it is fully read. @@ -146,32 +144,21 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; stops reading after emitting 10 rows. - With **`Inexact`** ordering, the `SortExec` stays but scans start from the most-promising data, so the `TopK` threshold is more likely to - tighten quickly and the rest is pruned by statistics. + tighten quickly and prune the rest with statistics. -## Three-Layer Pruning: File, Row Group, and Row - -All three techniques use the same `TopK` dynamic filter across three pruning -layers: Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure: three independent pruning layers, all driven by the same `TopK` -dynamic filter. Each adds its own savings at a different granularity — file -(whole file), row group (integer-RG), and row (per-row) — and none replaces -another.* +*Figure three pruning layers, all driven by the same `TopK` dynamic filter.* * **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). - Cuts dead files before they're opened. The only layer that skips - Parquet metadata I/O entirely. -* **Layer 2 · row-group-level** ([#22450]). Cuts dead row groups + Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. +* **Layer 2 · row-group-level** ([#22450]). Skips dead row groups inside open files at every row-group boundary. Bytes never fetched, filter column never decoded. * **Layer 3 · row-level** (`RowFilter`). For row groups that - survive Layer 2, the filter is still evaluated row-by-row to - build a `RowSelection`. Rows that fail the predicate get their - *projection* columns short-circuited via arrow-rs's - `selects_any()`, but the *filter* column is necessarily read. - This layer has the highest residual cost (the filter column), - but also the finest granularity. + survive Layer 2, the filter is evaluated row-by-row on + the predicate columns. If the all rows are filtered + remaining columns are never read or decoded. ## The Exact Path: Sort Elimination via Statistics diff --git a/content/images/sort-pushdown/pruning_stack.svg b/content/images/sort-pushdown/pruning_stack.svg index 0f3a43b6..c0a0771d 100644 --- a/content/images/sort-pushdown/pruning_stack.svg +++ b/content/images/sort-pushdown/pruning_stack.svg @@ -16,8 +16,7 @@ - Three-layer pruning · file + row group + row - Three independent layers, each driven by the same TopK dynamic filter, at different granularities + Three-layer pruning · file + row group + row From ca3373fdd71a6d237c7442dc390b54f6db0cf0ca Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 15:09:29 -0400 Subject: [PATCH 44/79] upate --- content/blog/2026-07-05-sort-pushdown.md | 21 ++++++++----------- .../sort-pushdown/phase1-file-reorder.svg | 8 +++---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 7fb733fe..be025478 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -166,26 +166,23 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; *Figure: file reorder by per-file `min/max` puts the file list in range order without touching file contents.* -DataFusion already handled declared ordering with matching file order. It now -also uses Parquet min/max statistics to reorder files and prove global ordering -(relevant PRs: [apache/datafusion#19064][#19064] (rule scaffolding), and -[apache/datafusion#21182][#21182] (stats-based file reorder)). +DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering +(relevant PRs: [apache/datafusion#19064][#19064], and +[apache/datafusion#21182][#21182]). [#19064]: https://github.com/apache/datafusion/pull/19064 [#21182]: https://github.com/apache/datafusion/pull/21182 -For example, consider three files `a.parquet`, `b.parquet`, -`c.parquet`. Each is internally sorted by `ts` and declares -`WITH ORDER (ts ASC)`, but they were written by different jobs and end -up listed alphabetically on disk (which does *not* match sort order). -The old machinery has no way to prove global sortedness, so an -`ORDER BY ts` query pays for a full external sort even though the -underlying data is already sorted. +For example, consider three files `a.parquet`, `b.parquet`, `c.parquet`. Each is +internally sorted by `ts` and the time ranges do not overlap, but were written +by different jobs. Unless it is careful, a query engine will be forced to use a full +external sort for a query with `ORDER BY ts`, even when it could simply read the +files one after another and produce the correct result. `PushdownSort` fixes this in three steps at the file-scan node: 1. **Sort the file list by per-file `min`** on the sort column. -2. **Check adjacency**: does `file[i].max ≤ file[i+1].min` hold for +2. **Check overlap**: does `file[i].max ≤ file[i+1].min` hold for every adjacent pair? If yes, the sorted file list produces a globally sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the diff --git a/content/images/sort-pushdown/phase1-file-reorder.svg b/content/images/sort-pushdown/phase1-file-reorder.svg index 3ea69648..78da88f5 100644 --- a/content/images/sort-pushdown/phase1-file-reorder.svg +++ b/content/images/sort-pushdown/phase1-file-reorder.svg @@ -1,4 +1,4 @@ - + @@ -35,7 +35,7 @@ c.parquet ts ∈ [0, 100] - validated_output_ordering() = None + validated_output_ordering() = Unsupported → SortExec required From 435cd978a7db7be84d4e8af482aa9086e398e1cc Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 15:13:13 -0400 Subject: [PATCH 45/79] tweak --- content/blog/2026-07-05-sort-pushdown.md | 9 +++++---- content/images/sort-pushdown/phase1-file-reorder.svg | 4 ++-- content/images/sort-pushdown/phase2-stats-overlap.svg | 11 ++++------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index be025478..5bda2c01 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -186,12 +186,13 @@ files one after another and produce the correct result. every adjacent pair? If yes, the sorted file list produces a globally sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the - surrounding `SortExec`. + surrounding `Sort`. Detecting non-overlapping ranges via min/max statistics
-*Figure: after reorder, the left case has non-overlapping ranges (safe -to upgrade to `Exact`); the right case has overlaps (upgrade skipped, -falls through to the `Inexact` path).* +*Figure: `PushdownSort` sorts files by `min` and checks adjacency, +upgrading to `Exact` only when the ranges don't overlap. Left: non-overlapping +ranges are safe to upgrade to `Exact` and the sort is removed; right: +overlapping ranges keep the sort and fall through to the `Inexact` path described next.* The overlap case falls through to the `Inexact` path covered later. diff --git a/content/images/sort-pushdown/phase1-file-reorder.svg b/content/images/sort-pushdown/phase1-file-reorder.svg index 78da88f5..00d8e24a 100644 --- a/content/images/sort-pushdown/phase1-file-reorder.svg +++ b/content/images/sort-pushdown/phase1-file-reorder.svg @@ -36,7 +36,7 @@ ts ∈ [0, 100] validated_output_ordering() = Unsupported - → SortExec required + → Sort required @@ -59,7 +59,7 @@ ts ∈ [200, 300] validated_output_ordering() = Exact - → SortExec removed + → Sort removed Range layout diff --git a/content/images/sort-pushdown/phase2-stats-overlap.svg b/content/images/sort-pushdown/phase2-stats-overlap.svg index ab03f133..8580c210 100644 --- a/content/images/sort-pushdown/phase2-stats-overlap.svg +++ b/content/images/sort-pushdown/phase2-stats-overlap.svg @@ -1,4 +1,4 @@ - + From da5794bde3ae13c58d81951596aec3574bc6bb35 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 15:16:52 -0400 Subject: [PATCH 46/79] move buffering without sorting to an appendix" --- content/blog/2026-07-05-sort-pushdown.md | 44 +++++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 5bda2c01..c201fc02 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -186,7 +186,8 @@ files one after another and produce the correct result. every adjacent pair? If yes, the sorted file list produces a globally sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the - surrounding `Sort`. + surrounding `Sort`. Note this requires some additional performance as + described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). Detecting non-overlapping ranges via min/max statistics
*Figure: `PushdownSort` sorts files by `min` and checks adjacency, @@ -196,26 +197,6 @@ overlapping ranges keep the sort and fall through to the `Inexact` path describe The overlap case falls through to the `Inexact` path covered later. -### BufferExec: Buffering Without Sorting - -SPM stalls when SortExec is removed in multi-partition plans
-*Figure: removing the per-partition `SortExec` leaves the top-of-plan -merge (`SortPreservingMergeExec`) directly consuming raw I/O; a stall -on any partition stalls the whole plan.* - -Removing `SortExec` was not always faster in multi-partition plans: the deleted -sort had also acted as an implicit buffer. The fix was explicit buffering in -some plans; see -[apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) -for details, as shown in the following figure. - -BufferExec replaces the deleted SortExec with a bounded streaming buffer per partition
-*Figure: `BufferExec` is inserted where the `SortExec` used to live — -same greedy per-partition prefill, but no blocking sort.* - -The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): -a bounded per-partition prefill buffer that restores the greedy parallel I/O -driver role without sorting. ### Benchmark: sort_pushdown @@ -465,3 +446,24 @@ Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main - **Work on a [good first issue](https://github.com/apache/datafusion/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)**, or pick up one of the [follow-ups](https://github.com/apache/datafusion/issues/23036) listed in the umbrella issue. - **File issues or join the conversation**: [GitHub](https://github.com/apache/datafusion/) for bugs and feature requests, [Slack or Discord](https://datafusion.apache.org/contributor-guide/communication.html) for discussion. - Learn more by visiting the [DataFusion](https://datafusion.apache.org/index.html) project page. + +### Appendix: Buffering Without Sorting + +SPM stalls when SortExec is removed in multi-partition plans
+*Figure: removing the per-partition `SortExec` leaves the top-of-plan +merge (`SortPreservingMergeExec`) directly consuming raw I/O; a stall +on any partition stalls the whole plan.* + +Removing `SortExec` was not always faster in multi-partition plans: the deleted +sort had also acted as an implicit buffer. The fix was explicit buffering in +some plans; see +[apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) +for details, as shown in the following figure. + +BufferExec replaces the deleted SortExec with a bounded streaming buffer per partition
+*Figure: `BufferExec` is inserted where the `SortExec` used to live — +same greedy per-partition prefill, but no blocking sort.* + +The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): +a bounded per-partition prefill buffer that restores the greedy parallel I/O +driver role without sorting. From a59c71e0ab12981064dfa6135d32a2f114c12885 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 10 Jul 2026 15:26:49 -0400 Subject: [PATCH 47/79] rework --- content/blog/2026-07-05-sort-pushdown.md | 25 +++----- content/images/sort-pushdown/benchmark.svg | 71 +++++++++++----------- 2 files changed, 44 insertions(+), 52 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c201fc02..64b39a31 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -195,21 +195,12 @@ upgrading to `Exact` only when the ranges don't overlap. Left: non-overlapping ranges are safe to upgrade to `Exact` and the sort is removed; right: overlapping ranges keep the sort and fall through to the `Inexact` path described next.* -The overlap case falls through to the `Inexact` path covered later. - - -### Benchmark: sort_pushdown - We measured statistics-based sort elimination with DataFusion's -[`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) -benchmark suite. +[`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite +forcing execution to a single core using `--partitions 1`. Sort pushdown benchmark: 2x-49x speedup across four queries
-*Figure: `sort_pushdown` results (`--partitions 1`, release build). ASC -queries with the file list reversed against sort-key ranges.* - -Numbers below are the `sort_pushdown` suite, -`--partitions 1`, versus `main`: +*Figure: `sort_pushdown` results. Note `ASC` queries with the file list reversed against sort-key ranges.* | Query | Before | After | Speedup | | ------------------------------------------- | -------:| -------:| -------: | @@ -218,12 +209,10 @@ Numbers below are the `sort_pushdown` suite, | Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | | Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | -- **Full-scan queries (Q1, Q3)** save the cost of the sort itself - (~½ end-to-end latency for in-memory sorts). -- **`LIMIT` queries (Q2, Q4)** benefit dramatically because deleting - the `SortExec` turns `LIMIT N` into a **static fetch** on the source — - the reader stops after N rows. A 342 ms full-file scan collapses - into a 7 ms K-row read. +While DataFusion can avoid sorting for four queries, the benefit is most dramatic for `LIMIT` queries: + +- **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. +- **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. ## The Inexact Path: Runtime Reorder for TopK and DESC diff --git a/content/images/sort-pushdown/benchmark.svg b/content/images/sort-pushdown/benchmark.svg index 30afb7b2..4eed0a7c 100644 --- a/content/images/sort-pushdown/benchmark.svg +++ b/content/images/sort-pushdown/benchmark.svg @@ -4,72 +4,75 @@ .title { font-size: 14px; font-weight: 700; fill: #222; } .axis-label { font-size: 11px; fill: #555; } .qlabel { font-size: 12px; font-weight: 600; fill: #222; } - .qdesc { font-size: 10px; fill: #777; font-family: 'Courier New', monospace; } - .bartext-light { font-size: 10px; fill: #333; } + .qdesc { font-size: 9px; fill: #777; font-family: 'Courier New', monospace; } + .bartext-dark { font-size: 10px; font-weight: 700; fill: #333; } .bartext-on { font-size: 10px; font-weight: 700; fill: #fff; } .speedup { font-size: 13px; font-weight: 700; fill: #27ae60; } .legend { font-size: 11px; fill: #444; } + .grid { stroke: #eee; stroke-width: 1; } sort_pushdown benchmark (single partition, release, reversed-name data) - + + + + - 700ms - - 259ms - - 80ms - - 7ms - - 0 + 1000ms + + 100ms + + 10ms + + 1ms + Q1 ORDER BY full - - 259 - - 122 - 2.1× + + 259 + + 122 + 2.1× Q2 ORDER BY LIMIT - - 80 - - 3 - 27× + + 80 + + 3 + 27× Q3 SELECT * ORDER BY - - 700 - - 313 - 2.2× + + 700 + + 313 + 2.2× Q4 SELECT * ORDER BY LIMIT - - 342 - - 7 - 49× + + 342 + + 7 + 49× - latency (ms) + latency (ms, log scale) main (before) - sort pushdown phase 2 + sort pushdown Lower is better --partitions 1, release From e210040bb1b02590ec23fb701a5ff329678fcdea Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 16:12:59 -0400 Subject: [PATCH 48/79] more --- content/blog/2026-07-05-sort-pushdown.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 64b39a31..ea21a4e8 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -186,7 +186,7 @@ files one after another and produce the correct result. every adjacent pair? If yes, the sorted file list produces a globally sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the - surrounding `Sort`. Note this requires some additional performance as + surrounding `Sort`. Note this requires some additional performance optimizations described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). Detecting non-overlapping ranges via min/max statistics
@@ -197,10 +197,10 @@ overlapping ranges keep the sort and fall through to the `Inexact` path describe We measured statistics-based sort elimination with DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite -forcing execution to a single core using `--partitions 1`. +forcing execution to a single core using `--partitions 1`. The results are +as follows: Sort pushdown benchmark: 2x-49x speedup across four queries
-*Figure: `sort_pushdown` results. Note `ASC` queries with the file list reversed against sort-key ranges.* | Query | Before | After | Speedup | | ------------------------------------------- | -------:| -------:| -------: | @@ -209,7 +209,9 @@ forcing execution to a single core using `--partitions 1`. | Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | | Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | -While DataFusion can avoid sorting for four queries, the benefit is most dramatic for `LIMIT` queries: +*Figure: `sort_pushdown` results. Note `ASC` queries with the file list reversed against sort-key ranges.* + +While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: - **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. From 354f0d81905144f5d8663aa0ca637e4af701f152 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 16:24:17 -0400 Subject: [PATCH 49/79] reorder --- content/blog/2026-07-05-sort-pushdown.md | 58 ++++++++++++------------ 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index ea21a4e8..c5714f95 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -89,14 +89,13 @@ where sortedness exists but is **inexact** or not provable up front: - **No** declared ordering at all. - `ORDER BY ... DESC` on ASC-sorted data. -This post covers three novel techniques: +This post covers two novel techniques: -1. **Statistics-based sort elimination** (`Exact`): Avoids sorts entirely by reorder files by min/max - statistics to prove a global ordering. -2. **Runtime scan reorder** (`Inexact`): reorders the scan to read the most promising data - first so TopK dynamic pruning converges earlier. -3. **Runtime row-group dynamic pruning**: re-checks dynamic predicates at - row-group boundaries and skips pruned groups before fetching bytes. +1. **Statistics-based sort elimination** (`Exact`): avoids sorts entirely by + reordering files by min/max statistics to prove a global ordering. +2. **Runtime reorder and dynamic pruning** (`Inexact`): reorders the scan to read + the most-promising data first, then re-checks the `TopK` dynamic filter at file + and row-group boundaries, skipping pruned data before fetching bytes. These techniques are implemented in DataFusion and together result in: @@ -132,6 +131,11 @@ optimizer rule classifies each scan below a sort as either `Unsupported`, data whose min/max cannot beat the threshold is pruned before it is fully read. +try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
+*Figure: the `PushdownSort` rule asks each scan whether it can satisfy the +required ordering, returning `Exact` (drop the sort), `Inexact` (bias the scan +and keep the sort), or `Unsupported` (the sort stays).* + For example, given a query that returns the 10 most recent trades: ```sql @@ -146,20 +150,6 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; from the most-promising data, so the `TopK` threshold is more likely to tighten quickly and prune the rest with statistics. - -Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure three pruning layers, all driven by the same `TopK` dynamic filter.* - -* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). - Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. -* **Layer 2 · row-group-level** ([#22450]). Skips dead row groups - inside open files at every row-group boundary. Bytes never - fetched, filter column never decoded. -* **Layer 3 · row-level** (`RowFilter`). For row groups that - survive Layer 2, the filter is evaluated row-by-row on - the predicate columns. If the all rows are filtered - remaining columns are never read or decoded. - ## The Exact Path: Sort Elimination via Statistics File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
@@ -218,15 +208,10 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra ## The Inexact Path: Runtime Reorder for TopK and DESC -Stats-based sort elimination applies only when ordering is declared and file -ranges are non-overlapping after the min-based file reorder. Otherwise, -DataFusion keeps the sort but uses Parquet metadata to read the most-promising -data first, helping the `TopK` dynamic filter prune the rest earlier. - -try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
-*Figure: for each `SortExec` that `PushdownSort` tries to push down -into the scan, the data source returns `Exact` (drop the sort), -`Inexact` (bias the scan and keep the sort), or `Unsupported`.* +It is not possible to eliminate the sort when ordering when the files have +overlapping sort key ranges. However, it is still possible to optimize these +queries by using Parquet metadata to read the most-promising data first, +improving the chances the `TopK` dynamic filter will prune the rest earlier. The `Inexact` verdict fires when stats-based reorder is available (the leading sort key is a plain file column) or when the reverse of the source's declared @@ -235,6 +220,19 @@ ordering satisfies the request. The latter uses DataFusion's functions[1](#footnote1), constants inferred from filters, and multi-column orderings. +Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
+*Figure: three pruning layers, all driven by the same `TopK` dynamic filter.* + +* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). + Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. +* **Layer 2 · row-group-level** ([#22450]). Skips dead row groups + inside open files at every row-group boundary. Bytes never + fetched, filter column never decoded. +* **Layer 3 · row-level** (`RowFilter`). For row groups that + survive Layer 2, the filter is evaluated row-by-row on + the predicate columns. If the all rows are filtered + remaining columns are never read or decoded. + ### Scan Reordering If `PushdownSort` determines `Inexact` applies and the source supports it, the From ebef37893d5e88bd8b1e0b438c0e097ada3881df Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 16:33:16 -0400 Subject: [PATCH 50/79] improve narrative --- content/blog/2026-07-05-sort-pushdown.md | 32 ++++++++++++++---------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c5714f95..c77d6e9a 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -206,33 +206,39 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra - **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. -## The Inexact Path: Runtime Reorder for TopK and DESC +## The Inexact Path: SScan Reordering makes Dynamic Filters More Effective It is not possible to eliminate the sort when ordering when the files have -overlapping sort key ranges. However, it is still possible to optimize these -queries by using Parquet metadata to read the most-promising data first, -improving the chances the `TopK` dynamic filter will prune the rest earlier. - -The `Inexact` verdict fires when stats-based reorder is available (the leading -sort key is a plain file column) or when the reverse of the source's declared -ordering satisfies the request. The latter uses DataFusion's -[equivalence-properties][ordering-analysis] reasoning, including monotonic +overlapping sort key ranges. However, it is still possible to use sorted or +partly sorted data to optimize queries by ordering the read so the data that is +most likely to improve the `TopK` dynamic filter will be seen first and prune +the rest of the data. This is especially important for `LIMIT` queries, where +the `TopK` dynamic filter can be used to prune files, row groups, and rows that +cannot possibly contribute to the final result. + +This `Inexact` path can be used when Parquet min/max statistics are available +and the the sort expression is supported by DataFusion's +[equivalence-properties][ordering-analysis], including plain columns, monotonic functions[1](#footnote1), constants inferred from filters, -and multi-column orderings. +and multi-column orderings. The same dynamic filter is used to drive three layers of pruning: Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure: three pruning layers, all driven by the same `TopK` dynamic filter.* +*Figure: Three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* -* **Layer 1 · file-level** (`file_pruner` + `EarlyStoppingStream`). +* **Layer 1 · file-level** ([`file_pruner`] + [`EarlyStoppingStream`]). Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. * **Layer 2 · row-group-level** ([#22450]). Skips dead row groups inside open files at every row-group boundary. Bytes never fetched, filter column never decoded. -* **Layer 3 · row-level** (`RowFilter`). For row groups that +* **Layer 3 · row-level** ([`RowFilter`]). For row groups that survive Layer 2, the filter is evaluated row-by-row on the predicate columns. If the all rows are filtered remaining columns are never read or decoded. +[`file_pruner`]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html +[`EarlyStoppingStream`]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs +[`RowFilter`]: https://docs.rs/parquet/latest/parquet/arrow/arrow_reader/struct.RowFilter.html + ### Scan Reordering If `PushdownSort` determines `Inexact` applies and the source supports it, the From 8c43f4ecbaf7aa332645d7a9b2668479c3aca796 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 16:57:56 -0400 Subject: [PATCH 51/79] exits --- content/blog/2026-07-05-sort-pushdown.md | 102 +++++++++--------- .../pr21956-runtime-pipeline.svg | 31 ++---- 2 files changed, 58 insertions(+), 75 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c77d6e9a..72929ec0 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -206,7 +206,7 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra - **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. -## The Inexact Path: SScan Reordering makes Dynamic Filters More Effective +## The Inexact Path: Scan Reordering makes Dynamic Filters More Effective It is not possible to eliminate the sort when ordering when the files have overlapping sort key ranges. However, it is still possible to use sorted or @@ -225,75 +225,51 @@ and multi-column orderings. The same dynamic filter is used to drive three layer Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
*Figure: Three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* -* **Layer 1 · file-level** ([`file_pruner`] + [`EarlyStoppingStream`]). +* **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]). Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. -* **Layer 2 · row-group-level** ([#22450]). Skips dead row groups - inside open files at every row-group boundary. Bytes never - fetched, filter column never decoded. -* **Layer 3 · row-level** ([`RowFilter`]). For row groups that - survive Layer 2, the filter is evaluated row-by-row on - the predicate columns. If the all rows are filtered - remaining columns are never read or decoded. +* **Layer 2 · row-group-level** ([#22450]). Skips row groups completely + at each row-group boundary. No data pages are fetched or decoded. +* **Layer 3 · row-level** ([RowFilter]). Skips decoding remaining *columns* + in a row group if the filter expression is false for all previous rows. -[`file_pruner`]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html -[`EarlyStoppingStream`]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs -[`RowFilter`]: https://docs.rs/parquet/latest/parquet/arrow/arrow_reader/struct.RowFilter.html +[file_pruner]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html +[EarlyStoppingStream]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs +[RowFilter]: https://docs.rs/parquet/latest/parquet/arrow/arrow_reader/struct.RowFilter.html -### Scan Reordering - -If `PushdownSort` determines `Inexact` applies and the source supports it, the -Parquet opener applies runtime reordering as follows: +Once `PushdownSort` determines `Inexact` applies, the Parquet opener reorders +the scan before and during execution using three techniques: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
-*Figure: the Parquet opener applies file-level reorder → row-group-level -reorder → optional iteration reverse.* -The Parquet opener applies up to three composable steps at query start: +*Figure: the Parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* 1. **File-level reorder** — the file list is sorted by `min(col)`, so the most-promising file is picked first across all partitions. 2. **Row-group-level reorder** — once a file is opened, its row groups are sorted by `min(col)`. -3. **Iteration reverse** — flip row-group iteration order for `DESC` - requests. - -### File-Level Early Stop +3. **Iteration reverse** — for queries which want the data in `DESC` + order, the file and row group order is reversed. -File-level reorder with early stop via file_pruner
-*Figure: after file reorder, low-value files (`file_d` and `file_c`, -where "low-value" means the sort key values are smaller for ASC queries) -at the tail of the queue are cut by the file-level pruner before they -are ever opened — no metadata I/O.* +**File Level Pruning**: once files are ordered "most-promising first", the +*`TopK`'s heap fills quickly and its dynamic filter threshold tightens. The +*[FilePruner] then cuts low-value files before opening them, as shown in the +*following example. -Once files are ordered "most-promising first", `TopK`'s heap fills quickly and -its dynamic filter threshold tightens. The [`FilePruner`](https://github.com/apache/datafusion/blob/main/datafusion/pruning/src/file_pruner.rs) -then cuts low-value files before opening them — no footer, page index, or data -I/O. - -### Row-Group Filter Early Stop - -Row-group-level reorder — filter column still read for every row group before row-group filter early stop
-*Figure: inside a file, the first row group tightens the threshold — -subsequent row groups have their projection columns short-circuited, -but the filter column still has to be read to discover that no rows -qualify.* +[FilePruner]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/pruning/src/file_pruner.rs -Reordering row groups so the ones most likely to contain the minimum -value are read first makes the existing `TopK` dynamic filters + -[filter pushdown](https://datafusion.apache.org/blog/2025/03/21/parquet-pushdown/) -optimization more effective, and they can often rule out entire row -groups after evaluating just the filter columns, avoiding fetching any -projection columns. This optimization was added in -[apache/datafusion#22450][#22450]. +File-level reorder with early stop via file_pruner
-## Runtime Row-Group Dynamic Pruning +*Figure: after reordering files by their sort key, low-value files (`file_d` and `file_c`, +where "low-value" means the sort key values are smaller for `ASC` queries) +at the end of the queue are pruned by the file-level pruner before they +are ever opened — no metadata I/O.* -DataFusion now also re-checks the dynamic filter **at every row-group -boundary** inside an open file (only when the dynamic filter has been -updated since the initial check), converts the live threshold into a -fresh `PruningPredicate`, and physically removes any row group whose -min/max can't possibly beat the threshold. The pruned row groups are -**never decoded, not even on the filter column**. +**Row Group Level Pruning**: When a file is first opened, DataFusion prunes +Row Groups based on predicates and statistics and then determines +the order to scan the row groups as explained above. During the scan, when DataFusion +is about to read the next row group, if the `TopK` dynamic filter threshold +has changed DataFusion re-checks +the remaining row groups against the new threshold. ### Decoder Loop and Decision Point @@ -343,6 +319,24 @@ when reordering lines up disjoint per-RG ranges (the common case for time-series or partition-key sorts), a single row group can cascade-eliminate every remaining row group at the next boundary. + +**Row-Group Level Early Stopping**: Once a file is opened, its row groups are reordered by `min(col)` so the +ones most likely to contain the minimum +value are read first. This makes the existing `TopK` dynamic filters + +[filter pushdown](https://datafusion.apache.org/blog/2025/03/21/parquet-pushdown/) +optimization more effective. Even if the row group can not be pruned entirely based on statistics, +and the filters can often rule out all rows +after evaluating just the filter columns, avoiding fetching any +projection columns. This optimization was added in +[apache/datafusion#22450][#22450]. + +Row-group-level reorder — filter column still read for every row group before row-group filter early stop
+*Figure: inside a file, the first row group tightens the threshold — +subsequent row groups have their projection columns short-circuited, +but the filter column still has to be read to discover that no rows +qualify.* + + ## Benchmark: topk_tpch The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) diff --git a/content/images/sort-pushdown/pr21956-runtime-pipeline.svg b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg index 6490ea96..1218af12 100644 --- a/content/images/sort-pushdown/pr21956-runtime-pipeline.svg +++ b/content/images/sort-pushdown/pr21956-runtime-pipeline.svg @@ -1,11 +1,11 @@ - + From 65db1795e85f29f645a39f63106ce83acddb0ee7 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:03:47 -0400 Subject: [PATCH 52/79] convert --- content/blog/2026-07-05-sort-pushdown.md | 10 +-- .../images/sort-pushdown/desc_walk_file.png | Bin 98049 -> 0 bytes .../images/sort-pushdown/desc_walk_file.svg | 80 ++++++++++++++++++ 3 files changed, 85 insertions(+), 5 deletions(-) delete mode 100644 content/images/sort-pushdown/desc_walk_file.png create mode 100644 content/images/sort-pushdown/desc_walk_file.svg diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 72929ec0..609b77de 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -257,7 +257,7 @@ the scan before and during execution using three techniques: [FilePruner]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/pruning/src/file_pruner.rs -File-level reorder with early stop via file_pruner
+File-level reorder with early stop via file_pruner
*Figure: after reordering files by their sort key, low-value files (`file_d` and `file_c`, where "low-value" means the sort key values are smaller for `ASC` queries) @@ -266,10 +266,10 @@ are ever opened — no metadata I/O.* **Row Group Level Pruning**: When a file is first opened, DataFusion prunes Row Groups based on predicates and statistics and then determines -the order to scan the row groups as explained above. During the scan, when DataFusion -is about to read the next row group, if the `TopK` dynamic filter threshold -has changed DataFusion re-checks -the remaining row groups against the new threshold. +the order to scan the row groups. During the scan, immediately before DataFusion +reads the next row group, it checks if the `TopK` dynamic filter has changed. If so, +after [#22450] it checks the remaining row groups against the new threshold and prunes any that cannot contribute to the final result. +This is technique is especially effective for `LIMIT` queries. ### Decoder Loop and Decision Point diff --git a/content/images/sort-pushdown/desc_walk_file.png b/content/images/sort-pushdown/desc_walk_file.png deleted file mode 100644 index 913aa86cfa57e638dbd13a78b7c21adbf0ffc0af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98049 zcmeFY_ghm<*EWoTC@QFMA=161DP4L;rFW%w6r=LTK&YXF z9+Xai03iej<=c8c&;9)c-~0XY&T){*PRPvcHEYc}*SXe?ey*!VeVyq#85tS1hPtvo z8QHaaWMt%-*C>Hc@Bw+oKqup)V(Mey?%?D9%FCWi=ar9#tGkaY$o9UUy_Yx0-Az>R zv9O>t|9vMP9}jOCAtCU8|3lE-%Tb71b<7MHg~~(S%$tntHulforRT}(!DN@n$TXCn z8U|!-&0h&%S(*I0M@JOXnV+Ax(2UjBjA?6|RS~j0`0ZDFtK;jBswbXKAgz2=;A>{k zToO*&y>-?M`F+MU@d6ik*yrF^FDu)WB)uljlUG_=st(Nf-==xn6czd3E8q<$aF73O zVfy(Iz)JqxYE=I3<$r}i_J5`Ee@HjzT`&Ft#GdDs1tqPCxKHb*ffznw|AonWQN}di z?e85(8HQSOLr*)*B*1!~k{ew62KhV!hh{Li1ewRbiWdA<1?T@|nA>}cfDGmaR5Uoz z@|>@(+;ZsSV;}NNpKSMJHQSvB8%gM$za9y6@7pu3nQMubw`o}(O4`VLeoK>Q-nze~u)pf)%_Yr+Jk7~T=hN#Tl(g?nr5nk+ z0CVhm|Hpb$D)CckMKvP=nPh@H&{wp5SIEj^BcnGQ8ekL0C5N9JVr?s2bI9@@Jm7e? z(t3lkSL-5kCF`(fe8Ow&M`R%cp~`Ow40ojb*V^MUn*^2y*F!5(bzH0iUnbtrO#PJg zuXm~|@iW`)`>58y_V3E?WJ<1Fy)s!2z8VG%I!o%};*%Y=pAkrV(LwfvPz<(i`0&(E zxAWMl0(`ax6&e09bL?+nU;PPN} zD-TlryR_zz6>LbyRDtYtC{0m_DCL&ztqJGNWG5@t4w9?qzUM@{9!1B1#9y!=BL3eQ z7n`Lo4u|C|uX?p|-|wZ^G1P zVbF}QF(uLM(OT@bTcSrCJh7=LBnq`$5FInPt|LELSiE*LHx&0nqTXr3?U*p^TNg0l zHtn5vWXeFx!s&}u{=6xobkZb-r?cTft+@K$m9p~={RMSR)b5BRNVWWn zoesBV*M)@p>`=I}gTM?o=~j`Js&O^GcK^r$rJ06_jJUi!FuG7tmF&PeU|BO^sBBv2 z5N~$%@rzfe4m-ORk6=A%>~giZv$O(X)#n&za>KIN%Ew$Ua3z1ts(592RSR7UQ}^2$ zRioK*Ci^7+I8;_k43QS_~>0{L-T3s3C`zf%(Ns?qDko&w1wziz3=h;eL90 zpuVC)e`Ocn@P^9}c58LR)U~JWkX50M-@h+4J9_oApvnW!+FyWWTQN>myv>qqifV9Q zY4eKid`D{ecybtvZ0G)+dN{X=#TfU?51()D5h3THy{F^LWZ6VHI#Wv{5khi*LGwl zI2TO`+miznIb!!#@?eB9c9)e^Ey}~0-g_Lgd`h4GtEgpo5 zp!^{gR*XDU#0@9PR?9uzY5x621RTXw)4rdJ`MgXe3k#L9us(K*LrVBPeAF|y%D*6J zb5>`0PTUIAH%8da9-Wrh?@zfHaPh#O@b=6MUbROKai)Q?XT&~H?p22`phkQH5lM=f z%l9j?=CqR@=D}f5i+^#7-Z{$0PO^scsY@fFRr0hq#lo;|KUzZs`>r^T_FHk^1M9F^ z!dE`2d4+ScYjR97)NW?YgsBBr`bsOoPxqZzQ2 zD4z)%^z2sp?(FqP4|h+k=W{=~xycN>2g{fYDYRtDK`^FWM++$Lh)lNQZqDbX8~!7O z>C6K3C3YoKadIRb|P&1JG6P9v3EqQ*Z7ddFfgKW8rotv<5TYsj)k-Ps&%Aa(g7td?` zgdfju(J^K550YGjkKRRfB>|f|vQ!(Ri(7fT9aUESR4)xtT($SPn4?O(#*r|@fFE49 za1YmW_n|lhp`rX5QKCh>8%}4L>}LxSEsLhEq9+S>u;Z^Tx5qOpx8wr%I?^5HH&2r% zv-QsO%b(

(BtQyE=a{xvt>q!4QwOs!e$akO=N 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 diff --git a/content/images/sort-pushdown/desc_walk_file.svg b/content/images/sort-pushdown/desc_walk_file.svg new file mode 100644 index 00000000..55036ec4 --- /dev/null +++ b/content/images/sort-pushdown/desc_walk_file.svg @@ -0,0 +1,80 @@ + + + + + + + + + Layer 1 · file-level reorder (per partition) + + + + + + + BEFORE + + group 0 + + file_d + [10..20) + + file_b + [50..60) + + group 1 + + file_c + [0..10) + + file_a + [30..40) + + + + reorder files by + min/max statistics + + + AFTER + + group 0 + + file_b + [50..60) + + file_d + [10..20) + + group 1 + + file_a + [30..40) + + file_c + [0..10) + + + high-value files come first + → TopK heap fills fast + → threshold tightens + + + + + + From 5142a5f564b359531a8a82857e7a1f838565f447 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:21:46 -0400 Subject: [PATCH 53/79] convert + tighten --- content/blog/2026-07-05-sort-pushdown.md | 98 +++++++++-------- content/images/sort-pushdown/rg_cascade.png | Bin 128743 -> 0 bytes content/images/sort-pushdown/rg_cascade.svg | 113 ++++++++++++++++++++ 3 files changed, 161 insertions(+), 50 deletions(-) delete mode 100644 content/images/sort-pushdown/rg_cascade.png create mode 100644 content/images/sort-pushdown/rg_cascade.svg diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 609b77de..a299d673 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -268,64 +268,37 @@ are ever opened — no metadata I/O.* Row Groups based on predicates and statistics and then determines the order to scan the row groups. During the scan, immediately before DataFusion reads the next row group, it checks if the `TopK` dynamic filter has changed. If so, -after [#22450] it checks the remaining row groups against the new threshold and prunes any that cannot contribute to the final result. -This is technique is especially effective for `LIMIT` queries. +after [#22450] it checks the remaining row groups against the new threshold and +prunes any that cannot contribute to the final result. See the +[Appendix: Decoder Loop and Decision Point](#appendix-decoder-loop-and-decision-point) for more details on how this works. -### Decoder Loop and Decision Point -transition() loop: drain, decide, drive — Step 2 is the #22450 addition
-*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what -[#22450] adds — it only fires at row-group boundaries.* - -The loop body reads: **drain** the current row group's batches until -it's exhausted; **decide** at the boundary whether any of the -remaining row groups can be dropped based on the live threshold; then -**drive** the decoder into the next row group and repeat. Inside a -row group, only drain and drive run — no decision point. +Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
+*Figure: Given a query with `ORDER BY x DESC LIMIT 10`, the row groups are first ordered by +their maximum values and then read sequentially. The first row group is enough to fill the heap, so the threshold jumps into its range (≥ 90). At the next row-group boundary, +every remaining row group with `max < 90` is pruned in one pass.* -RowGroupPruner: watch (cheap), rebuild (expensive, only if changed), prune (cheap)
-*Figure: the pruner has a cheap "check if the filter changed" step, a -moderately expensive "rebuild the predicate if so" step, and a cheap -"apply the predicate to remaining row groups" step.* +Dynamic row group pruning is especially effective for `LIMIT` queries. For example, consider a file with 10 row groups, each containing rows with values +`[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. -The pruner does expensive work only when it can help: a cheap epoch check -detects dynamic-filter changes, and only then rebuilds the pruning predicate. -The predicate is then applied to remaining row groups' min/max statistics using -metadata only. +1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. +2. Row Group 9 (values `[90..100)`) is opened and read, filling + the heap with at least 10 values (the minimum heap value is 90). The `TopK` dynamic filter threshold is updated to 90. +3. At the next row-group boundary, the pruner the dynamic filter has been updated, + and re-evaluates the filter on all remaining row groups. Since Row Group 8 + through Row Group 0 have `max < 90` the are all pruned out and skipped in a single pass. +4. The scan ends early, having read only one row group instead of all 10. -### TopK Row-Group Pruning Example +Note that for the Row Groups that were skipped, no data is fetched nor is any +decoding performed. The `TopK` dynamic filter is evaluated against the -This section walks through an example of how the techniques described in -this blog work together to prune row groups. +This example shows the core benefit provided by runtime row-group dynamic +pruning: reading a single row group can cascade-eliminate every remaining row +group. -Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
-*Figure: for `ORDER BY x DESC LIMIT 10`, opening the first row group -(values [90..100)) is enough to fill the heap; at the next boundary, -every remaining row group with `max < 90` is pruned in one pass.* -For `ORDER BY x DESC LIMIT 10` on a 10-row-group file -where reorder puts high-value row groups first: - -1. RG 9 (values `[90..100)`) opens. One row group is enough to fill - the heap of size 10 — the threshold jumps into RG 9's range (≥ 90). -2. At the next row-group boundary, the pruner sees that all of RG 8 - through RG 0 have `max < 90` and drops them in one pass. -3. Bytes for those nine row groups were **never fetched** — not - projection columns, not the filter column. Full I/O, decompression, - and decoding are all skipped. - -This is what runtime row-group dynamic pruning fundamentally provides: -when reordering lines up disjoint per-RG ranges (the common case for -time-series or partition-key sorts), a single row group can -cascade-eliminate every remaining row group at the next boundary. - - -**Row-Group Level Early Stopping**: Once a file is opened, its row groups are reordered by `min(col)` so the -ones most likely to contain the minimum -value are read first. This makes the existing `TopK` dynamic filters + -[filter pushdown](https://datafusion.apache.org/blog/2025/03/21/parquet-pushdown/) -optimization more effective. Even if the row group can not be pruned entirely based on statistics, -and the filters can often rule out all rows +**Row-Group Level Early Stopping**: Even if the row group can not be pruned entirely based on statistics, +the dynamic filters can often still rule out all rows after evaluating just the filter columns, avoiding fetching any projection columns. This optimization was added in [apache/datafusion#22450][#22450]. @@ -456,3 +429,28 @@ same greedy per-partition prefill, but no blocking sort.* The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): a bounded per-partition prefill buffer that restores the greedy parallel I/O driver role without sorting. + + + +### Appendix: Decoder Loop and Decision Point + +transition() loop: drain, decide, drive — Step 2 is the #22450 addition
+*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what +[#22450] adds — it only fires at row-group boundaries.* + +The loop body reads: **drain** the current row group's batches until +it's exhausted; **decide** at the boundary whether any of the +remaining row groups can be dropped based on the live threshold; then +**drive** the decoder into the next row group and repeat. Inside a +row group, only drain and drive run — no decision point. + +RowGroupPruner: watch (cheap), rebuild (expensive, only if changed), prune (cheap)
+*Figure: the pruner has a cheap "check if the filter changed" step, a +moderately expensive "rebuild the predicate if so" step, and a cheap +"apply the predicate to remaining row groups" step.* + +The pruner does expensive work only when it can help: a cheap epoch check +detects dynamic-filter changes, and only then rebuilds the pruning predicate. +The predicate is then applied to remaining row groups' min/max statistics using +metadata only. + diff --git a/content/images/sort-pushdown/rg_cascade.png b/content/images/sort-pushdown/rg_cascade.png deleted file mode 100644 index db3dd011a6e6f24d3acfc53b39dd47e864b4e183..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128743 zcmeFY^;cV6*ezP2P+Fv=#f!U_V8x5O6C47?in|kdDMgEGaf%b%oj@t>?(XiE5OUM^ zyZ4UwjPt|!2hJKJBMkQ5Yp=bs*4)pW&wRpEm1VGBk-U2HI;6vXLaX=`g5jP2p!kxWqB0>4dfprzfnljE_w zM`kkMTH(c|`8e3yuUuxjlwMq3UW!Tnr_Gv!5g~8h{--@>`OjfVx{e5Z>i;w@&PwtB z95OXzOrV!~+{pV`HyZ^O!i!a7O|GBzP5v%mSV@U}M_`f&*cl!Rf zY1en5kd>6w%m80a()$Y8{1~^ZdoEn*vO*)>V2Gvixd9VI2ty)$If;b@rb^DXX(8cv zO_il~aBPZ&Cw_^*3s2Wb9>OXUxY zZ1=2xR9_WZPbhM?`qD!54eD9UDhFMqD~*kViYoEbl-IMiLn7@DSK96C$S6k!2W8~- zl9~;|6n`fP6P|55EOOR*yz{-7VDxO{PrVizcVfDGNVa4CNwfP?>V@H!Gd}=x@ixR{ zg?xX7KIvXS?uyRXPnZh(orQ{IZA~?AMIy)L*J>WbE^OD zpQ87G8t1beLK{w>#}z!}>g(i<={1r;d7#pbd;Ql*?#i*_@{t+mjcxaZ}hdWH4QD+Oy-lJaYrqJm2nhFc24*b>X2}w7V}Y zPBOy!d*hu0G_Q`qHsdj2dMfN#&i=mPVUDXtL~ptA$^Z>SNKK8Pj6Yb$2vqcpR_grL zDWD;Q%lYymCLukns4?LSg^D?!&(0r`Dw0#8MI%ELX7u^~#frqS!>kG>KoKAZq#-2K zB)Gu)TD`8;E$@9-aE9eMJm>i*PwMo;bkzAp!D)Uf4!L-W+BtEWJ^eevgxp-(;jc<% zDH0i0jY^4WF|XXZCE{C5%#b@TFI-qO(f7~#Ujn1t?|b4K9r@dZRtWwA+h6$81oVzb z;_E&hE?Wj~l&1+=uP_XYGelceu$S;=iD&k3Y{u{A0LQlbieFv}IAK~r*1w3WqhG}0 zYFlEU-M9Rb+I)g_O!h56n51iDreJP+xWB(^0=u`$deAEU6KR>>SYf_pSLX_W5xFwN zRV+g<^XvE=h==!hj+saq$Gux*_e6rQ%63!kNZ6S;`S-hNfZn1`=jtNR+^5!_B=m8a zX=cvvzp=&HngcL3`x zr7G{1gxhmd6ZMt=30h90DVZse{I73J`(c}(JUDTz_H|!gxk;RkU^}knjl3*A)!({w zCqpJm+npOhpnp=vh=wv72-DoNWF%d~A*2;8DrmR94P%$!hYiNz)b*Y6`2P>%5J)nl zNa@VwOdH`xk8`mjA=kH@PQ{My)iRgTem_68V$-he`xn6;m%w{*0xB`L^uwdzHiN0#v$J+3 z&OGgxrL@=$KTp@eGVGgYO!raIpXavGu7#XqGpU;`4wOjlAR-i-A@%B6bQ)4*$rWri zKX-P!uLSj?Fw}V!R%T;0Vy(X^SnCxCaGc+`YQg_WPwV%nVpZAYt(z9n8n?c0*~}%B z&KbO`c(qLEO(%AV?DO$Do}9K`<(aOtBYU`8@pKc(?p~gLD=avpot#X5679A)nxn;u zePo`M*0Ax>oxC;ll5jKTXI$9Pk%4EkAmmbdo*|X@Ok>yTVqt=>vUUqBHzsq;#XvK) z%PPWT2ri#$%1^{MFg%(*F9gOvaq~@b8Qi#$pvwC7f+ZSa+Sh+M9vZGBr6*00PIf%) zRnZ!aUe`7bpna0DFeTlxBQ`6X#jfnM%e#@A#cOqQHx>)8J%P4fOVuR*5)$Fl8)Vv@ z5Zo13ryJ2wfC=-hkFQR_*~4dG%=S%NHJtw2Z?ETL4lfYY@SG!!YL0$~tS}lqLb#wj zj9U1*{Jbe-y*_C(v9u(xw}O(LvrTfUIn=;XOhhQh*0V* zmq?y+xjLOu#m*!oB;t2`cvbLt3c5yOWqcwmW1pzJzSNe^1@!ZJuO;3?vZAQ0v{*z3 z9`#)mc_3tbwZPa>s^?RO zk~q^iD`Rt1tP^Bp*&Fa9=oyP%AOJuF0?Nw$(iYJT%Gy2VOzqE10fKLV_vD@z8QnV7 zDCEB0U6B&lXhL+a&GuHRhR8P$7)w^H9JT!_$}dBUTfiTlVjvgSea9Dq8sW zdcng}bUquKx@o}dz3vcLGJGu)t9b?fTZrdr-WYtKUt_h~IrdaN#gp31_+~PhW!He} z)7bM&`zTr2k&n&7TwF4j=XjI?j;&`+$!M~EshnaU>m%{(z z#kk##mAszb%9-#zb%HWbSEp~ZY`%RPJ8pa!oU!|=?5zxjzL1wng*-?DFy{onYGS_Z zN*JJwOpF217i#<9Eyw*$LEo4QM72->i^>Zd=0L1a zCEue4aWQ-e{w6O^_Z~nU_K(y=hQ-mdUP$p?qvjF<>aW>R0_dZhVv9zq*%H5O^FAaNLUvv-ztens3+0BYs&*$l{PXBMazlOUf4`aNY0*>t1;Z2@1KaG$mx)dP zBI1zgFf>gI--b@cqA&8_SR8z->igi9e$cnL(0W;}q8up^zIWvJO6Cne59X^J$4qwv zes{)_kpv`WU~~<^pn%I3h$pO#?&o#Ixv_@Zs`jZTY!o$e4L}ET3gg1y&k(p#df|;i zS#~%R|4kpO9cHi%c5347t&2H@>5oD6STQ@)A%gpIVxD8dBM}3U)%@ymDAI+{=)sY0 zAnk)n?KftiT!HkBoLY(o3vb3mD`K2!c^C&`5RG;$a_{xSLN%W`_Mg5ol@Y0g9xsr= z7m}05)zwrnd}dIhSEe5Ms!Ki{Jmmw!cKTTQDTdeRMcQUB)FW}vtw&g>5H&qZr@|+< zl9EZ?s5m<|<>o_s9>45li$)-|!pDT9+%~p@=?hJ!lelWO;yb-WTr=MNG!OxKWkURA zjfqq0C<~WW8sClfsFkS;;^Lz^Y%6w_z$z*GO}o*^!TkY-Ps+8gK->!ZAoZ!rN}-TS z?Dp)ARWc~v)ms;%z|4@RXtOL6R6f`-PY~(7gHI*ItP552TVemIzN+m)P&@Q{3bs!7 zw3T5+uk?hEZuFh{stivTezoX8X~zI1myr2RdU>W#O|YM}|HQ?CWy$NrZpQEgXTn8{F6O*u1q97D<6EAM?AK|dt!*!-Z--+j|E60CJ2#Y9L8|6UWHvBSA@ zpTaWG`k?+OF7HQVl=ognDuxx8YFl&*eD5hh$e$*xZd$2e@sHolpw=*wW|XcMz3f5= zFFpNnWJ4Sd)f$sP*D9e)SNSIRmApFis>ukq+fg4+saM`k<2#(G1 zw7omI5MY3ub_21U2=7N>=v8pEGkflG)2~A$PV#NA+Re^1Xji z$2u0tLQJN&%UzAjW4Bh4nw=J>I14wr(*_5Z%d}6L8!BKj+^;Z0hLRF|;)gWI=1-bO z|4At4+}?0K_UrobAWF5Jm&Y2%q)%!Ctd|Ekn88ytGAnarKPuS#4ozs9$l+OIhA-_s z9Uinx2^ScR14KAS%@&n63{)4(Ug*x+(RdB#JX6B^{^07qKA{_j{UJG~ylJ$roiR(7 zzud4ePNyl}w8>s{dg0WJ%;tEKPHkpXNlx>|%i0RMo41tPDl>ngx5f8u9~OhmrP;;y z5WS7wkz~>(xL53hb0dyvc54ACk^|OBSFJVNt3E(C6uLC4X+pi!W9!_m+c@$lM-c@blIHTjBZeX^_f8zHLOp zLQM1E#HiGPYuc-pxPL4ySi5K1dIG8a*@cTpYDgBUZ@=wCXx_g)-)z~ucH7&=h#itl z!edL6^82J<6_$qHpt`7Lq;J7-h(7Gfd&HRjl&LorInVnDH_XI9zFa)*KJgT{M-A`SLRyj z&2MrCDrB>;y6}FAB3lZ_E|&!$W!@so_3@_=T)(BfmE>Ozeyah3J@p*i+4`BQqe-87 zQd94{q^G-nbHAZp)vrb#u4MV5ll$5I8sC)z4CXzorm5g?!jOILM#^=CG5|h~O zpq`@{g<;c>S)A}$!Pb}ghP>??U%QURo`^0|!~P`O%OLJlLc=Xk=tue#4I+1Isr*xo zrLsEsJY3HKzzE;9Z1^RiuxaE`EvjJbcA5EFr~cR7Q1xM~*j+3l&BP2^u(wnYbs%ag zZ=^Ca`+K^FI2_3?`mG`J!f+X${jVq-lT5=6 z!Vh|>5nMyZg}{VrKYRJ#c)P{<_nB$;OQBzU7}}9bXX0(|u#1ft=u=>Ll3v@f0gaml zH!vgSiw6~`<-?+sNP~l46+wx`s?T!fXLH0#2?Q?uc0BSMF-l^zh_k5E3s3!Js19o7 zC1{ASEwMPX%J}ZnELgm7pvQ&2Epu{xb-2*MSVV0`Ddra;>}aDs1h;-g4y}>-rLM0h zjK0-73CdbFVl3J^*vKZCD1W#&Lc1qMeohJwQ->O)a#+6re&?=Ey!|SlB%!{nWck(V z{-!J~G8H}mdsxpnx30G~kKMWA!?h}2jRKf@EU+1JTQa64O^!1=&^{lYNS~>+jKp&H zy-?r2iSpVE6N5b!r4n@%^>RwE;Ib*ZReN77!v-eB@_#bWQ81)ehn5m>H$P~4#Z_u< z@kPz8%&i8?ji5ro?J6rYmB*fHb! zv(t+;=nv&BOh|F&4uk~DaC>l=U&_Cl=g4d^D>iF7tb&xc~c zOZtY4=G*o1p|#IG3JYpx0E~IuK#9R~7sA(u#CM*d%7c1%?=qIqHZ&$RLWaAlxT z4*$juB)u@C6T_U$j!~o@W3E#lUme8!(UqN!qBd;_%z>y~bl>!9L_^}W@XaV) zh-Sy+SkdD!5ch>+Lkf<(g6eiMF1=OKb-0S+B&*n#;ZRdyLU#P4SGQqxbsfBEuMf+k zj9l!3Kh8+Ay8VXD`-3^vZr%lg(_K|zI6M60y7oq_KNC>+XDXYVDhOuZcPLLO)2>ZR zM73LH);=Jj!Zvtop!*dJ6&7l05y;}RRpmIBdhiztp|M+3xMOy`Rflcc0r@bW^px^$nTdx2KHyx0H~YSB?((;^TA zFk$}oP?;)F6>mWwnUuGsh`{Ae885kRhq>7l@$ZdQ*hm0_3s~t)hUi4i97qg2jrGwB zd$8?*Uw2xjQj)M}b#J?4kG_R$^zt!-huQoFU62=8t2pBU3>bM08JE2w#3)TFm=W>UajHbll*;B>6|aR8s`u z^%_Op$~2W)-ziy;4X$Mk-SDLkGcarv)Loe;*@Yz4eazOUS>nz!|1}?{C;HuNt)`_X z!qLT|U*vj4{W>>~J5JG0_UDK?;YC*yBY>+8@Qg)WL7#<2#s(ewF`b85^o^1~ZTJR& zZ>xRaWoci;e$F>5sp*P#yhPV!F(^uC)2q!2C+Pn;v9V#M{T2Rm1lCrn22lML(#_+^ zlb_hF2CTErF+`WQ@gD{7*BeH$wyvUMcouEOCFO`<6dWp)jD};)?V~Fwr?>Df)+j7C z%PK0*Vrb!Hywuh;)2jU4x!DuQT%G04QD7TNH}wY$JQQwvKaSCH1;2>v5y2-;%VFPX zHoM3ifWw=rqpJ$o3D3b)x>$5<(F^mG^z6^i)iVpZBO%)^x<+Qg^8774`lCeV)We3( zs)krK#|w2uK_VHXMG-+cFfYx#gjz*lHH&b~-qBkQTuZkj&J15X&`3Vu6q>K_Yly1< zifia5K8%Ly+ILzqvFf=#Q6d2=cE7jxam_TuHIF~Cv!Y?O4*-6cw8-7LzL-b4pD5?{ z$|19r%dATflCY_-<~p&w3h9MO+dk#22)w!*Im~BCz325p(A&Sbpi59_`Q~j(v3s_A z%CpJNhKaj}S-ZQl!r^?9+P7X_UO^VC2-rH?-b(u&MH}EBdY(1VqZz)pGOR$g3slx~ zrY_!D=^E99qL%@bqywt`D>tl_b zBDE>eL){4CQrM&^9Kxb3%Ya~r> zXfI+%>BRG;+X+StT$yBAM}CaLg|r_LgAZV$+dhZJ%Xuh}SKX@ZZe9M`AbK)5pR z&+3wj!(@7=gRHk7>!K%~N?XhOHU|WOPn4!DQ*-JcRN!HLpUF~o@#-d(^a%>-$!~qA zsRzIG{N&%GNtq4Qux=ewk1^Z{k`%=gbj^QVoRI)(pzgB8De9!obc)FvsZtJ?t*srcK2}(@tweMQ+(|bD9Zw;rm1HV4w+a#O(xUZeG~u4q$p6zAG;#mu5O;RzQjf>xIYprDyrGx#L9{3yaC3x9IA)EWYB zhe)y5bS>>bPwa7+L$wHk17gBqe&s`^rA)YyqYAnW@KNN6T7ExPKeN|X6!}l?oI2+F zA{H;E$b9!Pn+IHWa^GC<^@n_JqiKMsRl0OE*<&{n3-D)s`c{>=4PPeUv|QYS)DTVl1`f@ zCJ^++rKi2szNeV~3JqQV3JqI%4gRyi)=6np_nl1FE%_!cR!98Kx-LDd9uBJ!J=f(t zCWL?|M5GQvo=(EYsk7>YUAr+9wdy3h%N4UFkI#Zn&Ci=RAt`P41^G<(oE$tm*rZ2B z(OPWC&!E|oVe&{zGece%RY($4|5rzN!W82`m`i?|oPNqyNIDi?+DM0}u43-M#K;?V zrhO(#c+^ZZbknjfxuVFTHlKpuN?@$ud5i$E@NT}`MTh#l{ynbjHV?}hojX?!StNQ4QBpCdDc>DKos9^ z1Tx*&UTVG3t|!=$t7^QRc}}LlbEZ%HFQGxl@cwEc_2KUHT>bWbuC>syf{dx^>USXG z)p9xTS!GTiulEK!DEAbDNzQdm=hI)ksz@l-cPpPy!wW+TOD<(>)QCKiB{po%X-zMT zjmo_7QP+8|=3tZ{llIZ78mY4}l=@Qr{MJ4wy%DNu}1 zV&e8-m?0#gF|W|to^4@fp8Bgx9?0WdWArnAm5m8 zRJ7kh>HL@$10UaL(TDgMpM(I7GVVtZ0nu#$lRQSGMT|O)(IG~gn(0d$2=^@K~dE1I*KM>*0=E7saM<}EM9zMdG?9ZGqmGdszbG6d% z{hCx8#l5raQA^qP<=n*B4D^U2XW^xNO)_e`4DR*3UsV_N zdAOhs>bqY?{h7nlCE9twUw>`J->vm3r4EWTYKL0jqNmVab_`w)=6?V=5o6%JiQ7C1 z8I5Lj%~EuXEj^BlGmf0OFV>nDWFpj>xutySx_^DXW@k8FVY414M#!%HP|v|U$R$iu z=nKkypOu#Cn5p;PNAS4mPj}fnOv*YttxtW-?|6rp3>m~OcoxgAy&$sFCMcB#(*M^; z!u+&&QD~d~xcara^u}ZIZb>KoUOJhISpB8E1L_Crok|JIOXxPP&<@=@SU^NJ$VyaOi$p*>e(GXQHI zuLjfY<_(3@^|RVdA`AzHmP8OLiP-dkdD6G$J4L2Fg*6Svd%~h7Ti}{$5g(eEf^ofh zdWwfiIWig7UNvGy#6xnKwMA`lyCF$Ybx48PPFsQvfY$sCHU=B^bGqPJ^U7}5j(odI zJ*k@}Mw@?BOBb9;63ggMN&tf^wONTn($MYxCTr>DeUBR7Q(5|WGY;8`AboOV*B-o@ zx;={x9Fb_pzPK_aBWm{>zUuJVb*b)@nCegw{cIbqCr^*k)J@)bu9u&aL5;6Db6wE* zahu`(NTLj+L3E-1`cPf`u4(x4>DE$i*WBnd|2$;4kUP+NeY`(ajJ1VYo-~P%cyB88 zn%#Ws@y-Fdqj<%aMP$H8NuMV(xYpvY9$-27Bt+4flTXKW^b)xdRfyD#|DNZX^Z=5m zh9ZR=qIZxyLJr)?T9`6S#Mkp2`qvd~y?*@z_wFY+HJL8w&F}Wy4jT?GnL0(w@VuS< zScw<6&&dZ41&t3^UT>4!F%It*6r>jt0IAhkVwj)-wbdGK_7uzIV|H=pw4I7&te*Tc zeIEBNT*<#Sl|XCx(ONkG%@9OpXc4_B(?{wYJnzdeD(e^%M3l|*W&!n6J@$)0&W>4p ztx9#bj31EW(zN@0;LcZ+twW~~_S5+^3ryq~#07~I*PD7%dhlV9JssxypFoN)^s z=&g0dSP@5{(pKNAa33J(OIUKmKTI?%J4Y9#3?~59PE0~-T>p%hfen3q-1uF$8iuYs zl8Sn&P$GEu%=rv;4TJe||B?;?`OV@(>gEwD^l3ACTV^y}kprkO&TNsjh#w zM8NT|4?RnsMvbvxCbrwE!`AEfU4ZdQDtt0L#-`1nmzE5I!}A^HoRvPNbvRi4kIrxn ze+aoSKx1j5hC1j<&l|R~;)%HAk!~2Q7QP#JmRLm@sgsd$9Gj3H5c+dV9NW|3JwWh2 z2m`iW#fRi-HoRd%1rG;>C2PBz;e&6(f(D}AKlqcj-l-y~v!F5|FsUTfINh#eeKb<@ zioWxlB2y`^Yi+BUKG3DR7xWa|VzjF9nH6?YPVF<75P}M5<@XC)dfk4jAdh&P5qBw! zihc(w(+o;cARKpI2$qGJqI1Q;aRDT}>{6G*3HVqFLR?OHb%r z`Pn#icq1Eg>N#2MtUlpz*H)v-(5G?SdtqoWLBBoBBf?Rw2zEd!n;*(%(Jt>E#3xJd zQ_w6*JVR?%{Gy9WUyV4rR%#H-RY%*{-SQ4UQ`60CE^H70aT`W)?AZ2}o1WOyk}#1B?wmc!}!KRz7xtTHbE$hAX_4V{X*Jb3UQ%ByI|QLZMyf%UeHV z4dOk1k(Zm8p{gdvV>mC@WqatJD=KmP85h9`lK;KT^-H7JD7W@s$c0G31g9&G4ZnKP zy^|LSM7et^oAe^r$_j(CHA)s>pAqRn@TnV4TDo7`)V=ukWei}=t)HeaeU*kx775_$ zX;`Q=;NPTlOj#L^pQncqeKea;yqpX=OP<<6@oUa*bl`Wayk##JnPK=A#&(#?I7}>U z9h_PekUkN!9b+D+t}FEdX!eh{B(y-fq0SmFv|@!wf9pwBdg-9cz!Oz9T`B-0yD(Nb z3<gnAPK9?XYStyxMq#x=n{l-;f?LC8J71gmtd2o^+r43~C5(G||0Ttx(FJ z<7^{N>aE-p+4?N3s{yPNh={7;I7){Jk~!Tg_sU8jjJwXm*NiRw9&JRFAEhF-pRZ;; z^zk3tPmWCam`Yp*<=XY7+_WtP8i(J+NHqZQAaqC9eYCw3Ob?r z6Zt5R^M@9rv9{{=EEYHsOJ`KpN?P_ar2?}I*`(3)lGVcjSBnej@usuaofGD?~EVW7+yfA7*pHd#a-oOg z%!Gf#bd2?A6?=`-;i*ayrK+o5A9>*#xo4!JZGuKG?8AMAxNdKHYW0VZPnS_H#2r8H zwA2*f`;>VWt_$>A+lT{k3pwP&qa+V$IU^w6btI%A+sJX91in4rrzK+nf4twf`?{jz z)6-@T_3?qdSt?Ky`6XmA>yOw`vi2d6vd~3^tZcxIkc}1y~X@r z<92weu=C~fZok_;Z^X@Unu6;HEmCI1L5?I>Utd4DF}Astfj{}|k{xD{L#@b>nLF_R^30M?uWiLvR1zfOYfp?V6u) z8eE#iq$%gjZSrQpwds8Wl)?L9rRnbnv;X+pM3?9t18n3|V+XJX2qK?Oj{O8pe}Iq`zE2K} zHd0^9N1M$LMMM2*;dbxUMA^5hgslu&!K4>m2z)L)MH!X1!lCPLU_L6lkLeH6cD2&L z@K{+AL#Vb88C6d_MRCO6Jx#c4y-;_P`vMK?U^|hE>BHO8nU}Z9M|l>z@`$?wNk88~ zIBb2?5MpuJ9V*FFME^VmZ!cBgS3KeiWo`Q0oiY2u*rqd_g5*7kjdbFEf`5=SuEs;);hIW38(qwEbt6dj#wH2 z9gvU{<>T2Fs$+B}ueyV`eDrxVDqZp=v1I>4$PQ;xr$3KejLt8q3r&^B<|u5DDf`HK6xGq zP&L#;S(Av6tfB@*W*tz_irT?0Ej2Z{Y1m$mn%Zvh-wR&+CFO5{oab`;Kdu9AYE-B%!|KFZgNQI7?nz=*W`0vGvenukoC)hwj!%Et* zQGAq*8G<&P-}i@lkWeveK_Rj6-=3uiD zI&Ih7?iB6cHFk5~632f-`M~Gq=Q@U`pQ5D0ugk1&z=C{#){Lks8)~YqzWnV+4ZHVJ z6LpJcTKD(&3sMVVe;?}qZGEA2=UM+LnUK_c|9@*H{%3CfPt_vvWlgxKh4r^Jza`^$ zC-ENz1q`mo_Kl2)Rh*DHB8B6*Dd1DDxz-Lhg9x*{vd6%&YMh=o+qjYT@V({TwcSHQ zlR@RblfNDP?;0RA@Rp`0U^R+d_KBwCWFjU%vEQ4h;;|o1M3ANFIVTP!C8+E z`ue1vK3+M7hXq7}&Xh|_23NPkNCzGQcHNTl#kskT<>43Dq*I+8?aN~jsn8utO+{Pr z*ulF?zSE*ze!mOW75E+o;#f;d%hAnAIyczu;}=;9Zkvh9sl)YUTxeIA#_qNM;{5#Y z!O7=rX?#6>zrbs!ySetDT35CmHoeIHhKS!|0d22@M+-rSa4<&ndUxTeOie*PDD$G$ zYmxlnBOK(m+_OMZUOrN!%|`_Gc9l$4wkvO8R|KEkaJ@XcokoJM?uc3S>o6@xL#PB< zFiuX&i$Dzo-mZ4hBV_uh@{nD2gWnVQq>dL?FY*d4JG#1nb}dyj7(~JqO*y6;XIDSC zevs{PgKgCcmW7|T`M9djp0*;ru20W8+ng5v#KL+FTHgmGuRLfPLanAgN04&eHN&gy z=gV(l=47@gQ#){RW9k0KCkk)Ob4+`40) z3QzC;C~A%wo!PPT8Lt8>OqFPq7-R|3@nC~|;iSIcHpgDJToVTeTz}}q3-K+%n}Fhm zqC=k>ip~{;j2c;~UITvN$ajdTf}*XEFIedO+~-BFtOhD;qtoQhGUKoiHaCan7I8XX z7AVlOxR7N3^7mP*cpra2VF;-nw@qGDmtOC{_djN=M(yMnI2oVC#ZiW6tEp_9VC<8~ z80l;Ix(|QXkifqvvD{&Hwz8C<&9wjdo4P;Tm8vg#W(w>k0RE~o{cTkRGgR?xLJRC*jiq{ z(5gQb_~+CDf$hM7i*>MSST?yg=Xo^e^`vmbfDve%PrI~iaD93x@0md2I(e)@ou_7) z+q<~9XtJ9r(dhR3B|>1K-Uiw%%)+v`R~63?DJ^Z0)cm+y3Vri_FNBi@y$I?SSQ%VV zaoM}7Fa<4uLxt+|05#QTr@s@e1-Y$N3C}Tm!@;e#f?ob$Z+CIjj&eF1!+dz0#iK3E zGxs=MOQ{^I(f0x0$h%>d z4uNX*$ewQtQPI)W&GkOkIMOAR&xJ-E>lxq0h~$`^o2#y54@Z@ELazi0|I#|o`v zpVwu0oQQKkdnsLdTr;F6$B6PenAB$TNSFe&)KekeUS?_zQw z+-Lc?BG`Kv=x_?Y5>6^xDgq4Ao=LgpD#*)gA)7x5rd)g8XBJs)5pg{If>|!>Zlt!c z@viF2H9_L>{huz6gJ>3UK=_tVtqEcw-w3DcGW-$TO#P`3_4J0pi8c*uH(@V2t@xGw zFEGDd0r6s=3 zeBG`iD(_P~!VI||Vz+s$R49M2j_Y?BaMBa8OT zwGM+KP_u6Iqb2am@hT@rXIII?B&wg>_MXMJUWRh~m@(mzX&y9e!erNn=p{$YlK>e( zcM8qs2#@|7d@>A6ONOhHaW%3*H#5-` zs3*_wuH5zY^@0IFW{aa5**kxPpY$*1xZnnSkCuehI981Nkr>ub{5>9DXYt-SkbFsC z`br{{usxF~!m5D8E2{9^rDVy-DB;EwearU6kX0ml98hQwSs0?^AWfAbl4D=y(+GQ)fu+b zY=PJbd+0-ztT}W4n(H6|)j^xKhY4Xtk=VSq+qVe&S#0kW*_!6emj#4_Yrm^K3Jccn&>^Oyd&59Bsmc4gjJ_n8r!k|$k0W$%f|}BHfpM)B{dKt zbaAC0L|(yjsBQ7jV79-JANiLr8=U^1;xU?#8(?54 z-dzm+y1HOHYXB~>tM^)_oagrO==t=me^IAI3MTtCBFpdSJ(%rVs>Cq4TwRbwd| zA0l4Xq+8~iNpr1xq!B_j(JvN{P5nR#JzYso^y&O+IU!?-^+KIh6or3Ah=hzXWPYZB zl)JiOBrm1L7I!`>PVIbk!tJMkdFwzAUbTugz10?C^da%=!nyZSMX6+J_R(XV+07u< zG?KlNJKKS;_2z^S!n&~bRQS~kd%D2=OhNk@Q7!bQTk=nkZ@-#1|4Cqo%O0F!+Kj0F z-RxoYgU|?x#xiTGmSUQp7#kbb0P-@(qML2Ed)<14%FR*qT*;hHh@Qk+H4wh?bw6H0 zA8mj5^-62W>5yo6SJVmiVFi3Fm)kDyTsnPkv*PUb;D0}lF^%PKD7{+Z;2%&O^SKV| zt0?@BX6}(RF{A%(;Ay2>uLuIh&34Q{hdY>CnrSlM-r8z_ufxeIk=TrKPa7`DCcz7$HbGe z@yo}7XTXtI)IAg?^p}xZnf#^2d+78v#mfeD&z}N5eqBh{C&KyJZ!8^BKMWMbc1epm zv>+aQ5@KR31<HVr}p1j4slZ7&9s6Z7T2^>q}X@n?cB zR>ZHbWw1{REs7Or?(7X02>92u@a*l`t$W};6n@ds(DX=Ch7pKj5^q^*4)tEWjC4=k zQ-(=56WP>y(zt-a&;Fp&`9_Ir>e!wRaadBHaW%K(Z2!) zZ%8uahRuoU3eWoYE{Ly^Q7J#a-^Euv$1f}9C~$x_#S-8mBv|MS(neQ~&iIu3Eg+aK z+-zC4py$+|O)X2J>%#Z<)oJkcVUe@AI<*Sl6Lw-{JlUhM`XDv*pEdFEBv-=T8?5vR zCi9E+_STx-mCDDTc|Q80I1~Pp@fX8xV)(>G$;OJx%H?|K{40`@J@4-y0^uHfuOKg% zUF6q}ClY0WuTUEK+iLP{>io9~5=r{<$^A}-)%IAk`emQ}6MxYx=5lYpE+OrIjG;e@ z3o^AaHLYdOQ%tl~(Io^jRZ>62UEYXz~hfJsf;|ce!c~gXRxqoCq%V7iTBr``Xj~m~^a`^Rfs-DHv+QzyAWsIJP3X zs`)=B{ro zO7QN}VRJU@F7v&)^85jvl=Jgwopx)DUn$!+?(Wu(Kmac+<*JzJHSx#z6-)rBF05Df zEGK8LJ|s8y{N{~?L-YyRloWc8x%=Y@IHbzz(8%{;o8#yCjs{F!2Is~-wX^vkTYuLb z?wz}R0tXa&T2~0yL^#73eR$*~P-L_!x z;1(dbLvZ)tg$H*h!Gb#k4-g0hhhV|o-3t#SxKp^hdm)AO&N=<}z31tE{n%fx7appp zRkin8bI&>E7-LzDrp3x)9_}BlrKAv!l9al2nCqp@)6!4O z^P&2gWRI;*G3t#@(jlNt#KgrAM19aRQSK|}(S@NlXjYDqs?+RhrU5S>{KJ5Ltc+#Q z{dH{AWJ=W(W`LrbTkbHpg!NyQpK>S#!%UN|Lp^PGsMz)2A;6hU$PTO=*<9l3Qm^K- z)f0!HD-t0laEINuz$7rMNQgsrlwnh!<8zuUq-`gMEGh<(p=VWfSq-T-KDE5Y$Vt~1 z@n^OxUXdR*rO$y&Ag&`S4rxA%;qnR+C(n4!_F$AsMNfT*Gt}#=*8C zJUO&G$@fN}fb^RG*o}H~3qSff8AAZIU6BK`(u09$aGS?6^zuQaloed(8|H6^aiHj@ zZ>Ueu%KnH63)eydZ-rSXrzP_xPFX?^lh<5i;J+nIG9_Z`RIgQaby(Kp_}f$`#JL9G z`T6Z$_@2*}tCj#-m80gQrOW?4tW;=z*Ew8MHuNN2>9n!ySu+-H>^ybDI9^h=%x1lF z@`w+SmVy@y9AhbQVvo)lPQ*C(IGa*|3des1c_&QiaChs9wCpDc?%1pand^1>@Bqk4 zrDB!>kMV&y=ia!?&a*)vhhDB?J;tdi?8If?)+(B5PzyJ#@ud(Y=BH}<%bIOc<0o+7 zz=%)T`^@TqX90U|cCLniX?6%@uC&Mr@g-k0;wT-Da$V_|am%cToYlP3B3KSd$3wCw zApuVsuN^>w>~bHrzmyXEe202qS71k2#d1%Nu*jWnI!7v%68+iS{Bhc8=U1g|PFn+A zuL68DN^Ax%vm8CbzJX=8UpqQ?-dG0u^cn-^p=u^3pHBv>)0~O}#CH;HUg@CjTb~`A zA$fnfKlkR=@GMye_x%?li%>d@gfBuE!X8d0R8<8vqsoS)T-u$H^kgM5*z_v^3+A(^i$XS>+Aa%%~r@(hr}8 zZ~Sd1o);L4@*3QSsdoMpbar5j$fIUX(!z4{6vl%otzPn*di%j zp*r>Hmg^4V&-t<;X+#`y`)hXc`QXAVxK6JZ_55dogv>%;6Q(&@%WLM4YjSxdRe>Rj ziAth-BLTZ9HRBWtcvp-#xQX`1_W-`6i_}*T-)6zD<;ldU^vih~hfLgskkXG|iO)U- zqbk!EtJL52`uzF)n$vOJvFc-p&qjCdR_epJMuxCIg>pKt7JVNL%_l9Y7O&Wtw*pqq zr74CatzAz&UWYsx>FLEy9oH?Keq%sRRO0{ArXN^NRTh#js*)vKtw^KLq@w?!-TR%` z%dS8>&y~pa(TYBjs7~b)GPaj);|uBGd?&%~OS5cJ%+GZ&qNafTYGrVBN;QaZm4b1+ z%)WzSWiem-?=Fxp@0TEsbCa)s+f2hLN%HjEe#{v1MTOK!V-x^A?SB zucpa8Q+M07IyEOQCQJG?2e)UVsQEjPppfwI{$XkI+fWP7Rj)b3k;iSh_Qzf8{kgVC zF?239)@_X3q$pa3)ZXAR@5%b$=3r&Yo0c&yGS=dKupK@-4 zY=0gU2SYyX9$r)p#o27Xt|Ug(K1|AGl=?u^oEy=DBbsJWzcq){iwo>8TOHLCU8=f` zt8`zw9Jf>&O~}crphE@?_T*TULZO}x>9pPBC<{VJd$b8mi{)|$U2Xt2Q)2bcjp$#R z8-lHI`RRF+Z@xp9B<4&V;S&I)^^NAEkV1`_#sCnk)^(H+D53to8@9Z-gxae0uZ+rI z7A=d}{IpV&nXA!5UT$cI4sFe0Rv@C>=liGc+D<6feNYq$uQWtXb2&Oa{V`kl%WUNQ znINl{rhcpI@f2IzXFK=7QIi-!SRk6D1ew_SrB*FzJ|V58kQ!m1wE0y136*39QwKrS zSfrV$j@3|oX)EG;(LMspl*p%-9`pIyhq$s*jwg}=>Sl})C7e-rHPt$2cuUWVp=iBU z$8u&l2KpU~Zt(*3g&~?jiF~7m>l26!rtQ#(&-5)l9Bym4jhE^>53?PhJRnVyNJyIk z&mBTKqzjRBlB-uO8p!Z!(wjdw2AEDE>GVC_e$c4zpnu1N5WyW{B33Moa?=+L;zls> zIfZM?+SX%8GYWb}>QFD}lF?TbeL5?Bm~lIu_fWI^GHCrY?d8lL+0wl#jozPAnhi|afKB>j}bV;+{DH1j`z4b0{T7KF6KiLYn?9) z9_yV8VXUzvtJwbl1plG9Yw(xrpuyCx&q-)+P>}96s+Ri8D&9;3L}~=zlTbOWZWFQe zHcv{89$eHhMF}15sD@eS7WQf`N!+ltdhq+re6Q^3Tcq-L2K@xnXAKN>WDIaPOx_G@ zJzY4cr_t;FGG(`>gNZ^HV=Kmr=19cxRE(8aAnP+e+QUaJwYm3Vq z*dPDT82E5p`#3&}eK3L1afVv|D5ZlR>F>oKS3?mc zkC1`xABbuy6^~>eMV@6x7BZ7f$Y^N(%uW*YILPG;u7Ag!Xm?67WLZ#%Xt{e}?X%Yl zxsJ^JuQ!$DlEK4oEP3JBu6YtQS%+@LCfd~;TuNH(S{eFG0*j<14AuGO_k@ozXC>q_ z!DoPQ&7pJ8&DV-NI6U|_x!O@~zABKd;~fa}tHR!X@?lb3y?OYKxjw9JbIW;u&_-U= ze`+ccSYHC+Y{rLM-}%S>+xrVF3C|jc5r`T6-d5j79hjxWB`8TbTbUQF?2h+y>^gtQ z`Z2+4J42L6c2eAxua{TxiAiC1HTf-H%#gV8@@GbMX8HH8w*6)f1piJcg=frY9e2HW zYCkKnrAK4FH*5~EUc#zzyHy)j1XesD!0Q=MP?p?`mkt-NK_NX9+9>YqfjvBBc1-ZJ z5FECm{O}eWc^!y~0Mu!^z<1sLoZ&&cPx7_`2|S9@*Ou8?*xDvKN2M zqy{I7DE%<#_z>8!a82}93owO4^S~Q~TR3Z4n+` z#vEiYf0?U*2(|LzSyHfA)n5$s_47^kYX2>hJShu)$EPZRqnA!Uvr?Hk4HF&0O)m%C zIdX*H_1OZdqgdec@+u;Qi@L;e98s!11HYk6Eeoq^A7=t&+!gmGs6Ils|x zJuS7=)6p?LhMbqF5(gG;Jj0of!}Z)WJ}nzKxh@eeK07_Xs*T@vgt!;DcN=*;iPv+| z?T60M0EVR=YWK-`3^y@rfKLTvsRMk~DJp~cMG-?_4Tb-(I9ku^%1TVLo#abONy`Ot zhV{>rmcY*^m9{czdIslLcF3gsi+zq5VS8i;LUREq__#?r(P$O>wHNfb+8?!>gq*aE z*?})#dp8QW0D_X-#(L_pXqZj;c>agSr54=(hfOR8XO~g%w3|-qv-(;c0?UsueLqOu zmS)e+M>{({bP2ZZ%F)RgOL+PufGfAyoVv?Zlq&9>gP&az1Kabuo*(=hujf!iuQ=d; zLDlAT$H`(#G?yUI+5Bv&^xAQ)O%dum($OlEQ;?N=0eE$LvKW`s>~$GX@nFIGpIbO@-A3%XmIpz0y6bcA^l_3haQU z^K2}Xu?-pSXS?Ct+&UeC<%an`U(KTIJd=PxVOX-6Jv^jcvo9S!oBgn(kQZ;oz^C3$ z?EK0=^Q!lGXuNK7Mip2q#^?9tbHw8wt(CG>XW=t~AM|gUp3j76O=NQ-n`Kgf=*oXQawIkeFMS|y)c$FNQTOF#rA1!M`%D51X|qWPN+Hj?RXsh zKJ<8*Oej}G*0H`s^xU|tFcSh{v1pC zOv43`ld{+WyEZ?|_Z19c6T5-gR=U&xDyBDExF;9H@gN~e%!~V#3CC#Y`$ZU>n_SKz zjKnV!Yf!m4<)B@tzsA){{;VL~n`}KkpL_e%Wh{h<= z0&Qsn-nYM5&<&hBqO&e8AO5rb?ifQn3_Sw(um#xW?)d;TKJ=#)S|9($8*3H1Xa+=b z(iN|(5z)`$8}xmq!ZB>(?}GzkN5eYmQRW`CZ7$}9d?B_F?4VI!(n`{oxGE!Ekh`&N zGKVZIN$E4EB{Mtw9qFER;P;9?#CbvCo<{Z8hbyiqj}I8#5vtZXJLpc`vws>Dt02qQ z?(>2|`aWEaf)t~M`aZbfj$d9f7k(%)so$B-4c$rqtkxHU?c>Pz#oK-ov^Z(kr`nbB;Yrtw`^Z{VAZgze*R zr6hb*7&7e1TbRScSpm8NbN%+f)oXDuoIk}qG2`6xHy`7_G@{gsYkSiD<(_U0q_^-l z&ro6T+Lc0tDdWv=Niw5zvApp&GnSa27s)dneMzeVJfbO5l9CIOx2B#6hT zi500kcB3;AMmF?iL~JIG^4v20miRre_H6HXwyS1q??ASh+~hF=9A3-gNyE4MDPB}Z zky(HdyOVAhTce$h8x9e7f&S>Fe*nPx+>r^iX?Q=Ip!~Ec@>+=~J~0c~(As+5*SohcfL0rAv`yN2 z^!674Q6#!spycu?`QeMgU)d)n%?(IV$K=+fn;UMeRjW^|&BxqNlkg`4S`YVX>+=Vu+d zSmUvqua-s&rZ^M35Dy-@G|lqc8aG@yMH!}JvTAwC2cvM~v>z{ff{Gc-9^?cLgTk_8 ztcQpo<~s+NrW!};4=udh70Dqeaa;S}I>b?2e-*LHQ^P?SU`7uRZ$tJ^J z(EhJr@<`VE>y>run#V^K`%ZV93*x~qjr}Xmjc&|!Ya>JGZCaeFh=RTw&GFTr#m-`- zU%o>>KGg8Lb9|b@hwu{&9KR!C-3rD*qOePO>@W3vqXPS-8+{? zvbv}scCmf!Ha-Tv6Ko<8#-|7G&(QwYs?pkkYim{wFpM8cgOguAL*)hrMuQ0|&K=Jl zAbaX_iJ*RG(jo5E1=qJD^x2li66%V*osCaKPyXsQ7qIRhMlbgR+)w_PqQU1MyX3U) zIi*7mJ$_4{IBF1k6uNM;W7K1DXg-9u@7=&rr_Nfv2{w-ADc?zLJRh;LZ*`Zq9JJWk z?H-=QWb->TH%b&cGUK&fXQZlgU|QGTBv{lCcs-zR^F!#lys+-63FYh%)1XE%5?A;R1iep4VG?n-s(|(w*Qh zJG&6kq6Qd76t*vcR_&SoRW~JMvS|BckgI#wi>o zu^x3DjV0Sw%)%`3eD+$ArX1+e z*-^dW@8^5+kAY)cKK3e#KfndX7@D!uBwtf<#-3k9V=Cs~J~=R1t8UD`k*TGM_F50G4|0qj;nZ}Qi#A|p8fJ%fznA9hj4t*t*#90YV#^tPl>Ka zS7bh36UPz0)osjzp0S9K+7L-Y{$zCj5Xx(|2O5#Wbt_|jw?f?Jd0J+yj6#F^PZl8A zoZkMm{jPjWOOV`V_mwIYBfWlLI^qOY$72-Qaf^VBPSJ^?)(Y$U4y43%Z1sK@;^jyG zZ5G&iPd4LhS-5i54-&u1nVzIYV)@AAJ=P++VU?2ZgQ~!PA zvyzegkBJw5_6xMtrTexat0}b4;R4Msd9#w==+*dnM4g z_8OH!@eI$qV`$S!&BWP%J|O?n6uY^tRZUH%e{7Ku^Sz?U;e(dn+oEcL0CJ&cvIw#7 z9LS;(R78{>=|5S0t$KA2Q$K;R?c3cYkg(}nG-s@HdBxTQ#y^XvP;H*|>z11@vW+6| zJ7xR&MWYpwP&nH=D8t>CQ&Hq?6~U_^3@gvYd!qV=8F5_v@PiF*Gy|QUHgNsb{QAf_>dU0;O9lQ8h21gxA@ zu3jCy@Ez|9HzrP!%zW0LLsJ$~L-+O_k1sQ}KPqNG1%JO$KhDd}&kH3l+2N}1D0ca& zix02mTiWG!%T5gjQ+nO3iaFaEaCYxNaubJ~&rfE{2lnirkB1LmvK|iX>K~i|#`0`< zE%O)rR!4$QO-?$^O3B}c3|v_KGU9u@&&F18IL%6IC+sa9LXHbS8F$;Fz?G=h6;Dcw zOG%1|ym|%=werY|`Qz;cJi$?8zptXeulGoN7CKtxMxtOdpcW9tB%YjQ3s56|dvqC7~cRkxWd)`z*SAxgu*MPQYobi$p;6K3ca*nPBmvP*O2z>?_%p(!7UfAk>*|oCL zDi~5j?X<}=AR-FLj;?5V+Za9W_mGA*@YAvlPg{U{tF6?F+{3sIG!nCz#q!j*wo7Z0@%S;?el zkHzx6+WIDS$#l*T;aDc$#OQUia!i@K=t@56#;nE@J#vGMypu4(4 zF3q1KdODJJ$<%6L&J+5*yo2`G;W#cWG1@=AnDgvfmcTy4<4Y-8#eh#-r_fZSJh$^V z3l-7D=Uud=8@xAhAGnRx3Z*6Rqa0??XLWRJGY9t86>V9?RX!oRo3|}HP>ntI%5qn!h3f>IDZvJ-he}awWnD6U+l)fE5uJs!XKH$!UW{GVvLLi^szZyjzFEj!M~6fE&@F&MSQb@( zd6+~8Ck-ri2k7k}6ebaFuW4*1b7PH4btwN8wi_qL3>?K_p>AQU#Gj2wyYrT5m}4Be zl}mrvp_C&(+hw7Ymav!nYNeMgtjvQ-pCf^9mbRr47U+s$;Qz5%4Bhr|r90EFpAA6SOcbPpRTcd+^`1mOjh#sQd}=_ecsm5R4OUyG z?&NK0c4c-}r2Qlr{t(@Nk+fFUCGEw=%wMy)e_GCtcQ@&BfmKzL#q2poF);W+6OKmU zCG5Ox8V`#diE(1|yOV|i8(vAg zhA#a>fnGluK{fX>>?{^><*aU@tP4W%xzf(V*v5Tu5~n$p{hu z*w||_ZVk-#$P%dC#OK41GP=}{<8O=C7oDpNO_QYXduaO!+m=VOeBd0ZkwTIbidCsT zS@vLWHk2R9BahO|8k2sF8~G``<)}VKZzwestdOH9FHzdkt?22R!0ca0OUw?35LR+@ zI%@c7u0cf0xyJ~%yn6KKPy52AGrt0kcm}xWqmEm^YJ293f#gl(F=^O>NJ4zUFd3?8 ztCr=^Yt+-vNIDfK$p?qn^9(cLxr7c~dNitlQoWNe+*(Z@i4U!bdZ4!eH zJ0j&U5h)sCy(I##<|=NxW7_5hqj7T@7(iDLAXf?u>U-T*dj20{#mXgSyV{+Yj6Da< zJRhbr9o0ip^QsJA6;=L*3N z|6mzYITPFWl663iJo;Be1dSUF^A=*cSB=z4XRZ*8oLA-h$_J@geP^q0s(z`ORL`Z^ zOT9-7)mA=&Zy_t;;G=x7h|L0VSw+Ur)`XnMn2~)B2M%(#rjGVxc4r2-@TFgvGbltB zamMg0V6!MhG7p5MIxKoO>xZO#W@#mMsiBvS`4cRE9X$sDaStxK?E0xrMkeAy7E*c( zvp}iofU?^k)TkDR@*Ir!?+*rCNt1D=@9nOS=08L^$S!24O=DO;yGUb2x%d! z$aIohjUWPQI7VZ$Kj-r$hE4zu*$M1*?%^(B^xsBlOc!O%atiWi*r;Xuf-NTL4)JNf za-NgE4mO4k^%qs2vR&Tev6JftC7qk6*F4vYXgS<|O1VF@OT9$rqIiF0w=6@cHz@x@ z*3*X@$a~ZXcuxWautow^ky2&@4bIJV;8n944NJ_l<<~?~8>O_AclLIOG0lwi>s}EB zyy#mR-+7)z$9*sEo!v2rD9za3Mzb+FTi9Ks%Eb6dI>i6(-eREGPV#_A8n0v`o?G*~ z$YSM2!;UWjUES0^v z>VvlDCmPoTyhser)@J)k?1}>XDgrG$LmFv9uKWj9=8Mdx4+vob@MxU zc19~pFX~8KyMAF7p0<&&;)WG=Vhld;`en2Y3MW0Y;OQ})0Nc&cLTxf`W$0W)a0I)JBe9c0vyp^DLUdPIB^z!XzqN_@<&x@+&-JD!RWr?k+K zH}JqW@-~jO07b{Yqz(teiD!hY^s`3MDaih<>y_KbNV^4wOB2ixR=j!MN24T^gZO+v z(J*K`6+efr8X==&(xk2iIp=bXvOm={UF#ZX(9+Z2AEHI`LfIP8TezvKR?wHtgi%N$ zOA_Q1s%}Jpq+sNtb-Va|*0$NC#GPTu234KE{PXD^%5&w|v>DWbGZH@11|9`RUFx6U z8a-~m16pWGhcvPWZZO!ez08r5@tt>k(sz*bLo^e~}TgpGn6|B*O)p6q44M zQBjDt8njtL5;>nin}icMmHqFLh^oy1=KE0)K1 z`Ljq;`f<-?{XW=LAL`gf8X)RJ`#d2wlljG=$=SQst%FcL`I%kz12U!u??d~~^)FfJ z@wv~?GYED}09^QLyGat7Qfx~eEE|A2%h;z73Qv5q-yGh4w5u68EW{kv`^<5Psg!b2 z&=~y#!|_e+%Bc3@zk>IR5V)*pc*??iX@?d7bU=n(I4x--gt6oA_AMI(F5jGf=4x3s zF;zU=4`#mf(O4`Gb@JCPQ-XciN8ZOkkeK?cKQt-Nb2WXDqTR{~5WHB4TaRCh{}@Mp zzGaa&y_or8_E(?PCFECnO1V=) z=4YHcZZH2-{tNa4-4+Wvqw(b}yXau6sn;fo?_`SU4@0~Sf(C~cZ|DV$nXUs0$x;qp zfdO5Sl{3IeT9#*GJ}9OWHLkmKtzp@0VJ?JP^ee#n6`J~r%87CCI1_*aO1`SX=i^=T zIUt&9r#j-Hk{rB6{t~(6*pN+{J)Uf-nrM$_tR};qaq1wdft2S^QK=mk$v&?)b1}M9 zyN{XD(0!mWo3D>*y1hg0`KS;HuZ8Yn@f_$Jj1)*?nD$ci%v* zTHcgPM{rNYeEa(X(@vdB76Cq_QX*+>!XV9cC~34o8pbbqs}J7TW=B>bB(7Ed zm5)Jgnc)5NL9bucERqDqYlK376=uJE+yz+~v0`-!8bhyu5=;u}=7Pm;WU%3L{QkY! z(P{3uK|BUp@1>4Hf6RWh2+|zeO>0K5EkRVD(bHsx-=$!N9b`5IH8DVle#59O%XX7} z^X3%vH0VWYSvlY{Y0#g{aHhFh&3+}5l9acl#nSS-nMGZjyU2wD5-Y7}q3~52hMAfW zRQv29Qi5m7v|wX<=zE!ew2Sw`-EO%MP0Uu;!VHlWhZ8DkV*Y06(l@$4u@!WE zSE)(A5u-}uDJqbQ%-z2R5e(pSPneh#Jf^YxN+>dmF1UOuMPLbg=-u88fj*4>nke7N z=6f5kr|teqWwku!`sL1i#?HB+an7$A{G=zJ*3sPjQsyMZE=kJ7LNEDYP%JL;;ARHN zt>9Q&f4~Lg!xPGYId%J5Kftkgh;y1RHzlWZx!8{NWi&|Uu4b)Q_AIwTOtans%rliNclr(B}Eu4XGA;lm>SX(n=tuY)WBM-`Zjt4^9n^j#&UF`H>_@ zTHEBYWBxf>5tcD-umH)Gx+*Fczl>MxHG1%1VJW$JX!8#bkx-1XILa0}#demZwem8h znW+2A7fkwk`n3-k$P2cpA~F4XuXCR1_88I(iA%OV@~pYN(JmaHS?`cUZ(@@d}--SiAJ0RI_hM$n3R=SsX3AG=CiB$s5y1tW5n%(!qO=Z z;i*Wup|9H4K<=POCrGVN8}s5S_Mn?onXt6&jV+fQ8k>mX=)kWAWtbGo#))|uv)2we9UgPwm^qS>gRu^n zRgXj^hYe|5D*l=v9YaeAG8YQNa+*+HTlxqIU9s(M&^?*8jnlO{P*NxafIKb(ENbN( zOU@^W8Jh}W(}}p{pVvS1zgR_r*+U|DJfEwaOgQ`vn1AugS8wfBo2qII9iQs-LcZ1_ z4i6nBb_8x^>CkF<7X_+1PGJ8X1|O-HH!h6RB0#`!e$+<_R&{65f)Tx3duk?O0>@>+ z*5I_O1Snkxm3^fHZYD+bjUDRt@~j`#zrOn;ciY`QPw8&vY5})>0chr!b`BPq#?7kE zP#Di|DqO(*yMR&6n@?cw0B1rg={5oGYWvvzee(rrl+CiHe-$3L22MOlIS{0Q13cEg zU%#mOMC`BX0&RG$GzNf;2>0#Q^Eu23MciRVQy~UULqk=b1J_QklobW_+uP(E<_H&R ze=QzQ;_wu+Q2;gFgaV27!?x(kw5?#Lc!S;(+vp6X5i}R=)zR!m)%ljCo*RqHb;AQb)4MF{LXv;(#&oUJ9&y~#)QWScJ`!TKb~+b&@Fy)_UG}X zDFfX9T8VPIUZTu-)<7!}i5rXSi}rGZpCT3;2;)g-skU<&wFf!f#-@ld{;uiM zI}1$F9U+asG|S5R4C`|f1pFdwUx@|0Pl$6| zqb8w<V z!ze*W^ER33^}~Ze5>leyp`c0@;0!8f8F!oJ^Gp^q`lWZ@)6UnIH{kq2aj6QVJ?LL4 z_i;Af^6sjSWO?#aI7y8_#ziNCdo{`1j8&HevFUXmlYL=*sDIqo5R8Ermq&vwTdu-C zI8di%12!$>sGnB}mt5R$nJk>^OLfUJqBt^?8HXDfFALP&Y^1488YlM;F}`?<1O3fX zhSg61zV9(PIXaQTt;&7nV>~YgZASdyE}7^V5DlSfWMWe1tq35hXi>xYq95qe1%BQ8 zRZb?pdlH|VVLfzojar05x6+Q7j0kSbq^v+oT@-(0V`n`K+jE@F{Q>wLzl#z5Su70| zzbehWH-UEq=cHpKr%zw?k!2#Jms{=Q$tQNFZ}790UMR!X6FXi?j_`~UBje1nPQj&E zaLO|hZHVY}`0Jx5^-zBvj1bbDp4GpE9A0hs91hPWm{CfU1zT-sw+1{T68fZIU1$t0 z-m5QV({u!&1$-BHQg#Y8xbJCgyPGE_w+B3L0BX#i#qw-a;;59!yMmYeLPraZ1p+*y zNy|!kR4G(f{!X9eNj`~ek1uJ$3`Ppke}F!;jaW*>S;CE3>CR?8w|tXHYciB&`|47y ztrpfrdB#ccQ302kiZPoO6(_y(253f3SuX*?aoB$S^Y+U@jP*`y_Ar-TOg0$GxP#|G zkH6EB4^2yn>giIc(!5n*SQ;@#GJm}qbGqYNkx-EzsOrFbsMK2o1%U`60qzBn>(rd% zGI}_=NECi~poGTuLNFe;j!sQetz71fG}nGwAalDA_~%>Fdze9n(F6WJno_}l+raQ( za7a3~QM)bBJaC$^5&!UVmy_&2c{`cya@Q3b|JH@%W-N<&y5MB=rPnm}O~E-)v1eQE zXMtyWGLuK#O%96C=uG_JB@EER1xHU0q=h4@u#xQfZ55eu>|G7*fcy_hpzyXQ%he-ANX1#UBId=$gVzn`Y$qD zRv_k{RbcE-p5nN4^`-@P`i<#A5n;c_=%EA!LBAZT7IRA^UsWdpwF}2JRIwGG14>F> zd*0*rc8IGLeIG3&pG=2t@mDH>;}ZWXHcRFR%dPcrey8@>bI34GhmEL4FFO?nk2Lgi zJS&B_{~6X_de0x58qH#homZ%12Z#Yr-c^a%W2KV7$)w1cJ3E-Mz_(iSxPEl zj`!EMJc)~4|Y5xSE>$E7!^^D%lIZSr?w0&BUmXx zQoeSEGp^?AmlKOQE$a{A z^{v{X_zK`mTKfD3fHk*8vBGQ5D@|fNt^?FExVs5t9U=V-3_vtH(2 zS*zP&pZz!UA1b?S%B>D58T||lk~B4Lo5?G07za1w za->CXUwyD&R7LtWVuR;YRaz;RBQ5dzS)@%l$qwk8pcsnqePw;fM7#vgfdhC>a53A; zrSuZK=_JMPU+RntwID0QYtxV7+!9ZIb0S(_HIU18I<)ETGyKG_g&L#q1b;@645B6E zMEE@mBk^kM6G@3pXB%T;3|Kz^OpyZ~%>s+Xi+Q!AP-=hGXQ4)l#9vryw+ibLXkQgP z)irbsTA{bCLInc5nTsW2ZI>BcWcoqPJ}c#2rok*7cFjOjbg4%CvSAUqR4C2%C0R@i za~WasZxM^?PW(PQuz|52K=a`at3_xHj|-L1TGjdASendr*Tm}T09CpBhnH;0 z(WsnQNKA8}S#1(My@#hVSyh!%X(2+BVB2<|YpA9K(OQJ8MjWMtGe=#Y z#EY?a1RHL3^5?e{MT9fM0nViKymzhMM%Dmb5CkfapV*Fw!5^}8Xn;D6bTWf1nk0yv zD0l#xT;HMw$3Ioae}>iy=l`G%TQK||t=_n%ug)IJ*#Gkhz+d;Ry2fjGEh45;;$#y< zfL;BcQOEiJO0Dsq$%iBztr!wiGSyxHLFd1rKKf@Dc+dc*XzP#F;xvBufi)g3p{Ci- zugN&y0O?MPBS4THddDG-4XpUwAUU@ACFi&QOpI7#fs?yr!qG*)@lk&G#~3vNSS;?w z>`;ogNuk%7-rq-GHyb+S*7mYWOsQGGMMCk#k; z^O$pGm7z6tP3kYZdw>8zz2w*M;D_E_CrXgwHIg9sAO!5*VMtxQ{)-YMj z@yFw`Q6xLMx(5-j1!DW6m((^)JKU%ZEp0MhUNn%$wx-b~do5!^-mY9FMs< zE0`6;7nGkZey9va@L*hy`PPeq)9Ok8$_~uz)6h=<>eJ3#@pa-IO+BEBc}ry zhBEilCKcEb*FnTRS>Dj4gf$vK9C4r^_%ZKx0#43j~{~k@gIiHb&$H( z>@PODxP)q+faSa1gcWSb#bst7iU@c`vg4~OQxP+nIEa))`c>r#RLk`(CNYQ5^DyH9 zd>qMn)2`A71Z2z*)jh|Wrut^U^HBST4u!|{T(hazkEVd=*4>B!c|Te1thHdEI24qPB>u+K1_@lt*a>JYrx5SjO0v&hJVvS~=8TkYUM zEJ6?rdZ@eBtp^S#L|anHEDvOW|I_Oxn43|8yBcdZ@Odh*(u(10Nz}wg(;b9yaKB$prxk4sy@ffk7*2ULN4`4hN7p zO7YBA&h8QUAL|NT6W+KGetbyYn7`zRPfyBqET20ejJyS?ULkT+$0=tJs%qYau^+M0 z-QBrB^^Y~{>6vWuK9A%Nz$YdVK$8qN9N0IZao$U|}T0jiA`m=@G?|>rK z5Fjvi{~aO$0(ew_$D&(3j(Wt-&fbQe{X2jh)Vo=42yKpan2)qe3?B;B4!}(RMds#7 zG&}nCM@0i-{?bXt@<($+7#=ChrK9c(R{eAS$gsS2bM6-%1IbZkQW3^^Ay>}GA$H39 zfkAm0M^8!4Kb$zrUNHE1VL{yp2wANku1e<>T3m|PiL9L+Ux}Ti`TaV!x^i-MN@RNl zt4I8+Vrmu<5xpgmlJQ)NR9tOcKzs<)S=v1W@wQIU*xw<&LN9htKqFCzY}k2B1q9J` zG-21M?ZKFPk3X%%I}T}eIk%nZ-MenumGC`$?;YxG1?>A3wxat8$CGWl7o znAczS)!TPmh|@VJw}%*jaE4~?Wd8l&gmE*MU%-V8n4vTtV5?UM4w|&K_=5}jWp9nYd;MmIzu67)vQ(^=XmnLc0; z^hMEKAYkU%-MT%N82QU5-{y=Z#5DL3J zS@!SPvw?+_G&_(ML&E-v)n1gas4WZsEjfY_+3&x$)tL@mNjsPO%!d^k;YEo80x<7+ZLtkcTHIxRqfudUz~ zQ~kSqDNtjli^Last2wutYU0n*|2+r4RYht9F$e8oZy8S9`X~M@0ln4Z!bf1?Q*!iVNbXq1jYx_4&6k5K+u@7T6vLiu!U{~HF&q^k zyM6hBQ|k^l)yux`)Ld5^s#@L2Jg~Xa$XH>YRs-ZQ$p@tTZf8b*Zl7~uZEg}gkGyx@ zElc&^=z*j`Tl~>dS)ia7eN{t}VA6k)^`Ee;WYO&$D!syVn>R+T8UMvOo0)*H!;$`y zdkVMSr4l^<0Hby8(?g5_6RR{Xkfj3PuN>e|WwIoO?xs?q5qOL07Zq)~ZEaAx zyF)-gT2M;56_oC7>F$(n5G4fZkZ$Sjl9cY0?(T2B_&evGJHB)M%Q0SEd+)i{n)8{@ ztaPFUT5>)^hg6B6!TjY$>t>-+TZa|AXOtPCSIm9=ofY4kyL>CYk1w|GICtiFk_Y)k zkWO+z7SKQeyWta?NCCUaEmo@0PEzcS5%!o z!BF}^g}f*SBxN}xgOZN{nl!X$12ryiL{i739)xG@jZ$LO2*tp#_TxE~N9*F0^Fh&+ z`=pEJ^$n*XEsd(1ZAfr#qSU}(OJl*}B)rnT6)VXrcfOu92o@ek_ysonm2!S_4KjS` z?f78N(16faA@t0CJ{@2*AwZ3uij5??ABkw;qh@VZ^L*bRT9YSSZs3J>a(#PWqP=Z! zaE}MboUi$KhO!&>Ci~v2VczAvwLpkkG`JOt1}{tX0dmc+Zb-6V^v-^@(vH^FSxqM1 z=ndl(S^W1v(NhSppd;QmQR(-3h+3;g+!iw4d7?oJA&|IYKap5K=}uF}(~<^zdY$nb z+h(KB*@l-{@$OE3gYMge+s}VauI6;y!Ea2Z4-)t8GO$Vx)Gd$#M#?&IHu;7(j!N-e z?^r0!&g^gv-*LO5Bt$PGB%h%Qd*9<}C)ZKfoN`^BlR=ro!xsyKHZXSF)Nl&Q4FUG= zmP>tc7xuVOtJz6A0R8}@2GBsjVYM@etYbOAI&X*KDVd;bfzRK&N8dj<|Fm`0S}8t8 zffl35kUvA2SxDLrYsJ}G1z*D%9R`Ik&zG^7Vt}!+2M7i>Nvgq@2Rw!$udKAPytUht zyz^TiA5)_$-$V;R`dZ6>F4wsi5zmzpzcd=(<=5X5HWU|sw%);-#BYo8QQ!fp z=?=ai@FHc8r)(LF-$fNB8e44K=6i0G-PSpQDS&oQUI$;6f7CZItImdkXwHAS6_`wX$BvQW41 zGCsE`6qC>7BrqVMW8J4joBP3tid7rga2}L}qvF-Jq z4Nrcx*Vo3Es3d3_ z`1oN=RG>}yT+(X6;r4mz=O~ZY#|X*^^g_)1nz7(SIf&@#cD_d`R7?d4$BUaGQx)|~ zYf8wOivmdQ_%c!~c#!TdOndsdeflAq_vGdJ8E4fR00wxs$i{ZAEY$GaPe18(1VWK>B}O&M|5Wl zf@f=Cm%}!wtafPDvU8}w33If~pG`|!zB^G(_i3*nDKSougrp+auN!8YV}` zxEzN6jBoe0lE=bg>362JQ2UKlqpnfED`;mB7ZaZvG+8y&mV{j}w&>|QyHf8n)Y3cQ zLmUYC4%ORiNp@jvZRRR(=P0CnE;qQ0Rnk<|M}?S6aK6x#`^uHxY|#t-3)+E12Smfy z3mcVnSZU`lpEr3S5b(qKWOn5h;)4^a$?aO};&d{pYU5OK?e20{eEIWW)uyy;^#>>$ z&mblO3WX|3^`1_Da94J+UiuCVq%b~iI3=6ksnU_jZy_xrz9Zg@$s$3>0e)jAduC9} zwL$B6WHKvfRCakrjzUZumqJ0AZvv{DTrApiR7tBO?)WIO$c;}upg_Hm<`qP0?O@K- zt1=wb@mL%$Bq<$}u(@57u>)?xMzZ^Xzfv=bal79g54;GAPR7V-p6{B51>QvNvoMVl zWeXQDcLQ3!;+4%qB6=zNZRz#RK3@Bg*<`)0rP09I2k?LnGKN0}y4l-tP#Sm2I-;pF zND@&{;a(3fNaj5LUPMLdwR0`S{?zVl9>L&9D+RADgb8+ZY*_e`tLY+!IM z!Uk5!QY5bRGROF&r(JFnSwp+(qdrnQMcOdP^z4{03fr1K?%Zy|$kpqAuFxi?;{@lDTv>Nkk zGy*&^kH@PeQ{l;K<^7&8^s1S1VR*uUI+EPHa%U#N^HG^`$D5Fn)~fMO zlCD}j<{GbU&_zL^Z0xZc@Orn-oLY_br zwY4K4;iSzBQ~}7S0B9KQGm2uhG1GYVvcb?Z<8~q?dPcoP=C$WEOUF9)W1U4}<}i_8 z0x#P2c2>-`I%z2BWB;3>0t5tD3x_~851P%6Z9JT6grNqtfz*7W*VcHKI!XJ~r*41T z>BY7~s^V65O;&=z(vkEx)S&vtifnv{!OWcj z&3f}+Ut!wpS8sfdPe3C6h(6YQrxk{(Us?e0`A9@-o|D#VmnGY=<^#-*y_p~7s`}N1 z657Ual<^Na%+ikA6gF!Ez-{p>NzKMj2!5;Ze>g?OtYG^y*uaF7{GXde-jrLH#*U5m zOxA4+?TdfaKPLhMG4Z9tK@qdsk!`SM8386ZXM4A5Svn}4SJncZSL98foU66-@xz>l z_)DuQDBcps+KOs4zIP2Oc%SCb=y~Qz?RFYfvy2c%Eog>{`WUO>h`CNF+A$# zEC53Wv3xO&@toUpPWWbvZnR%OI|tN*%n3%2*-o@lWu=JEV@(c&LhhFq&Dmb-B_hSb zhB@EzfA~s_jV54QMA@GJQ)(pjDfwZ~yQlxH9CZuP+&$UOH_-kgy7S#T`3q&s@$3=o zq5p95Ka=8zNi{zdGVfc?6foj}ozq+W#SbT{==y(|x`D@5NYWr#fu4ev2{Zkn0lI|4 zZ+YH}OTX$NqQiiA-1Cg43C?{;P>KcOWJY5W(|&}BY@rlM89vv1B z@TT}tZP{Kt{`dBkFscR6hkG1AGec~PBIAY|>hNK7j_iX^H%7Im6tJ{=-xc#-)-vPM zq0>OeebUR+JJ@SymlR#6f5QjuT&jjiBs|5Aui9+mWLM@wP z>(#YLx9V?6M6$;IA0d6BV~j}`JnTC2$KWyR{II+ndQ?xdSz zkzE2F3<({VCuJI(0MzFU+b3P^dhU8}N@wZR8u~a3ijI%0#}LewpR(gBmH`iI$5r6b zn2X|qUIF=7Yz8d(-X|w^pKT12>$E@KO7(;{`v1DLL1rO^9I9UK%j@+0821s^ef^(z z*Z45uHHZ_D(h$e>S63z1@h;UAs};ha_YL7FOTgC6uU^m5iuJ><7gP+)aX>+ZI)cJO z8fH(}jW2C_=0<))*L;z)iD)b8R1p0r2ny-Ir#q|NeJ4^M)*Z?Aau>C}!tUlL3Hqut zr?;F9`B(IOTLmlA#Z-xnw;XjW+EFwQ?xa>sv$;0_G-I6apii-z!l3cGp+g+N)h(8m zzAj~04K#rh3_E#++Ut$>$9ciEO-QN5DEO$`G!|taYLjSIB@iS8BWV z6@m^gxf}yN6%Pej$c|Cka$of*4k_Q|P0h;1atRv*8Hp-}fWV^Bxp9g6$kZ!> zupz6?jhjDupn9SQWW7(n_>x^Nu>E?s(DF$7z|`b`+_!L!$?Y39b) zA7`zZKd90cwLngVLNzE$MOAa<-hODFyz#=#N~k)1x*N(Bc@na0vV_^e1R*2GzW~&F zdyO6_Q6Cw+ScyAAJV9v-F=ez{;ui3C_|BWWftDb2(hg-4V&V*|n=l%-6=k2`M|HI`%f_6&Dd!4812Q z5Bv81cgK7rPt4P2Zl1eJWktFSw-RldzD``D@lb04;T3yz; zH&DW^@M~!3x6Z{D8`>F7BOH&4b>>FXH z!TIcn8M}#GD7B`rgpKMzz2}b^fw5U1|8ar0IaNvv$i2wVk+$pM|Kg%ttN_5g{tC9K z34HBmz38KPfd|@9$A0%4`8d`rU4?e&;Gi@))Pa90ZMr&{+w-uokc%x$b_-o))wErQ zceR{$KTxmyglfaA_hqj(q#0KJV3t~Aa!xf;;Z$91`$9MVIltGo&Q|T0_>{o3vagJd z-$V_Cnv+!nRI2X$J=QX#B})4g5$%qaIUu}ID}-&%61l;AslSU#uA1lg`#B5>Y4${a z6=oxYBM*qp8l7*)r7A8_F=wV}c4{#NwRYvFc}9)h;%Y})Z7*)^Gz)6FwXRwrZAE}o zp4^>A~s?v&{N0{l2&}Ivw=-DX1O(;Fc%6rhDFm{JemEA{hw2lQ2`YNX>p~* z3OwN8i;LUz;_6e=PdY&jFyyq(kG?u)v{ z5;lAW@Cx~Ea##sElcKltv2|!FoB%pHJbp1P#Ad$*ywEO*z}RM0k5Sl|n9I)tel$ffN12j=L)>WM29+rA`hp*YSc3NM#E6z=sZB-)5C!6fUE=M71EkCm ziD?u5v&*vuI_VcN-=lpDN_hRIEQyyl$%DIOnqf+$=ff9Q`>1P9yDhQ;Q~Zi5kQ>}j z#oB{X6cg^KV^iaUkQcpu4j=wdu+S2>V$=5b;z>dhq$;f81S0xDHwpLdl5h47)PZ9= zC>I5^*Zb$p!2@rFJ;Xz=-S=}ROOM-_J!)=-uo?pm3q8gjFn{qi;bG>Lnf%eh2MwN7 zy}W4WcCRvhfjonQ&Eh~ixQ3?HkGF0f+1K^XHX0tBOQu}2-0FY31!s8^~u(B7{QT7X58a8`XiZ8SFCRw8s(k-w`)!TTKJ$Ji&0ta@TV6>;(@E92Le>< zYqmeHPTkps-jldrnLgj0&+|@#(NlcZH7WC|)XsF@!cZJf@wp^2U({*|e^@cHa(h?$ zlIF(fV)OED&a2a?p}{`kweo$j6P!KGydN%$$UQg_%la}UF>S>c)7Zq?~2tve>{I;yTJhOH*Mx2rnbqy;~+WZm+hV_FkQ$cItw?UIi?RH7f8A3@)e zF5UGv2iI`H$Wx0F@S!0Nw3He>z$W& zH(rgeu6w#VZDy2P03?#&mZTC-W^%g*N*NqAji!L((B8={klyMi6Y~Q3@>rlbZ)fm~ zDD6svJpaPwxKTw;9i=daYWi~e$hH&)eLgl^5$C6C2@0%FY{Q!28nvPRa4QK3sXV?p z5trWOpp;F|fJ8O6E0=5m$N89Dhiwq!>xlOvPHDF+ENdSPpRp{f6PB&4sXmqP)fze1 zN6I>$jO!xf+CPB0N#gzahA^a|Fw}c;@>t(4Iyq5pxdZ|wLFdI33v&h!zGnnC#c)b) z$&xK&11g5%q~%PFHsDu7%rCf<(8OSFocNu&rFBVj(eUcto}6=^CkX5N0Xtkn;smY6 zIwHpJ-BVH027-o;^Q{6HfH^MM0c3B!_d53)Wka2VN_O}2QmksvFr-3AaCS+`%L=U= z8%r_dWzc6RUh9Za17Bbn|jgz<2fY1`1ig(lE;?{j2+{s4y=j5V+;`>zO7uTpLTQ4)mf zV_QV;n>P|Z{%N`}-v93Wq<8MsMp7OB3#a}PZ_#$nvRR{U)Y{7RR>^A1j!4@|pV;g0 zfUCi0GP{NDHuqmIJ~tjJ7=x$FH`$WFcS7 zimxQ`Th4I}qtD4wWOSBX$2iht^jq2JC!#v1g##ti(exda%CjRfsU~Ox^@}F@4K0<6 zrI|1TXRR8y>F-xMv)))3p<%LL9rw!2S^dqLDcK66Tx~;UUE{sk>|O=A~q{HJ%SLor35(IYM(WABOYB-Dide z7nwt4&R_ncL+IR#9?WdYINItkXXN1%7yM7MtB0t&yXRTqox%vIzfZI(s@nA4ZxUAM z6%~u$A9sFg_X##H#-45)y*U5aLxL8xD&uK{{Ay!lhRE)q`HYc>*!fJ=)O7!26bSM` z&MwqVnDla0B}-;sVUY5ckBoeZ;6pI8rUv*egT@zR=KcMn(i_=8RYP^AG^YCDP{I7@ zYBOhqDT`?`6=HZ1AIAbgEc7P5YJ6-UH}PWNw6RcdjsRYyE8N~w{hD*gDjxvv_pjxq zK!N+=X559Y{S@Xpsc%UaZy492O)(GT&S3w$BlHOF&%+LN-uhJqt|dX@<`>a0Gd#<0oUyqB|sqO1NvHC%o@+q=tM<;J-iS`s=@RllH%K6See; z+v9Qu|FayTYaP}v)w?Hb`NtG~C@g2q*qn|8y_FF4Yxd`V7V{fa`V*EWS=~a%IXZK!y zA6Q8tij&Xtm(12bkpqvR#6sP+*0^EI|K(;9OLqBu9q}}3vn>{4V9kWU8<@d4ydh;{ zV`C;(wB;f}LAaG3Rexv5Hcfrg(9nQEPR`=X2odHO+g=ZkFOR&ASj0GtKqX#klo!#w z@JyY%I^XTe2Fu?*4)Z_jn*R;?21?E) zCFP98tL%;%igJp=x10`SlVw5?Rd5gHq_Q(P7t ziU-q?`Ao#ms=rZ8s!(Mt3ij~vCU?ig#f3t}wd#KA)b~*@a@t9P$axdQ4xEU|=8wrN z(0DQ$L=MNleZ<@#9*p;SlrKnYB0Q8ed*+9N##Kta@ysp2`O__1cKGHHLm^#zZ6EK^ zl!ha#%?N>Nk+LmId_N`*&RTg1P@ONBV~Xt*<1%+=hn9ac5w;r82cQh{1{=h~SQ zayKg(0d9Co6oB-u^@vN+4$mD~dMOZhsMcL_Ks{>s+$5ZN692h=mxZFmY;gI9Jew)A zr!U9hf6Lk*6ZneDe6o&OU@9++9gy`KtrW;)v#ge4{zCr@fdaeOr%FpAepO?I2=Wxn zL%nMm7xq2#GMr>T_0=#r8LFP&@lp`JbgYfFbo9MP;_-9iLN83(zE|^nvBrC4WRt6P zPVK{rJ+YE7Xdir>^__88bo>)5a*}-lGE$o)&h8r#5_m}yhvVeB1nJ{{NC|veQIgX8 zy_2-c7VreLL7~(&L0Y4a)!2Z<0!1TM54t8VJpIr|y|HF{)Au^vnFS&y<`p0uVTSl8 zpIBqcso&@V;SczuQiB<}Kj!9tn>s1lQLo%mf(EPXiIk4AFDb1XiR;?oFIUkG;(`X&`B*Pvhasz$N<6$e@R*B>IJM1QJkAzv@Is^>g)1R9*I zgsqx)oTud$U%Ffx9GV$Y`#{c2k0*huskq0OHUUP$=Dw*c6?JUI@w;ub5`VN8S{JYA zFZQvFN=ck}`l_ukgyKJkD6r7^jgL(iDJxpce<~l?NnRg*jwDlpr-cRyR0J~{Rn8uE zOrV#o?c$a3(NuB%LGyeYqXW^Rl=)ydl^k;B;VBLwQPaG8y2%!LhHZU^yj)-d%SL;> zy^4SMca-cB^2EBt@ZT@As|fy#>c`tI?)M@P@nK39RnPtre-vj}uW{>B;>FgP!bW{} z^;rrR$0a`5KHUA3$L(fk1DdN+mTaUfxamSqad$4T9JN5NTD7BQf0JS?iQgwJ#`bV$ zo}8_gIp05};~;4vFziTAwr9)N z-w9E}BPA=i;*`F90#MPML%#b{dYH0h%1WV1tbdHDZrYuf7OkK8iii7X{&pdDN(@Dk zZE(N@P*St2apw6m!xe{IKi_!{PKfNylKzXT2hDmRdzKpwv4cqsJk+6rqFdMOxl^@D zudCy&Mh)hp9sI*npIGK}h@Wlo)lY|)f7p>N^TZ}`s<+onKNIh%p*xh`oyh$o^|&!2 zDaA0al$$?==X>-#YnQq^==eY?{*QJYgMnZr=Bz@TJlDptB`q^67ElRSI3C;caBgoh z>)3&OV@|vvg@eR>>)|vR zO3m);VWCoGE^73HDgAiXZnIqy1~Y3oE^&BiE>~Ep^nKf;Ony2CUI;|oXhWhafGNr79~Bi%AJ;<9use{BDb_%&?|spA zmJ|8(5I^eat*4$dm#ngONQA~kT0=RK^P*SL)W>R`!`9man_~w{Q^=g-O$RrNxpH{A z_UpU-me5|qu7;>4aZ@$e*F@}Db6@>}WGHV=)#eI6FCa{Qw^xM`rqw}?+Ei`Ie|$SN z`DvEC+jvE|_eHYHetJ>5hVR)_9_MX%al$F9mnJy#Ay!I);WVp<9aI$~@*dTOxHw3# zKV-<(_w!!6fkS=o3D;6@fR9t64mTg|$9z+A#F5@#IjJY(gxI9@6KP9AI)o9I&g6^J zQZPdPi&&&zwL9VtZ%t6c#zV&<>P2nVF8a7qseI`vTA?qysVd|utvMI2OkYVxD6hHG zV-%GN70XlDToPPf5W^%0k1Xv#B3+^beq(9({~u7?PXXCN0GhC(6#lgFc6Z^Jq3x&* zC*|{kTVz%bY0JR6ymVPj454~isw1;;zw(9c*MkSX2DSSf#20pfk?wlc zvz-mb3tWhj>z(9hh?zl4M>#s(hpnC%1WS|8POSE0n!JK*?(sJ3X)|3qqdpDNbPZ%v z_gt-M!8q?SS7ozv5`AtP`Bv?_iXk(`REDDBP=tz-~Fl{X{yK=*1@w8#PR~ zV^N$Mf628r?6mpm^UI{9$RBKzZK)AAfgE=7*1$QiJ=$`p0_%E_d=oA}n}Kw@K} zA3o2`W2bdx=c@ot;%yBtF8WYHNNou}tY-u!a10?;TUdY%rQ$uen5mJ*>oFF6kXsAgQNq3oAY6( zeAH&PE?!KQ8kn-hh#UOBk-F0y5ZYx1TN+aMgib_^IX=@|AHJizvJDIZ>$t!5)sOzb z<|rS!={%CDLHjc#s%vn*m^$O0F;8^zTlCZDVH#!7u@Eu_p1=29a8y`ed^|i&6nP+@ zX^_}eUfrEMjijmx#_gTQOQ*4C7PGYvUpBTzS)p&x$yN&$nOnf)< zqq|#sgX3|9_=~!8c*m^cTU533Tr;aR^!?SS`%0Bwf69X^8QslW=hvj!CySlz`I4%n zY#z$1VGk3RZN;*B=S-7nN(T!bsEqR3uV&F<;Q(_1q8!CLZOr z6Ao^C=$)%;fIh!`Z7KSOHv^f}9d|f>-@EbXF8gC7y-M|xzJ~7w^kJlK5_{fMB4co; zir;1J&tI1>xIaY;npa!+K-q}aNxii0N@Y*(Ms4t*b@jIqITjKIop3k@$wov5pv80QeON$AcPHb!;kGGmwHo~9W zvC3&|$Bp>?>^pgHJX5dHx$T3J)%7h3HcB(I@LR-7ONAzn|A!~9}tIjzoEmEY~m0E9dzFzM=!K$f~<6KR{N(KQZz5GT~@&W zTTIlY=KJN3KTSy^wE3{~%EsW7Uz3>;pwPIun7q8G%;}iIUt|mj68BV6F5kah6-ULZ zHcQqHpG?-Ni$5P~uq~hBk55=FZ}FO7SL6>jK$R#8dQJT`g911&^2MX>J=2sYn<9aQTfXc? zF*M%D^iH+%KzxL0@2;W7cW#FkP* z%wiP!;yo>y_n{LGUTm79CPNtuJtfLD(bK*@hUD&zKX{b%Y`gh|Sq}GgKQD;aT~DEA0438J*)w4iVJQxcg5@R|mB)N{Y}z!AY*P8Sdl!&etOfl;0)m zvdQ_WyR!J-Kop>;<1QM{z4heB!L+`#p64Fi*QSqyV}f&qfX;~T8KeWgO#m>T$4bO< zvWmV!cV9c3f)6o9e%*Jk?})a$?N|>a8Myf3EaIo-xsi(#*ORBz8ke| zex5wbXw<_+QaZD{QZ}zWD`gay(=7CT7`oBT$wxf1s|@?& zQAdS!$n22<;c%|f+x>-*5(nF@4Ag?ZkOt0bcF1%nd)r~ zzm|S?%G0SDqw3Af(Kl7N_xC-d%n8u;`*nyX0y_RTWUgdQO$#;V6ONQi@~Jo|(Z0mu ztLyIH-mZ>%VG3RaG(Vi6#>6NGcR$?Oh1ATu&N^VuZ6!`YE6_xCXdHNfSH&4{jsH6_5hl`gwcObi{pEcJTo$=0< zN}hACZ3((}7$#^b{UcfDXbGO);>fGvX`{n0+{4PI;yaDzwttr3xOSa-*6>&BQ_7AI zl3$Z<4~G%T%D4PkzOiZ@P2~(uOI4(*_Y@|fi69RAyd>BZ2stS*|G|)$y|?5cC_!z& zm#pI?={&ReMP+Obu$SWEO3h0RF0bN1UZAr!b1vGn8R>th?Pwi+4lBkZVT(2qgfad|- z#OD@vkXe?OmnWpG9Cul3I$2B#XoWdG2%AD#m-e4d!bGIOp|_{CpJvw+RLHwI7`-&e zhP^rU!ym!Y5^yZ6&lz5M!OOQi&y6@9bl$G4#pFwm71W8M;fVWs-aVvTC*rXd2>6UD z+3%ueCmX}>#47nN_YdCSMxE89c&j`*1-PA{Kv_#pxe<-JATIrSn7?cf6Cd5&m99`p zDPt|ZO)4z$H?3$%Y+AIz^5n-)Qm!u{Z<^6h$Evsz$Ib%i-yc)=5+#H+JV*Kox{tpx z1o+@m)=`SuUwhWe)fvNDi2K=V7AsQR&JYeeZ3T|9_ooZkDu&Mv(BPEZzJt*fruh&g zVaU+L_V|@*|C=E?Z+^<@{C3&w(HJVVf|q6IQqbcMjbrj<-D&8rQTYzz|2_%LQMPm{ zvcVP4p&Kppa)Vs2C?Ch5YtF*Z`x5Q;232%8m=&eIA&Ky?_g*__|uu zdSL)T?T-PLIx`4rhcn;={T)n6>8q@L+qGvU#4?86s0`eIvMcV<>j=k72%o}?l4~4C7I|xm}eEne760%Jj+KYCWYVn?K^c>(Z9VK(H{Ri zSy-6kamYeu=~-}R)kU6!O2&LYCDA>;9K&2oIN1Kujo*rJ!YwCMfP5b1sr0xZYA z?EWu~3t5~mU_Tx4A1Gca+wkU{sCTI1c7ff6Q_PQItcZ=B9wmAhH1ekpUVhIMUfds^ z^sU)lUJybZL~6-4m=QWipoQAjclv$-9Lx2v7uYzsp{WUvb%^Jv{%Nf6^<4EM-v#4- zt+%}SafIUKKYUjPUN|^Y*X>zwC-U}g3fhtVHB}-X{llB#=pQ~c-=}^pA*U>EhP@_h zlx^@pWL(eIpHuu61#CwvOD&79e3#I2_BsQEKpA@v0b5a4uIL;=qyTJPn*FK>K0$T< zM{ofU@70U*`$%y4S%GYs`Aq=L3I09R(HS;0ZXTwm$Zr~lPa99YMXr80zF2HRMEm|B zT;<1}@BSqwOjH6wYBAsRTnfYsPPp3cc*9#^z)xcHY=H#}Swg_??SZbd%%k@OGR`Qk z7fI0IPycmTi|r!&4cRWwh{Mw`GbvQei>Ks)uaUKjL-&c&sE>f{RY%Q-5|L%lAl~yC zDg}0qFeyo2{9{rn;pGcYI_-BilDzu>oUn)sF!g@fQ2Dq9=)>Mn zcA(LadY?J9Pxuc`K<#gaXb!p6)`BQe2Q{?sxa+f=nHH<+T!qRTHJYmwrGEkcBcX780x{o}=Ft2CP3nLM zf8W+kMHUp_=LZ>y2lN+cxhCp>2tbaUUB9N{65IZKHnDJ*G!~!I+y}rMOpOsQ&o(;m zX-b85)YSeYsC~G58-t1*_b30%=|b@lVtbd)Si0!X2C3Q^hfR@@&Jv#l^20<3cUJ!8 z&4R#=*p-iO%GEhh(_ie_so^RKe%{ohWdCAq0VebbohEh5mRVBuab$_*vYl5(V0&@RS<23$WwAJ8i*jFbVEMVf*sE9V@kun;s?p4wl6=^~J$zYM z>SFzP?Kb=2{WTvg8W61AezH$GwE+>W6Y-g^awj3$?>v3pq^}V6$90+j&vI;{ip1{X=NBDYHHYvfpF+ zu>|z2_5)H}%1+uA51ErFbIDx2|M1>sb3U=2@R2K-GR=O%%o5Vt6j(DIb>{S#^4KjNSM#gr?e~;7GAkKJ-le4dob1)u;8H zj9rc(NNj)o+*dpjG_8RC+)MnC)H+Wy!yz+}+B&NQklAwf&c$rx5b{gY6A_1vdx6M9 zfTo%dFshJCiFrq%!ly1LuO4~9e~rZPUCUzV#%B3|ey?IF(_1HC8k1dSG~g=#=llz; zdg0d&B~%J;KP*bLc`v;jfoiJ#0y%bEI15^J8Nf{b%MOo(WpC>yA~3p&ie;9)BtYTv zzUO^U^R+%_l#vbx2?h?1l8vqWU0egWEoPz8F-CeoPNM&5-TpBNBjirwC0UZtxZfK& za*y4Qe$R+{rzk!tFuBqnX=&sy0j-MIY!gi`7vytqpJKS4Fm6VY3jy_13V29c1#Pr) zfkfnorl%NO`iwYaWLD_;N!<40hR4$^ClA?18+bjL2I(f9SfS0GdTgzA&hR*-^@3zL zE9ElklPfFww&bMqE>FzB2^tvp$@pDkxz{XbIw4YU+Cobwljbdo|Bw33HHA@b6ZW&Y z2{%8Sj+aVPd|@+LxHJ5Noy81O3o&~~Ws)PO#MxGRJC*Vb?+8$m`T}_e^JT~lGtbi; z?uZok=jA)6*vj#eVt(m8(d6S9@Y_h??-?xdD36{H@nWja6Ocr!|>Kw-wwNNK@A%!n7( zFXl3}cjikEY|4I6TJ)-@!9|>O@x(L3-RGB1J0Tg_VY9DmekHjb-pu-#YgmD|$9CDda8Q2+6FTem;z-_dqc&Tz-t3kL8 zHi*uY`}(Kq2U2^`DJH(}q~#p6fDXCy2fy6jlfy$BZCL^L^THZk&F+zWb`&IBLwejX z5%CN*MyyzFZmT5A)inYRxCw);(%l&(qi*J&3F1$`bIdQeNhs|_)eW|s*jZX0*kma! zB?iAmWZ+84+F$z^N z{iMUBeEwfzr9g}wYqe|ly`lFZ-t7&#(9)qCB~?!L%OoC#YlMU_WUVgGx^vOPsduvF ziXc!iqI5AH;^<=B?E#|K4LZ;9BE8_E7npLY$sziJ-P#JZ@GU4!zBbR2SpZRjmi~UJ zn8LcOY1c-1`O{`iuc8=9Y7Y;OrRlelx$jD9W#X+4&3=;^?Wm;dU!aXpi6bGzS}#8L zWd>?mc(w^U@zr;r>DU=WtE4^i({%l%lm1NbbA!!hnwHp-I+C1GS+UJ&;qqX;HkE?| zJq&=ksI_qi_K)a~aD8*LKzw;XwA=byXq;55-WTfEPv673>d(o`MK%Paw$&R@`gY6s z^p&{YS-geL+J0*KLah;nLnOjp^M~v+-9rQz6e2X&J8g)!<}mIh(ft3xlZdzysK?J{ zfJB|yZOMxCF+7LbbLSdKv-1jctG{*D>|g4Qbnw}%0pgkP#S`=o$+fu{V*U87HvH{I za}|yn{?dtXjyAcEF`}_A)1*$f=95o6ygVwW$Z!(;qa=9ISYm_fa~>l|V@m+hQ<}kL zrGLCis*#O9j07{(8}at+28i%Fr!AbYfQI%yTDh|{5^b#Yrp$7){)_P zbv25vY&N}V@*zKONb@6BWG>3Ud1c|FBQsmisTI_JVm@UP_<>3fR+>rOX37wx6 z2QjP*ia|E~p!@&M6(*6my^W4S#zp zl-9?`Bb!)<<&-(X&8$F=$z_4_1P;aLeXEWR*!z7&(@}$oI+fCr&8(@W<{d@eiPdZI zyL8k?3>4VLpa9H35)Cg_(Y^mXizuy9X(%jzrd!wT&H5J|A4IhWqv|o(gotLw2=cGi~=Ow84vXw7(wk5MQMB>?< z+{LFyVm+7UX?rm}GA&?_*`GXm)+dx~^d}&0&+^x^{>NnuR=3j4&Hyd^6Hox{v!8;5 zDOZtodMsL}bt}@?7XOK_6C!w=)jI@{wzlgW=!9wex--cMF3(`+5mXzmNfjB7OPS*LnZI6pZUWx)8+cU{xahJakeY(;&GzSR0O{k%d! z08pl!UW(AG269LukFg12PfNbexd;xm`g{OExh4w*Ld{hWPG`IxJ5%URbGDQB`_*m8w)$O6z+lnG z;AO(V=3F|eRkIPjhbOafWs!O{Zo!0=PpgTr{D#vvc6*|q+9`u~e(au09QBx!yC1O4yxr}czMt^x}(&^%4`MCB?Jd+%Yu;L?anKxa%2I>vNB( zHOI#Uxt)~Nwl}c_xCNZ`FiP9GijqIAiD{Vw_XS*jF@ae5QoBsEn5xOk1@{xR+mqg# zQiDloi|Ldw&CoPUQjmYp<_Nv+C}g_kWLP9h1mU=R?r@Cg1TaTUev6y6G*DYqDk9#X~-=BVzrtszq$#YOwI+_9XkF z!?Hb&ui4x)`^V`td86N#@qS=XqD>Xr5V(0`?ND4#yO$$lys-PyY9M$cw7xR?=!-v1@D6XCbYfP&buQ8`2+$=JNUdjm(;cAm}v-T zNP@!ORoB*VLp`rxJ1H-@9p#Zg;MdJz$DiY9WUBT?*DvX2v+NbYSaVK~?9u6I%aoj- z&F0}dxkSlw&q-+3>dP7v7gtx^<4e7%uTH9`FnJ~R-7q9?1(^HPN308~`qP}p?#&1? zIMRYfK~l`l=d*>K!DlrC#@H9~SK?b6B6Z_q1YReumT*r)!MNb_?h{@59{b4Dm~mtB zv+duciJt_Uc)@;0yfsrMvI03(W`#6>x>>HbeGtAFhWQ6?_w3D)spi!~&6GH+*e?HU zN`n%xWzqUcMS1b?)xa!&m~qfIW{nLeydik5w`a z*}+ejwxwK4DHitH3metW)zB3z+lOO&bb~(;U%gJQvUJ}&UPBuWxZ}pUJH4gS*Q7sN zAGbyrR9Dikca9QmdJXxo9*{j~1DtK$Dm4s{Jt(%SBN)^|@GnO~4xpOsVkd7gqciH8 zpEEP^ua(B@3iw$l^JAyDp*IFMmImSPL%LJkJ{Sf&>`y80z9JkrJRNH>s|W#BmSP{>8dU-w(;KU~iOPDsOV_^!s@5@6aF@MSBnX`;O9N#($X(Zo+ zepb24LsrSd>0ojKX-n_s;AcAXS=)eK^H)meCF)eZ&*K?ZRa0w!!nmeBz{3hK`YSmf zJ-9@D;}TuGL9i2E(XCR&z}aMBO9tvG*Y*;^Q#D*^O_4Zt+=#6Nft^cYao2u?1nh|| zlJ!-U5#=f+vou6XlPVWm$93heL>(O8sgad5@#&ntNO)L4{&sQwyN4?^0z}L4ZrJ}b z;`Nfo2m?i&iud(49QQ-a5!LV;W~2v?BQ4(lN7-9PRhfnV;))0e3LNQ1lrBkWqy?l? zq+3eq1_9}o2B`x`cXx*%4I(Ao-6e4M0cXB5_s;#r`DbP=*V1#|z2Ci`=Tpx?3y)1T z`oLZdI#o9Jb(NggUSIC@hv@V3rLzqQ-_iFbGL7b|O`7v=GIn@m+ph4M4~PZ?-dwmJ zQb!P8xSv1ZypBT@iZitfYtt!(npx*iktkaqM_Q}T&G`?Ak3mO?PJ{s9$$Js%x2MTF z{u>;{S;a7*Ea}(Y1Hum}3fhDXBqxl*PKdR)ay{W-iLK7CX@I~cL0x1G?TCL}oYJmT zDNY!z^%Jx$+_|3ktPOrP7A98UY`0(PrEn;gJ3qkp%=``s|%z4F>-2vOY@>rfGa=h@Tv4-lHzU0KWvpkwyl@i&)#;?M94!|4kr~TR( z$=Ts|_-pbtwkXX>Udoc^htb@#){E#N4C+3wOCQb~iwUf*9mIv$gQmpQS9@h?d5$QBbJig)8RtB9q)(UTAy!7v!k^`HmFv> zp(sCh<{ho;T^7-Y5uQBdOghvNhB9hgeFn>ZcLu;cG|0^fSw|snUMJ+VLzw=|CCFfZ z;qEBqQ>N^7eu5sV@It(>@m_=f^zOiLsJ5*7a~FNP5e|JA6C`CI_&c??>wK4J(dF1f zQdWcr(=%&wN8t1@;fny4_=JbvJZIWl@25OL$)12v6l9+ri`3&Kh z5I}5Q3a>EzU)Zt{F(KqI+~9KZYBzEGm}AM#(abS|-Hy8JfM4`#`IHF98~*Pi6uw;4 zQrI;``aj+KQJdUq%>1NS0nTu0cH*@L4SAL8m>ZA74*jDtn%-gG_x#S^egX|cdp@6x z7Rl7%Kz(d{gf|q(CA)h(%5xqsAHqeBo5`M@3KHR?dix>*5cg$M%3N5k`aO-$b6(DY z1hBmjGYX)(NxrtvEN|P6SAYJBeR2527&GST>PAopRb%eFUgvYc${^zK?42A6i;JS= z`$osc(r_HlWQ>Kkyq&Gnm&WLKaWYeLIR8}6`uRnJk#Ke4U#!?aE3QFBeFKBk^mKTd zDCE7pJ>xvk;dNd0^Q?w^y@zu?`6_)@;?$M}{R=ZOAT@*Kl$5ac_xDp|sRptYD6>W% z4dcM}CiTDj6+FkO#!rnX^cKs-W#EV1)e3q{^V>)7wM{i^ zekP4uvLc z;HdH^Q_Q9%fK-gpu*`)A&8`08sqvyJVCbeftU=Y2qwtT8B`Lz@5%G@WJ>Ukwf#Ip( z=Ysl^h=;<$_P0wtgn-EZ=T9oj87_9@W`VmFiBBPNl1BLjg5Pp7viMvE4Aj>%A9KCq z;?a8>XugA*C|6-gM3ZiYE%$E7qnmd!mER4wd4U3^g48SnZI@NrV=lP-F<;u zlo9Vcc*P^m;z67gXbLi#x*3&}*TUQmBdbOqARmfdH%v3J8=#kI{%&J|435qhP0Cf< zQ%WePv{fL1q*n&FBjJeLiLnD;K9hO^)DF#s%#w7<^QGR{R6;iLkr z01LMb2jsb}()9cbT1~w+`@Z@-pzt2-3k;Gh9>diDHH4_X@alVF1vO=lCE6GBYwq=4 zU+P+Nf#MJv{XH@{@XK{w;5?S3x+l$q9TDVWb_Vj?xJptsgHOugncDQ($1cNgX9tc> zQ|aWF%e956X4W)>>>EmFeBjw4aj3+Fnz~B1ZawYOPLf zmqgriLnKxcwi0WUBF9P15nKk%u82q##kqWYoY^RMUgUDMr3y|A2%C{zDF6w_Qmj^@ zQI_gVs9jwk%vbov+~ijUR+>XhZuRE^lf@_!%8X)wC(xbJDTlJ!V&$N171BS&#&H*E zBmr%3^tSLDY{NW9fylcGw2G(NKcC{_MQr}TciG-ppyjzV>a*o36Ij&Q@i-l=&J&XG zJ0WR0USRAww1qXOHolALQVuUsNl%gN-o3K;!UmB$NauDF*3VMSrP&DXhG{wBd_z5; zn#bREGGJ}oVZ!VrJ)Q`Rb5tYi=xz7zIy-bdJzk~n_NA^Xdvuxzc0>5$%fWY36~{AK ztQ&I~BidJ8jcM+S?I#+b5(2P1yrjpHCe_wa4;uf)sWFq|Z=}UVY^YjhCx3DsT0U88 zTf?O<1A8qc8MLtvhUOIV30;j{+djx~5EglQp5%+pY|)*JoHMdAT0x|{%o760M!*q% zSx~w-Aw5V`ku7&Gl=OKBw!|eH_kQT?@@RixN$rc{Ih`k{3HQK1?vrI@u@aA_5oa*O8kAunj5699CGj3ce9VUWBnIsKFCxkV= z6d&H)yrl6$)I|mUM8fY1t>dasCs_*he$Mh4V_~5Nj(cX%zVOqdp~-1;RW%N)D$Hi8 zvh4#9ga;G%4alJwwgPCYYFfb#DW9RSoq)u*M1%q0u7bF#q+ijp*GmTx^cj(ET)qJM zUtBn!AWRQjaAutAMJG-Bh*j1hCbWi7nLh_E7wr5?vZ|n)73n1}Vz!-swK?rB3@@3J zbEJB1ZT>u?VIb_K<@>6E@0zJ~s)8U|>MxB9atDktMa6e>8eMt#vpZRTy{1Yz)|y)oeug+k};oQDi3vp>n&IF-6K_ zh76z*9W1=Kt=;^Qa%_-;T2B^|jbv}EF)mTJ-O zAzFL-Uh8135m}xxZH1W(Mkmk&TAoDu`^95gzk3i6!zkK2uE4NB%w&1PuRTABLEH;6 z501Sc7C1ZZrJAh5M$J_UQX%0(x?ID6$$r6s9{3u>tC3k5kYPHm-)*1i_NC6_M>74rq6Og3KG1j<^0+n?C`t#CxfnXOM4twz&*XaUM);70X0WleR|n z<}9KVGnR=GWt^np{`Hj?gu{h((IohWs9R(Q8Y3CA3v|goGst9`p0nPs0pAq4tW#J} zA-Gvqz&KawyUVU+=pyYIy4+1OIQa`|skUacZSA7qKbS6caV^rqhtA`NT#spGb@ zydiiCxL~TD7rpKA-+6VNO%j?N%m?aayBV*a+_0}?CZZlujEx%W4|861)8@#!?cyGj z@GKLepdvRVT)VYMu{>EP&S_}y>TVm0R<;HO#tCI^21Q9Y5>c)NV}&Cak{s=7p;Jo`R@ zqTiU2UiLfZySHCfHZu+u)cA}Hx6i05NOGJSu=@f;gq~mf(v%)TcN}q}YAe&g1+r-v zfjgGWf!sPi43J)gD_2CpW7?%>;8=?Hl87KK{Za4fDni+Q{3YFV*P)*PU#XuJw*JuN zzAX=|D2e+KzNq;C%%W8c+L`XPDQ&p8|nRAdqkb0qDadVN#|+8D0k*5%CHCQDRKr z;yqC8&Ml9qkgbJc`)kNU;-4tyYGP>`lN=8>$A+sLQ;Oi@#vN};9KCdYSGe|`m?n9* z;xEuPm~ulj*cXtHdpT4hH~59ESxiD8PIUpHhlwFU7R9 zdbR@-%Iqe+{H<=KhR&aY4(>_B*H#vaf_A#73Rg;p3Jb52U|?d*i2m7_<<2<6YK|f&sx-yY%cRIa;x%VLKUHvq3<5$7%?h;~NB!dfvuy?Es7Y`Bc z0n3@Lt}Z$*?rH_+W57cG!>{@ejna*_2pWyAdN#k20dVUM&^@(#7e>xqrXHE_BtNGh zGoedI*_Urhv6+_mDJ2Tj7#V`IMT5IL{I6JZ-oINkdE_Z3^HFAum`beywIj3>-Dji?tl62K_mr6omhzNWu@F3>K`xo`I7;}Z=(GFz!J*^E+5l=Fk&wG66&s= z6ktI6f|Q*C*^(*TFVJ7m?DaEfT1%=ni!PbTlXTKjn^Lv>c~8qrv%q*@QNFGIz^ku# z_xGoU8+gBp1i<@pC3c*f9TT=WoYu${`1O+7?YhNPc_&fIG1<^TV{{@{ChlR2aHW-ZVpwN|~aJWUf>OZ8Y-lsiQunj4Z7Lsk~Q zOSe{jxztEN2K~DJ9~F}R-^B6_vKM2<&duCs5crk|Xa;3w+z0ayfbL6e#H73`hR>BT zDl}&jTW|WJ$>A9hGa8x$s<=mn6!)Ua#+^0M@)okxSoV9-`2^a0j+pW3NmQR{J{gQ6 z>}LdSgIJ)omRfZNUwOwPH>|6DAvn-GHK$ReoUSBm=NH_n-CTFs!K(_O+(DprQ(L5^ zt(P7}JW16*Vuq+^HyYl(=PN*jJ!e&SsP^Mp4e&i#*^}Y!@b-DmSZvA|zem*QaE~xS zxl{EA6&b;0RxU_p$6hJ53XhBP^@M)zA=WFOC^)b4^P3VeY0}WpptoR8kb=MaMbU&x zRO%BCE1_~Z{tuKlc!wy=ocdm3g5zI_2%B{ZOdaOP>TDv;EvpXT>TE24_+r;&5*2Xm zKp4Re7{(f<%_+F)K_MhO_eW(!wPjf^J%G~rf3z#=Jc5+czFe%|VRot-eEHI$4>KK= zIsld1T=NBuyjO@vvAWC6i6`0uP8-WK1a6Xq*M>k`E@Y@|VO~T|i{^O0eO_S_u$11B zqrk@*3X^Rf{{C#Za&@&GuQq%@Yf5gA4G$0B)Y*v`>=7CDnArl^rG`AsVVo?yoD5i{ z$gUIa4^-?tgQM%MUrd1Yn9)a6Gc^LNIfcN8Cb%0bzPpw*1%-PJ%%L|bGjm50W#30~ z6WVly2Xtx|)rM=ZixDD+f|fUuIhZxb_e6SXU6oE*e`&GSR#RA5B_UD@0%;DUq7Mdo z$g-LZ0mbcck0D!HofiphRe<%wWtM(=>z6@_gUVf=TcFD`et}{I>QLMEY94LF{ddcNp~k&b4@u5qu+Siin=M8GBOT+k!eQ z$;+YUF(jnv_gX2EyvFF=;)N!NiR0!L;KL-MT&|5hRb0;=!c;Y-wgi>E!G5bI=cl{O zb#?Zs4pY?6Q9){^TI5}rvWg7a0nUD`?6zL}Koy)|c2)KO$(lwdK;}{k+%_pDg1KQF{_1MQx4FQHR*)ukI>gBc{ z!?fr;^Og?TJb!dxWG3G|q7rM-u9n@hJG;lN%cWev6|P2Btrk2Btb~AnX$QK`Fk9)M z$wMwox^rYr#A8zZ`9o2XurQ|%pdbniAWCSbEZd-}cSYy1UQ~A5#@in%XRL<>8 z^0myfB((nzxh$b9#WdzP zmcs(TDXa{QzAFF8(CQ_}|EgX=hw-AG(8qh_0IK|O!A6~>TB{yOpDP0(;el^sEon;M zwKOrnVV(}u*3$&P+I~z4={g&B4muRdKlP_%clFWHWMVPjbwqM87bNBsSC{hHLe>gY0C04;{vpl@Ux5+|L-9lX8(6i}urXAcyZ6DB$6v&RQMO0b_BiF-Z8a^Ykz zlQ9@Z8-+y3j(nr5)Gc1Emd`X>;95-L_y2KEEWn(aWkmaVKvVaxOR;v<8Nj(IhG#`e z1WDnY`u4dWp5ld@Pds^oYU!96cDaC>&4H(;bxJD)j;XK*3UkxNlC7@8zC2w`6Ma;fVsGo>GE(_zMP^g3%-=>iA_*>wr&1qWq0rm0rFPEK=UuyAHLO5djpvLMgQ$A2M(sF#}fLxTII)Xy2X_{+QEIy^b|25!Nx<1Mx^9j z5Alk35?8&`E=B>+ho!m-n!4<7AM}|g^!kWh@6ntett}HeU-N4Pe(X#;nW12Yq;IXR zA_;%;{=IY{nUSenFz#t|?M4D66WUwYSNwiCD_M82&fj(=Oi5CIZ!Yyo?8%@Y z-ETX*?Ic?!Zjo~hrj+;gd6Pxc245K1D^I{N`_f$7AX^TlRhGXS+l>^ z%4fGlgiibGcwLZkP`#WIMcwe-_!?rn!U`~o{7b~pW|Pt<)y_u6iCVIB%mQDfC4l2c zG!#&O6nyyH_9SLu2UszYPivImp>Mr~fF1IEVF5I|MiEsWM*bd(OAETFv)0w|Ja_#4 zd{dm8&P{7%tXdBaHJt>r| zUv4qoH%-@MFnIgpsr4_@B1L6CCQiaC`lcXvO@27@1wCLqdY_U^1WwXr?L9p8#{Fwy z*>=h7X3t3Xn*eZdHomT6(-X|u$0@WNXYd27*P2`l81r}O8fqDSp)c^GLg(A ztqxE`#_6?4=rx@$6dvM@Na`29A}1j5#C$bgVNFs}av-dgui=cADpdQUPhM;2%=h7{ zH=uxZHu_wv4t}hW?P@Bj(=5wTa?ud7v5Cr6(9yA02`v9m=RG=2q@tng_|53vB3+8e zmHmA;k~4+d35nQ_f0a~7Ny$9AyQiNwC=t-fflf;tjGbX|9x!nvL&0UWY>$b%TT22~`sBaNwEpa!2Sc7}+ z`s$L;u-_4T(tfKm|Akcb;%@`2D6-fz`P{Zs#{M10R3PQNo_vF)m}?X&3~6E(@=0ru z>oa%|^|t-;Dk@j!d(T;Nk3sHW+HU7g7|XS*k*vt$RSg1Mh5PU@WsCBT5GHtK#cwJ5 z5~Lg$V?Sxx|Hmve@*Uh7Lyh+48rOBdCpsztf@f>?vrbao3=OR|b}w~LwpIIibE}Y7 zbs?`e6SbH2bNsnfxfflWF@+O;WtU>R6DXl`rD&R%8N^yHmwJkd%C%qIr?Q%%I}#e% zg<457;KaQ+m)csZd_?q9a%!irqRGjXRra2{wN*){R=tT+gP zZNTSybs^N`ns}w^b?VF60nEdOExTg+`wPf{5;~>hmZX=TaC5H@M1)7C{y1qd41tq& zLi_jgZAY7jLAJN%4xmD0D~ws+6chav5NHmFM$%_h>|OvzEFjD_@>ew3s7NTZ#0w2T z!nl-9Z=m$J>!wThq7r>;vfLuZJV8haWX4qTIvsifllK18hmv#4$wq9jK*hK5t8Y-2+$l^wwO z%YsZ}Nc}~q`tezY z<-0~3byrZW&o!m$QBmikzd^r1CG?h7@yha(Eq1?kLWWq!an85=zU6cGK3mC)g(M18 zriX;}OkbJieGB_xB703dZ@KYvNdMHxHB3u1&J6d2;KNgzitM)tz!> zVD92C=T`D8C}^pEvb`WR`Qb{IC2#bDe#~!7rrVA=fzB^5xaFSx^t0|pfHK;XkZAg3 z+Wi)TSK_+gF?X@o4?By&XC$baS1*Gv+oxgV)tee|VC-)5jsv3oSZ1B{+DtLw5i_u@ zCo|r;y8d5S+;LsVqov@EiO=ed&w?c{G8WboIP7pu9*WlOt|LCjl|n*2?3^wwzzNNqv{aB6e|~5cI}}hK{?x-r{SM#}}f_xE+5khFyhkT^oum ztCrRpQ>}JTBMUSh)Q-a^Xd+(v*sSI$XL$*wJVf$*P2mMXX<+Oca-pObxje#P&<3R+ z0bl~3xW1b0y_}h=7m{qV>mN8irCSm|eTS=fyZn9nsB6<738s%`ubU6KAPTXJKr+nl?fa@9 z%>F5pMO1+WcL76`wR15qnRk2F_wTJ|dFnU4xgD{I34?hO$oy!W$t0=!Nf%=Z zh@5%RM`Em*GLzn)%V|kLXF5oO{k6q~gF!zJh(k>XCULMxjYk~hP=oxk$V(^8PcJG$ zi%!2A7V~m}keElVNci5SYqv>tCP@I>3kSu6-`kmA8i{)CpgA>h`0B|s zDA^7KsDug*&QGb{5h`AJWbswupw?<2H>NO~1Enp_5)kLB;RBr6m%X=r z{a-lqUvV*z^7N+erBCo+feVR&+zpUcP(!ix4EYKjdKx=3Y&=@q$X|R&#QgVvCDsNs z`Cor*rqZlI0_B%($t z7OKKYia6HG;r+fi6r1%c25MF=F}Bn>zZyN%oWCPu+8lbvhoK~rvtf{35>`Sh^6PX` z=yLv0dgrEXA!$Ak)BZ(Gm!7~D&QFb0^FH8^O`gz2VNso(Q3A(?9p2a{F*2L|@?B#r z>+!+}W|hBsxB?iA{|=CzrBItzd_|Ip&@l1gS*+v_N)2EdQEq;ltbd%TW=nC&f$qh( z#RN;4A^isQ8*H2&^Csb`_e-mxQ2Vwym88a_+V)Mtn16IUr!)0;Bh}u2lB$RB0e|bh zHi-0LVwhgJI(d3(BPqHY>p#x{0BKpY*PddS!#5dcuwRUEg004v9R+!Kn$7#Cz7PM=7+n zWj%`1`;-fN@PscYAaPQ*LWgY=I}kTUB2s*uRe*Y7cC40P-|9>$nE-H{Z(vT7$$h>& zR03#OGfXd9b{shC34?DSgXB|gB6=5nm-Cuw%BkiqK|Ku?;zVtidl*L3%mA%`c62MJ ziOq%1JTbbuU=YAk(ng0`)Dz5&^?d*miICT+!eA(?pX2ThAgneCL8KJb)tT7hZzJL$ zM^1|b5{R6uR`RR%)`S@>fhbT<{Cd}+S0BRVCef1{se{klf3RLLNjX8h_=_8;Y^iucHUM}{Q!YmQ+ig`*=x>K8nZAt6jZ(&-yBw^WbPz98*kd8&Ij41EY@Q-Y6N+M_%wEM(Pu zc6h}5>LrZNQ;r`=85ook7y<*vNEL`HlPxo2dbrY873ADeF0h*Z4hVfxi}$x9kqX%# zP~94}1D216q@41&KZk_vDF8{lgOXD-I%M>I&dk&`(J$^YVY8Em=Ar%aNwA>C`!MJd zJX9jpa5x%HM{l5R^g4cE$#AjGP_SylW)TmDLWEz4^GbAsxhQ8p9)0*})@SJ*gAL4% z&6#ieDIj5CCGzRZM-9^vBG%5-rXsre1;SUA$wHF_PX#Gnd()5(Oe>H>4g0o>7S5(o zie`WQle#tRzx~-5NO?AEQ_}Ft(S;L85sn{w8uTblopV9V(u>{@;25bl>H8u$xGz$4 zWA->+4W1pu5dM&nJ@}uQQ?0w(rT_}Tzq&;9=c5OWckh1!hQXOZuo)uY&9bm))MavN zyOTFlg#qxR9u*6lkVd`}7D8Ulx9iWC$wqyZMnWq*2D1LATR2RZtH$0q~ zbS>;Sb<}IVd$Yhf7obA#wcRCPWGDS?0xOHJ4DHF#3Eo0{uY~ZSN~{?+PuV*LWutA# zq{8IG4pXmfZ}~nntD7$|xI^iiAnvLNLYbVtorddWicIT?gL{1XISW{yT$%G}N&_qX zKG$~gEHYpbVYMOz!jg$aFPbB2*GqKEOM1V$CDbf9&o2w0d{}hZFQCFRWGQ+^1-Z0k z!+yH`%C#4Omq70I3)h9@4|q9p$gKSA^1{YfG{0j->-tkSO=3?2$U-4AP<4l4-2m)n z!dgr<9w);sWzp!Uf6PUyxX%07foXSO>eZzZ4~cQ$J_t5zaE&O9d2KMk0CPA3qt>qY z`e2sRH&r@pSk-hIqwlvo;4-YX}&ouD>`tq;#H;h9UVbSk-FKmc#8?J@x|xS)S*8e(*_=ZUn3^fKVA zM)5Tu5x>9#bw-8XjJH)3GVHh+F3&`Ij`x?F99k&ns?7-YqZb!P+q8oBxLL<|sgVvV zJ|lr*u|cvg4~=LfPns5Gexin2?rN2!TSvxLKmc;tyJ3W+q$G9G^WlHGT#{cm;GH~^ zS`N684$BP#%UQh=D}K2{9)Ra+ji6OvLCfK5FvLK%;Dfv%(j8mR-ZNHEef%%$?R9L85I?Q6AeZN&YEU8-ET)>KsBg_Vp0Mq$Y5>|V=S-e*WJpy8{>$-h`4U36QWnv1#i}T%Aq`J zmu#OI+QzOYXr*da84cdPGRV=@(@R__dz;^NwMXFKf~t4raiLX;Eo5y(EWBaQ)aBRM%V;Y8rZ`cg=PE)b=z!Sp{C;jVUAkSYLV zNPq`i0uwXZZxV!KeOY)Sa2Hg)KPR*$<&E6rfg~@UqFjxhp-vKK!P?47*hh${{bT9? z{TTvt6!OH~)|Bm}Ac<NX{X<6g6xSpH;Y}{-Bch~ znAvwLM`#6UOw-3UH0%-J@713R5znAfyeEmx$*Jy+Sy(_EPv7|1im1I6OZDR*X3>hX zrL}ds#?7i6|K_wdWe$kGyaP;JxRuH(sefx1GX=5GKSj6Yi~;TxkYIVeJUMBo$O5oT z#{iiRlT%q|oT@Gel|WM&Wyo6>iT|DC%>FQRbN-KnPmX2&xT#z6+68Ha*;=I4X^oGY zl7ynPeF^vW=`&}mD^6CJhbJV^cH>{}pTvvp+_gw}8!>D@VBnjvi9r1k3myGq$4d-| zzp_2w$L@M=xf>^(T+kQ@o&4@t_~gS+D)@)EaB(eL?g1KdL;dHB&P%V-cWRjqyHl5q z{-d%om<4wR_~1uR&U~u~K*p&QxOC>4`I!8zt0jKK{AcYo62J;G1ngx%uEZ)MqRK?s zyH+JLfgAP5!;c{Jwz_gf%d7R)dH75*|WNs>Rm?Mkoz zf?j+dh$=qZWap_^a#bZ_7k=ke{Na14@fJ?=(k(PiD~S4{rHHsf$mOP2L`hrolRgTMb)We#E635v>0awfnpM;^>4Lnpw1DT*yg z2r)lmWHPrgfi%S$=XltDcaMYlvAT-ErQrcx3e@J%x~L2Ro~#z~nUwV=%}>&wyY;=< zvqvkGm0)b`Y6!6vXvsuK^Wkvdlw2RzMRwX*+vEC_^cqbWexM49nODcm9^ zt&mCmh!b|zYEZ8aJQwb*K^sLJk}YwHD=n^_o5H(I1bHOZGz%d^AC47&Lk+w#DKI$_ zMVhsGy#3$W5=xWZWM1EU@3*f}cZk%;Dx7^PI*q7hT4aWKB-U@Pa=C>c&wj0min8X* zn8U7!OGf!*$P95kV1*u#n=1Q#)_&~U>jTRKO>7_m+;VHKd97%5Y)2g-2z7whv#9vv zvW!JmdYJ;8xxER~I-Li#INHs{qq@$r`j7dD_c-bliT~=3%h6#fTGkUzeZ%E>7v*Vs zwEN!VefSGWN%&J7u3v7bJ7F7@}6{ zsQ%d+#`7@ids+4sxS1Eg~>EA*-EOk5By+da5%OeU$ z^KxK3osWS+9$p#~dF+J{elUK%-dl~WY}h`ijv5Jl_Mz()5J>p|Ik&9!ayo7$LB6XB}bpMwx+M<9S|Z?Y)n@LdAZEcuS+LVNeF z#kwLX6=jgUGQOcHpeARYVkteu=1{lth>r7y*A=F(#Ecy^0lJo?s?qSCB|jt->^S;j z9Ok!NWwoj_K(U*ZaX#5v3gjhy2Cr+18XVTRK%ONU2<`KPyWCs7tb9Vp`f8Jrfw~ps zgU*?WR!}{%y&Pd$P5d%Kdf=$HZN%ZYTxUJ0W8Y*}JbRW&@>1O_68CMn1+8-aG@RGq zr}Vz9=cdc7#`QdjS}YDP8R_0uL-1Ct(MdYL`=0l1xz^ZtsU#dzNom|S%X$?5%6zrE z@_oyk24Z4dgY8lc5ZJf53Qqn+aC8kN=I|W8$d?uL`hk4kDLWWxb?8r1K1RAidQMO7 zBk^7R;BiRQ=oSBg{(f&2i1>&v(#aWOm$)Wquso!Lllf@S) zRYgUxER?Nm7((!X|92I_1uAj79@>=8sxpKuY+i}+!`_v9gJ^En2Z$M`)9;|4(IrAp zTLiE6t4Z9AqkHVuzb2|y>iDu`S^aU4%J4ZMwg?G5-%0aUJ>6o4d4*y&NB?+885R^J z=hplO{1p;CqB2D3H}4$cTz$fSynY`6GX|}Ns@JepPn@~kv%)O5SDU15`45BQ0`35&WtI40o=S=>&%o|QouB(ZMD zc?qv%W!o;>wdi2Fdl@^mEE5f^qc?|*bVgG;*Pi*jUR(Z^_s1`Ff^zt;k;`74jB}oC zf1!W@2T@w857WK{LFeUp&O=qSOUDQ6O(~~rwj3Z;UA>H$29++ZWe!_gGEDlijN$d4 z6I6cAT8GDf#leo!)xMtiMe=yPe60~*$QsHuC^wgt%@kmk zP&6=$ko?wqe`LX)jGu+z`cj9@E}nNl+`uOjh-8&|WeYtEM ze-pC~%X-3|OkyULbNUtg1C|7zDA*dlH$wvJ@<0@|p|*EH7VwwDroK?IE57_kk~7S} z2?~`*l_#oa}BXhvUu8xB7W#yWE#We>pN{Rv6A?t$C0hkYS`iF;w zrZx@{KJB$%B|Dw$cqjTw&%;7VpPdM4iFxCqdE;?qefY3|eJF0i*zI?TT{{{OkWV06 z;mAwKo(pW5Yu+h?7@&-+EET9a^uXO?v&%-u8;r92Pu#HwHrgBDjsbN{uJg*>icFXD zf`RGVk9c9%$57VjyxU=y2U*J8&dO6}VN?=srP>*xM_$eFXlRd?8;&tM(jR&@8-Mcs zdc1)jFw*(d{2DUY*=pd1)5mWyq79P@e8E|Acf6{(BX{}r_;At(b(4I1cq?h(nCRJ+ z=6XurCHK0j&i#tUGyI%T!cXnG)th5u`d>tko!_SbP#bi7?@#nOzD^^XZXEYDHmB2J zWov~9pYNg!Mit#SzK?Dl-ym6zAMbW<6IAru79K5d_G%_yXnpDV4w)PxINdGME(-}3 z1gZ__S^gn{X3h=XS^$!Xgk?T!T_6c63gaHKAw)*0kUejb2@=2j4zrY|NLB-P5}+8M zLba!oH&)WA=)Qb;8jbU&S62JTvrB6p17S@Fi7M97KRE^Jz7Cl>4^ck8+;PQR&zM>0 zieuIvS3Lcy=(CheFCtZ+ME4k$S~c1u=lZ zP35f`9SyUhJ~@P~?C8zKhn1Xk0n57VkDbU0P?Sl?K`)cMT%=eIO z6P6lk6WL;CZjeHI11V8KSY245JMQWrvwH~fEof8x(CS`!RNryedWaVrB)0q=(}M}> zQ%0x9y{&oegOme$43K!d^7p#;ZtVo2X;RVdy;bc2V`5gvdXqRGCA(I`qg`LlkhPW? zo%F@>xK&wSf2p--f!)RpVoAP*g)g?_Z4;5IMvN*{g@qi`iYuOtF^YrW)wL=u34SZ& zsHjl}K;PO(ZGNQ25S!1p=l31d7u3y!|6Zl@xrd28;So$b;C1q=CFbmf%jt1xOi(Z$ zr|i@^${IgX*&-Gucj(3Mg_vm$N$tPgqfjugY;Y9jA5BrD2^*lm4&`Uf9j80@>8<^+ z{+ePN#F57bC}c_tWDYk^P7=t;$rAUWVu^TPl|x!Mfu>^qzUKslA>8HSD6aC^mT245}?Oif@P z$W|=Bi@nxL&*p@AbxNOux+!vtc3Zw%3n=B@bZ|R?qvNRfSA=5jEsG=NGkK2|XaFIq zO!&RKN2AcPJbBhpsm&?WV-#{)cJpa#@yide6|L#gsZ6`g^YjE0&O&9X@d+txCWW7OgHiRc)Li{wHD4liwQldxS^IU|K}B zetH@PA*FIu&=2@Gbq6RVge9o>DH!zy>Pbj+PxDIM?5LjD7%$i;nD4!SXsp=z1WUrl zLSH33*h+e6ei1_TrW6iX2K|`+k9INlidXi)u;k6|?y{q*ty|^KB%n*xB(PzOwDSIw z)+9V~2uCYl%^0jk-|hZra|YubVn~Zgsm{*T(>^`8d*f}N!8Tcq*`#koeVKs$uBE)Wf|c=&+VD%uxL3 zy{_r@lVaY|1!JDE6T3l4fV_cE7PXbLwg}A``SkkX#`GiZ6G9tK!x6u`7O{BXij!L~ zzsl#g!)@okhBvh}sOJS~IRu|zxu9decapG@Ecg844yd{-%|*w*mVZ#q*R4C>6;q-XDbNTo%Qz_2$x#?EVD_SnyX0NV^dQF;=Pme&<5{lrVFe z{--W^YPDi`woDm6%i2LdfK!+zOiK0>5Ra$KAhNk<_|SY;zjz!HorE#zF4OSfghJ}C zs3E_2H|?cl#`-{r(7E<{IzU!)F7*vS=7}Y&u!E|BL{Tj6iWHD2`jZ}erQ}r{wE#5; zAI|01-{;p-6UV~+)b)1zBbdMvnWv6yY8!?7Vp;#mg;ymky7rd+oRbv1Rsf|l$WZhv zjj9H^%$1AY4tgRn%ca{Dcmt9<0K2F+-I4gS`~?xLC=xfo{qX;lr*0o(0d(Ku zhl=lzm(cjk1Eu>_j<9)i zH;PEuyt#~C(!T)atTT9JMG0~`W!fBDCzs=;$KVnpsGQ=!1IDOYXIOxtu!RB3NQw<` zWWJtUVlLQ66Ygru9;n!G5b4VWBX9nloTm21<98vSmwl%&d}uOURPr?zCqJ78WlyQ_ zSBc_OI1_K=9W-ZnYNl_0k<@Zt=Lbh*_+1-}mybXe&?j{Yj7fk~?zQBS=mMdstWt*c z$sz1H6>w1trLPb00fuE1#;{PK15ctZ@#!QM3b64G(jW|;@C1Q9PpXogxKOj;8_ss3 z6uI;Bp>MBU`-*^6Yx6uymD`dv(D!7F%r;WX+z!76c{r zk2oyj7x>_<{ie`_$I~jq`B&)=H_*s+S9s>ba+g8FT-& z8mj?eoat1ePp$S39f9i_t508_vlB`txVN)HY`Ial%yaHp<$j%SG|hzucBfV2zb>Xn z`(NyGv6kNcNOS2y7|d#bMV<sC!JM?0}_K>@lokdpWZC++zIQyTVw>alTz?+L2?v>Uw} zuuK8HqJJ^ycK-mS0pTSI0WtJG)nz{orYfD8fsgc){KmAgvKC0|(*^mp<38nCVGwNu5rZNdyUC)%s zKKxTn!`pMG;gd=W05AcHryT}pUzLF|O8LFR5SiJJ_x2hfr&b`1c^`H8X7C8zyk7T22$m9+%f;VmZyX31&DG{ z6)5DUDoqxw0ec|9JnRfcf5v-$^bl%45$Wx5M`dhnJYm2L%_z|Veii&DNmqZp9)n7Q ztG||YPUptRdp3QXL17?Kvf|(@VFWf_g_8xry-@OOBfhZ-Vfx&YQWwrpaTsAbpb#( zGHWwo!*^^%)?|pq_5#|A6eGt7q5vMn4Uh6yqC)8VB?!O1u|3_r3BTT& zxd$xvK&1vWIS~mq=-K2Y|EvSBhEZTi%V-%BwUBHxeD;N3Us) zl&YO;SDAEQB&frodbD;nHO`QBsWr75*nXgb8cqj-l>4bd>;{Mi1`_ zi3ZqOzQ`R70M<_E*RRVZ7h6hEVHfAA8B7!39ge0R6Xx+zR&>IjG$p1!m6ccgovU?V zYD#`zrMtTu_|E!gZ&K(XZ0}$>fB>K(1>m-^^!x4}OT00=)u2Cvf1p3!*2Hdu%mxs5 zAqNm5#jQ#Dj*Q1TFs{S(^bWAY;gGjYQFC*@g;(0dIiCRuaVvapHBn#pH29V%JXVBx zMBd@?iX5^()#SOjC%tOw9-ZlZ)Y=OXaw`u?Xf^)mxPtvtn%K*5Jy`aW5BJGvey((; zkhC4V|)7Prf7EXJJY4hJ6d9VU+IBIodRQi$U@-Cn7%q6-$4xHi; z(@KA`@3NOFqi~xO$+Zp%MJ~^W&Hj(e)%(xq5^8kp$w2#fDvC zRzmD@gr%h;g0V{NhP%7f@30S@?O#@!V-PCS@jbB7B4m$=YiNb!rZS`f z!myQGTX%Tl$;n|}Wxh}|8p>R`JK7D)MTOfdB_M^jJ#~n{oO1vsTJ|4)@gSH$ZQLxD z|MOScwl+S zz}aU}oZ@0l0}4t^gXwi6iu<97@W}PP0Kee#G^97!y6q|sIX7!7P{6e>EphpDNl7Fz7oFK2;ouPm`9MSqkTNC8*q zFqCWD*gz7B*lPOPuGut#)c9He;Z*V2qexuZ)M(m0!|RLZJUJKSougkky+J)Gj8}Q? z;(RQyo3%$)bt{Az`SNF-DZOZiq`K9rCoW&c*VdRtb%=r~k|5>8!IX3^NPEMtk5+~3X6Jh(!ZStE44wZ>GmUXt_#~Z#+W+%3 zm&X*GQs8rPJB4+X(KzVtotl!mi87(@Upj%9?H&;S*hjbIaD{=85xqadJzm7gt2zfr zYxn)A&MF4g#(s;K7m3K&Y~c6{`Pm{9Fa<8}0`J%!1)FXHhp{&Mtxf0d9xkV zP#f;u{F~=qi!@lUm>m$9j!FOaVQV#u?v!Dcz@W@b+WE_PDzvYtk4#5QYpHigiN~+_ zzT44y^0@4M3+o*G#XnI!6PfG_HQ;ZGjab^Z1<7gXT$aEtEnpFQGf4~*?tJ?Qg%2r# zLJ(qm!3(7Muqgm*wz^Zm{*Z_EOStJ{DiUry85~n^Z+G7GX=j0qw(U>!Ijm1IzI-97 z$sdZr&6H{e6rP(u=jGR>*A@b2Efr>`IkUg%FW!VdK-gGeakAiZ1xMWki=KfUW4G!0 zj~C?qi%RG>L}WgL5s;};s{_VA&Mrz5c3mcLfS#Qr`2(1~o1NdwH%P?q2{S zxXa|V5coFWz;69(JTUo__qX;5yW%VTj30)M4qq;A8SK zsW=~EJ@XVAq`ccMLOhHz-PX$54{e-SwUUe4hLJ{jJ}- z-uc51%eCgr`JCA2+Sk7JJ~4wko0}h`kPY<=j$fHG$5#n52gz+JEhfmEthwOEhYEH{ zo2cisAD0?Wev?PwZK(S1u7uD!pwf?y$c!b=I`TQ{=EW3b{|y&-_*l2q^JGvHTPGs3 z4~|v(QF*ZcoT@Obx|V1DVz81IA6(YwvGoM`2Jp%+MY+x1T!n{-;m(d&KjC^>=vikd zv{0|MSJc05e{d(WeazQr%IllRGH%AG=P9NFhd*|ldgpq$Q5Or%wQChO!n*H7-0HhG zw@3*XE4f6Iac_PiETjQqO!qU4@t8f*ejpf{0n;B~Bar4{t{AE$AY)stMX^Md>g{Z= z#EB&vAXdTkIdLY#iN?ne*wQc~$*jdn$Em|5_cYayJ0?>ubw;*T`JV zp|5!JbCB4=5go`N_8Q#zbIXB-hIKFol+K%2Ty+I`sS|p?6UIsr3;)cWz!!_(_YE_E z#DupCBLoGyQXl(Uddgha+|(6|EuJv9&w*4A_{X*kl$@R2L+vBhwRw5W2nEvW{YYBR zBaqq7LGcfLF)JxH|8LU#yxyxy#j0ylHwnlZN(p7VYFXS?=kGo|(fTfcz-) zbMbvf_4gxBxa40VfhJu2!|KJswts$6clzxhcakdyHZ@Dt*y^pyLLO6Hho(P3PRmal z5NLgj4Y}FVLo(JEFq_z-V-$`PY_!C9K)A%QOUdPQnV(U*E;wN9!&>Lxt%v%L?z&Xm zvh663hJkV@z#vp0Igfkyzfm-NCMH4&3jSM;-2}dI54WvXBHXUbHwY=wmxoBWtaq## zdOZMF^6h}UJaXn8?7gh-THCECv_K&tXAns95pS-`N~@pPh#~O0(!zLEo|rijL@6Du z|8go(__6R+Go^l_RrYp+y}<YD_J7q~^?r6A73m;jj%wL_+tAzlkI)eF zfr&J)3k^bao}Oa$rQ^4WuiwE1JWHpQH>HJ4s72vL>Sq`5Mc7ZJwD5I&2x4jMzvtU9 zGdr9ahUgQ^R0#bQ99PDHK|i=@=(O(7httyDuls0bnq+caZ*1ZmxWC!Dj=lC3IAM(- zz4uz>@kVgO;ep)S`(uQw$8+>Cyx|NxkzaJ}91PzT4Zr!CTv>T1j)LNOR4cv(0%dRz z=j`>u3d&S@c+m3?S1J3f%Nj14Np&#iKi3OFUYxXSIyyLfc8nck&2VSTIV~l&(kHvg zqRpX?QsYK_cmAAZb4;*0M8hoW(lUUQV?wBMY$XJcC{Yv*G1`>9zJ(zt2%pQxM1T|< z>}N~lPk#%I$gUSDQ;{|hE)B?q^oaq(x71^ouK7ITO=R}J6X{UPk?RTuy@o&Q-z4gl zv?nPv=L%K{#fP%Y<*WWTewAA7V(&sH@B}s98|Q-Q{OSOkQubio+~XM=V{*zbWjw)1V2PJnzw6KBq$^^Nbb;1Cslm zCF(BjO!(O44T|!8o888~f?tfP;WL*<-~UzL^q&cudJD^&UDaxf*EkjI?EXS`^y(s2 z{jE+w36HsAD@3TQcjwoK;Zy&LMnx)!fBh4Us-F6LYiWpVqmSO~r=eh&qz6;G{QD;H z)#Ph<;W-7^8u_Jn@hYy!-~ZbrNK4=2nscVh?-x!GrwXcqfOF4D=F0ne>|ZiZWWg;c zS~TrIr|{Wx#<9EGe0tDeYiUerDc~{ePHPKl29%dbm_ol<{;7eR;-n zvb8u^QNz|V6P|LO+a{}Z@MV*eBf{mCcJkY{rPRaXEUlj>Ag1KYDO#nNLIJtB;V)2A zZah#+uag1wWO_TQu*Wp`Jgsg0K(bPVSN;}@-|MQ!uscj@uQ>?poA zB@o>BD1rKfd`(c3U?{oTSqMMi1YX@TuMC_+sE(-5zz`<#X4r_Ivf3zi0( zQb~;270D>-qf0&s`*Z_pw3rX17*2NUtP9ZMM!u!65K7)hmsS4%b05>%E~{JIr_pB;<{5P<|7u} z?PzD;Qi9;E8#6C?e28Bdo{`jpl&0t9Rl9WQlHowMnhp~I=m3st0lI7e7Y7G=v+}T> z5>A9q(TRzJ=HcCGha7&Rus=9#>ERa;Qi`-0VRY*l^8 zb#e7P#rv2NTHTSSxJ7Bxcft2?U@tGzgNFc#+}AL}D-b0|+cLkyKBIThJ%`a>LM`9Z zjG(?|^M*V(irQ$8V>~|X)s8*r;Kp0&6nc?N)5!gDDUBc751e$=Uzyk^{8JN$s9K3w zlW&cTxnQ;BNXV%VDVLaL$xf&jat`G7IUYPJ$;I&~AS3VqkWVrwF|^WE8p zlub;N*R! ziA_mhTh3WH0R@BLtK5WiM!N)5t^3Lz_fwCRET*J>?~$EC?cy;ctlFP=j*sY%%CId8 zmSH6i#}J!h>GDv z7-ggodviF1)_NIF<#DU__p3#V`ldIr?a}g|&A>Owu=o)D=r%pd;Z?Sk@lw?L2FWmu z(F2kV4r+QT-L0S9vpX!v;Y^a`=e&|g{^M`DKO%5^n=G(f0Vjm;Y^)}z>F6M^X0(o& zdNGvB!=v3?+SOHvkP_KRQ8M=R)}7M>{Jym=N;;Dtq*M$s8Iwmm+;K&wB^Csf(CLXl zyw#qL9fPy>R4E*#K(pT@zgkXzoz#<*bE#D-S^vsdLhI0LXMY`cytAQ%s@`E&&g@W1 zEQ0$-*cBF^n|L7{u3^l@VW6;rY45Zr zxvWxHjanS%ekrlNVlSX{xI?SC^O7VbZE(G^0BJp`kps!pGZn%oW5{v)7G182eNCv^ z--_7&A;2|0Ul_)Ss@AA%_mHP0>$xfp^oD!-_PE#J^V`Ok`7}#L&k15;{htXAhA zpX5f}hVDDqCcu*)ZQ6wtst{7O#-tskT;)cb)K~4My(-_y9b%ug!L|b>yL~qJ*&hsc z5TsQ!*acLnI#=pdQu6pZzQUXFOB-wG>S)Y|HWgHtTnD}N%pEEw4PzFCTft31Ri-6L z!e8L}yXx@#!u#0fM&9<>N)v)V(x2KRr-=Er&=ynv6@J%?5Xgu;+eVtlXyHn>xHmx= z0UAQb$S5x*<&TGl2XT}!e5#?LfqV68Z{scx_$4#W^P#k89I1MJ!?HS`7v8=JwOg(B zdB7~DesaR@TV;mRtlNY1>FDob62x0eMcIsy5LyVNJMf7}NMs}` zC}>mgxmQr_E0tn=1)DtUnZMG0{`{Hla(r-A0sI;?BbNsIeyYNPhCcY|+RLLeY%2;i zi6&C3;|VfZ%C72{KKR6%Azzhm!)jYm&D@T|{`XR-7kgdDWX!x6eeUxLjwNb_md7*% zP$~!ud$uXlW$d-m%`in!t&Sbf^r0C9KeSwh;guj@U2(A+(HrFUSFfs?MSuEq)!xxD zLn@Yw?AO80sN`I zUw}#HO6v|Qf;4klKt*rrq94+IS0~^rRe3?QYN4*7sF+SfBQx?(XhBJ^xq4-a!-6z)~l^MgE2{M&{R#hC$;mF(V_&HDkAGR;q}5Dnn&w zJ7n8GRN1uF2pP>dI?(ZRW0b;Lv;zjozedAcT6ofKKX_p5_<>`ZiU$3Z<;Q*E7Lc=u z9CJ~+ee6X$x$}KvYaP{>W27mcc4w{)R$pwotkd8C;UK5U33^Ya_!8WpMGOi!-g<|f zyrLUtW7q2d$k5`ZvdAy|_8Tdf1KRmc$^8cZ<_ZN39d?84rQVlKF%#8s4unwiQBTN` zO|00kjcot=)V<6{OiWA_+4R90u?~hCt*3I6M?+%c`Ca~@#3Xd~^X}bzFQ#bdbM5K- z*wP3k57M^9l%J~zm2tM4_oz@=OgtCbBBLc_vZ2KG(lLMMbFHz*#m#6>aU>qjLSCEz+;Qv2kwoGql*9P8S=|5Ai zfR3Zt&dy{ULteQR^vRU~TFW_ks`l8#+SXeYQWEx=M5dJ~Yt>gwa&Aj&j2l*Esy(J2M(M6RQ2PZ;=Q*;~{xb-&u&s59OZz(Xb{l zrLs4X+{LuIO8}G^Xe{@K+Y=ZpD$pBr@sP~TaW?QeJCSf|r_?&`2784oq%uAMP5wCt zaqgwvl3yxqN^M)#b3#?JAeTz%qOBLEY)M9{gWuPWJX-C{HOw0WP-bv;%N{9J4$SNF zyLc~YyEmx}WY~tt&uzM!@0#hLq928;JZe#a&c2Hs!q`|cmG(t`=lk)0;hSEls;f|0 znV33{G-^>E(@J)o=x^po_V3GF@(UZ-1=dG$w%Bn>ugX!-PZnRo!o(W|HM0F((|lV2b*m%dL!)&6BS~zMVQf ze8OKNuz5GDJFTrEBq|JH3d$ZCNj_jvtghypabO^Lz?H_isj#pWX{R$c4dHnPBgd5V zejbYrt+LC`-&rktcvyec?P!5@q6j;W*+l1kp{0@Iqt6whr(%lC>1Cxiw)sp~5L%81 zO)+zf{=5bSrI=_rsU*b}5KuAYa*D(6u{-6HlXt4t+vkRDCq7p_xO+FLwe=Z;TAtvK zYuj|T@2FN_l~sg9-)<1#!DKCb!m>uvKN|JVOP$`bw+k6-?-|#Sc`ZVpsTU7X$-f2q zk&ZY=+9VSnL|mygC@G5&Looj1_1CPrAdjwE>X4A4XNqtXz!F)V2xjH3Ck^x|;)Hb_ zN3vx!0TpWeso6PPqt+$;OMICfY3)5bv4r$`7o9~5pB~v$YKP{{s zz%B%6^!d7iG~VpsOJU23Qr{}?ExdJnRKkQ3ow{}~WJ$=~Ky)W~yWLC98c6G-tIT#& z0vGy{Ej^xfG_yu;wR`o9z1f^|P*1Mr0;@!)VTsciAzUg;XT2ERpVYU)QS?||7b9IDLo$u9_bX%y96t%h_6y3F$`RBke{ za>9(Y)X3+uN-^p;5<3ZQXLilZ(rIrz2cCmy#huDIU92%2OvsLNTsRyqnoFn}Ntfa6 z%dq@qk|PAf_9r{YdyEdF#pI6LeVIaRopS7K!a0@Od3-0vX%voYPBuPGnZGd=(RUe@ zmf8Ge(<*zGtnkf^$8u+g>MY+#*O?bn#uOTnk;3uvRSx(bAXQV zp}hBatE`N?!AqL##+GYvrz)PlV{atMKT=^>bZV9i)xHOwrQg|%hZ&^_rLB#}n@x_k zBCkf@U^X~XgMa$w@8NI4TvQF+~B@|!mp@e7ZZLkYK{ z`KxrL#pR7lCl}hJzkrhPrt?dM(k4(HDMZ3aED5^9@)a@p?KBbKpC?|0V~3Z_NA?|f ze!~w5j7(*!j>^&CIZY4CvWn*j;CAj08^y!F(d~O`r*H+aYEYmsDHWTQ+aN6^+Sk)@ zDxvi%q>(JO(qn5Bf zZ@=tZoeUJSPdnugwr}hrC3~}U$C&Nr;R8dEmmCpB<$&vQ?~MWs;WZc07J|LKZS)@ZIIr8C!N&~CW%p4+6J6kJd?31g>U5_howIS;aav-892hOM1L zjp4%=Ikp*h{Y-0FupX`@Til|oO#>gA+?!~H`D4UP24iOa#9Z%rrA ziPF;m!{Aa)vay%<$#c;7!{6;&j)Pn$i2RqlQqwsicapzEHryjde zGZVvrmWos($0CzaiT%3n4|hjrNT5+vu!e${810rLAu(mwc(YPeQ&#uHcnG1!(T_$DV9SOGjpKUtenr_ShZ~2)T@XBEEj~@}K|N#B%VR&~={e zs2VYyHK$!(V1O!-Fj`!-1(H- zwsf>3@khh`|scGp|eUay77( zGOdH68-9>w^8&je2bGhSjscMmA1;ZBcNE?incZMe<5umnz@GA@T<30;820EH8l#au z+S|p$$L~)j9MieNn7wfm&-nGeYWNbag6@c_DPqpB566cG&s5wsuc57_Li0GJd}PKtW|VAByzcZg?4py?Z8N8 zXs95XJ61ZzqbZdIdN5h&@L@g6L#T`O0)5iyLm_-}K#ib>FtgK5!9Y?ZtFND~Tx_f~ zI?>?ev(2Btve&*d8=9X$;q6nuQZ%MBCr>Cn(*bbK3E?Xt0!bcD58 z(7tni#Vxw=s%&?EmTY&DeQ}PDt$swMyE{B0=$XBJGYyaI#u~I4o!UH7*0&>n!>}iA z;4kpq^vCD0kOJDtI9`kx5Xas+U4ze=_hrYCL}hx^bIGBF8_uzl0b zd)j&;2AI!bb0Tfg2=>?WD(rMNN5uQ=#;uEI2>$Z9H(+*!IOS>RHQ}9Ab29czfrIO| z%{l7FEhjZi>L}M!!jLjOo`N3!Z$Vol39)(2X z6Y)B@w;{@+4zGgOG+RC&aRJ;WPMe=>@g33}i)<9#sEi~L$*;C=f3uF}(A~SsYf<^C zd<%Ni$`lIb1vo-=?M^3@xW&WigXY20M7QCOIN8$Maf32ARDngXN0Fi6h?vFJ1t+9H1lJk4$FWRiJg znSduwsc_me1>hi`F?BjR~C*h@oesCK)xEtq1z|vUu45AT1@|G&k~ZSWi+2p zd>3NyOI64CSUwN1SP7z=c+O|kU+Tr`Vr>Kf;;7XCa0HzuJP8JtpnH$U2f5g-s-p7W zTdy8uzpB{9S|P|=DTrG3rvk41_C;`a(oaP|n~iqPV0&dqb}^qMSkf~8eV(j5ql~Cb zpydet!`wnbu@VaQqQFWzmi|4|y^wsTKv{VPYeu<)S$qHpGOQxY$6i@Ff@TujFLsMX zGhboNOYWz1T_z*CUbiTpv4}od2_ILcxF+@w4 zgDz6hY5wYAvx-V6UJm7OEoQi(8*xXospanQ#Mk*tM1%R(I!qAI8k7N^bw-nd&3$Iu z0m;N`zT_T9{X&bTi5;R0k2Fx$nDeh787}f-(9n$o z9X1ax3o3FgN%9JS>j#YWEpVP~?(={LPE0UhuCdz<>%w!bLltu{#+G(DZf=Hv!zjyd zy!6@x+Q?J0^zjfl#iqLX7GmI*l0ZPHhgPLy2R&5eY|sU=6uyR`f0k*`TkaB+SZiL! z&m&q1as5%x`kp*;LuZ@P?oDJxF`aq)0Hn1wcPedU$eUeVcF*JrF{fQAkMl7g2|=&i zAiifN$4$BArIoZwjWY1?QKb*ZIalVVG8z+~khmD}+uPZrs9#XkyyCKfzw>3=u}7LH zYW06&a0~-w7Vyg>D3}3jodJP7dsavTJ36dwXb=JAbuyJf>tI=8XE#BR ziO2%s0RD{L?TnDh-(-5TQnPX7#rMSFO(QP^LqkG{$==araGZR>>(2?2t`Xe$@);d6 zlR+RMFAL(s5H2Ty>L)af$r3g`H!>gaI>6eZ*%kEl^-~#Wz)ZmZ%tYWlS79Wdor=f( zc|>s2g`qAgF8O>T>dgq7z<2U;5F$_jo3O_}`l0w_Wn}ZHwYYtf!-=Eqebt#6&6MDU(L%m-5#h(fug>Qv^xTO2XEad)ZF_!-#wB8k!lm*f`6R zkYDF;X1XChPYbt6)aP(b<3G-QicMHi^Kear?n9E4r)7R#+rP8Ye`!IgDgl!uU@dgM zo&2;&%_#Yt26Zzzn8_dTkg)~s+ENCJFfbg#5iTbi3*1mD-a}O@wa8}=gL!3OZ-1|QGEFnT38vA%$jfKARS?Q*nHJJ`Y~L`c*QD7$5>al1->` z7E3WSHluo3XcOj!ZgYB^1jEJ*EeC9<+K)lZaNdSzciKGGZj%yku?KKA!i@!V~6jNaX`#Q?=9H=A+zfgMlh`eHOcDu=Uj?Q}2Ft|gr zr540Uvs+_TOmZKUs)@jDsadED)}2zb)ePd3Kia;Hcwa98gC0u3sWSln`V&gVNe`?% zIwoP6CGfB+69NYh-D9$`?=sk4Tl33rIDf`A-4{T0LuN2Mv$)zJiavO%HG zca18JvX97K%C_#&ZRCvSc87uGnZR~#xp30gd3bn9#^!8rZGRhoypwj_S4Q<~&QDWa zu4v35yI~Ra;w~hC(Wyb;D|Z zh*287IgM*pFMA6psWMjN?u`IwYiSdn;b^w|0G3P2{&cYlzc{0gj@j?M=v(S0YB|7!JJ9TvNQlTJ;sVNih{_iS73_21I?`Dzy zJXfr*M~JwwRZ6w%_|?(wtdBlDvW4qCrwdcBQC#qeL_1TazIBMKz?7~}u42FKOyH5&ZmWz}7(ftZlhVsDw$%8_Yq`-XRu!`u%Pm(|{< zHuX}+?zh_uU1hZc>-TzUx|U4C=EIqIR*JuD-p%f<#H9}jjz+eVD=&V(PEAj{=2Y|b z#M#ksb|kfU3$~etZ@=8JzP1Kc>=?r{9G5wRX_%6B>)>LSB7aH@lG@p8xTUVHuDPkH z=tHPqwCzyd7%vwl!ROc1a+b`G1GT>L<(>>*pPM&B%PsPP!kOfaWfCv*z6w>FOmxz4 zt@9^K?p&!_!aBqW78h7N<2j(_STi*mq|otv(Fv!=ix}Xlr|y`j3@&P%4!HK^3aat$ z_U;xLbqG3^$s{|V6=>3G`!~C^%(={d58_T?Y?k@}Z!oXd!JAp0_rhT&D`0zFk7axC z<6ME9gs#x|*l3|ylVOQ@j0(TtcQp45AAp5)RR@ulMbk7feZ@>QA;h%&8k8QNt`4me znd>c$%QHl)0w~010lmSJ2H^)0Iw__dsFbL|->EHH(zKZrN?7Cw_t4W}0#AS}XsBC$ zbg?I=rz=uX=~^5YRyiF=xVK$>@%gFteUM4O$G~pgk@RuC8~k&Qgwr_`o!er=n{*#_&~ChKNMtj z8;wY$3Ogz#<&9G0kj=BFr7t@-N)-4yO;5I>co~%Pe)(jSJg1k_L%O0%cgL)*!CM^- zl|)O$rV}YfxoCY709z^$`l=pFn&POY67uaU(+?QS3JN9yX0Eruk%pVX_8^m?f`s%= z%DvO|>}w-qJ-RtRW4Tl`7Y9R5!D@^oWkC_<6&es;(qLy&AI&h|A^i*31WesIOERLoVw_PkaKTySXVP z2Zk@Z7VS1ExQTcJ0foGPc{=k9s<79}5%a&;M}Y5cupsH?1~t!Og;wb@*BN4~T6Mqi zZ2zvpBY?C80W2-hCrI}kJNl(zv2@bXMWz^8(I$f^R?|rG&COl7lvLc&@$pv2J=es* z9|#30L^i1CPOnW~bNCB3%4(1TUgxayB800s;insxdZ?WI08`Q&vTVs^bNdpj#f0Ll zXu6u8uN{-3xf`^2#aZBN9g)b)D~?Q#ly&?2VyYYpH0q}nD$u%?9qTd;RF&7lW*Pm` zqK-QRu$z_7K+oWR-^YrkaLm-itd{Izcn1>H$#rz*uyLQj+nP4d7*{ff3lZ{<7WXE8 zO>ynzoGxs;9uIKtAZw~qy|ugss~Kn4$=iC#1D2^NF{uIW92Z(?LPFl1PBp`k^fAfvRY7{bDiUI(;9~k?{_Rq%g>c}q}elG&bf#_A2>?#)pKI*oJ%9lP&Mw70ws3Z8Yyz+A-BjIF(!PWNgt$-6dz@T8_i{saH;>!VzPKe zTzQh4FYX_Kpew%V49Jx`v+dB?Y!k%pi~=(5eZ91dz*P4D;-GcDSUcK2>*TQRK?!Dz zTc>cih%=rF9BXdP=hzgdxe4$;;tH7qu6)s{;MO+}4^REp&nKiWQgSxgK<;Dw*uEJ$ zZf|{+gp@Q>gtD^bnyTu|J>o&njk2;-sTD1b{ylZnsGlF(+68&zmhsi{DE*Eu;5~(b%0pLdzv6bn{2{Cs9vL3`;*7vS0K#=fXGFg@@gFM?9P>n{zm zBi4gw?y2lX^~YkBDtl{kVy8A$K;kAZgYYNs;49Q<&^XR`e4U_3kWAXt27{eP(&A3+ zJmAnKm*zrI^x?Gj`|mO7W8di?LS>%RLkb;p78!?hPWUrLOfNV>6BfrGJnG$(rXhJI z1tti}&P?1Kpdk|=xtIi;dqW}w5Y2iRpw3IP!aEVX#H{aQfKG+prh$i6(Hc2|>|Egu zeQp`GX}(D`WxY|wzBDBq@DEK6o(q;{RJ~vZao$2&n_-je1tEFX!I*5dTZ3kxYUTkH!rq@V0k%GK|*6`zX9$fuEa{97LUO%tn63Yh_xFTL$gW3iJ* zPE<@P>F09Dr3dWJ67PkjVP?qeP<4wI9v6L}=;50>jbeb!-bXJCEfq(`Xhp)Pa^$MRQ zn9H#q{3;MrE0ApxpUWss_~x&-GJ;;Z0&Xfb4ykn*qb8K@I1@U$k^22{rdd*}fy`G1 z1TP@%E!O_gCr<-Eia;u*`7!C$T+dtXn;$*|A)F+j4KmsB(~MK7UCIf`n^CEgig;Y( zfPc>D8D=iz&0ymiINw+sd9Ay{I-32se_>g-k62+%{Mu*3GIi(wts6G5;bC7X^{-h6 zUUiuo*xAiJ1370LXhQwDND(L9T;iHY_vF5qT1EGCCP#xLIGZ+kwh zEGor_uw>~$kKF7Qk`i{f^Z?j7^nYju+P9)Mi`7D^6>4ovF zwPld@j)Ez$p6TW~Pap%*^;f@7PELkIMWJhJYn#<$NE@_Yf;-+bM1!e!0Ju-*fNL3@ z!DKh1|7l1^m^qU?{p1xp_%_zIGD#K(cska`j*a(oK9#W;b3Xr(8UAzsY-iy!V`Wl9 zzGxuqqvhmO0`3!A<0P8nSEdgE7L{c+yNauy~T;| z9}WA^p+`r*ORnGu2>lt`VzAu$hnV>DT-C7ZuLw{>M>=%4k!RImm*-u9?Hyf7Ko{qe zvoFs7tWk#pSFV^R0;{TerXeE}h>wn_85``QjxiuipcB@lfglIXBU_1?(S|F6#A~feW4d6hibX`Ut%9R zBTmXWJrf#MVzIVG2o8gY>51;+>ZOBfnO5zZ*T%+~uU@~74eu#24id3Qa&mS~9WmBvi-H6Y#F|h> z4wKSa>f}3OBQy(V5gG{f@C^EJkOh&Wp{tu#Rke5kf?5Ls7rRAlb8D+GxPdx7 zC@3gtYs;#nY08~IEu_XK)v0{@D`GymhhnVz`^V7oR=89_KZL*+Hn!mbkrIQ7R7UkffZMYn)-!->r%xIeINRl% z8gxdhj37H89{CB-{G(gm_xXiR@JUg{&pUYSn*gDv^lN8qm*56`>-PJ`fd$B58g;Cv)9(v4vkE}5<16+l(5+qa<*@> z5plW=n^Lj8-X$lfwJ~R)-3zHiSa`Ozg_YTcpM?jN(OAi$X;s$N{`IS{$?i)yQ0|Lk z8g^56a(rt_VEGPE{s4iz?1iD&`TPPK4>k7Ajd)>8o9>K+5dDp&#Wg?yrn!iDcgc)w zH$z1O8@Z?vPj&zx@DGQF1CK(+*8o!w)i0s&iGKkvGf(9e#$)NWJ}4k00T%y#y;P9& zn-p|KP}1YnY>m`up|l1Gkham&pb+?41aj05g2Nl=UY)Br3B?zH4F`=2%w+Fc7c#Wi z9LSv8;pXbuB`B11VxLfBI-X%z>9Oyy#hoR_q8=t-$I?w8v7?Y(j1W=^3FIF{z% z9SndR1Rp59y`2O2k!ld9kO8V}2+&z_tII0te`L6iVZ+SsT#}4JmD4siVU4*MCU;g9 zRUkX2`OAl#T?s@>6wYLa=NSe71r$w@lcqV?x+*A*Izlx2tpH6uw0^Y50z!aBconH7 zNuB{=3h%z6(V!v(IBC*;0&}Fqa=nL%`l$Gl&jTJ+5DE`1{{o1xR~M5nP(;#;&bl1u zB8XM=>ufV)l7GHEw25WjU4d;in&Zt|h=&>>G`_~9>|uqb?{YAuuF2GFQ}r)VfJud4 zC*IYJ;+ROdCtX8sr%S_FXKd=~G1T#Kj_h)GR zH1l~utTrEioM^5?_8?3WF(7@bQNDpru5jHdiZ7Z=8e_Xsq6DGV2Umqkk-^q?cDg|h za7J-f6e=MX>Km5b(>MLq&fal;hi|m6SkkgBssg4r862{+>=4US)Uj;C7bpW3iqHoJ z6@|_MFdyt!F6>Lz+W+J?AN3If5k?Qlh27eFZL6@81fx?2bQsILx`)l8PQjayNYjR! zvU0?`Cn`RMeNF0&XE_4d_?iD75n=x-ngSDYw_-K>MKR~`(*4b4#g)7#-DRKdorw+j z6oG_%kQtCP2@ZeGELL^9okv9meZBT&xw&swU3t_hb{@cNZ2SS?^ip%_@6qApf=#x6 z5t$75)>yIRjK%TxV5vPatwS|^dKzYbXqO?`l2(4YV(#Pfj6p@G_5WEjNqqw=!Hzrf z-l~lst>0Z?8+!6#V|z!|%q)SN`?hWUiAi66lQn-f-LB4ME)N3~b*rU|eN-`Y=@T7r z>8e&5z`TZjyf{z#A&hkL+HWENKa>pAFum2sB3mU2;|da1pQ6}Jv`se;YECjd@fQ}# zkkzJFp3hn&3va`6q*|@{T?(l2w`y4khpQ=tgoL8lEEC5Zb}f%LJQ|j^|L;WR5W2dm z!r)g>A7YB5qv!BwtD&{_ImygjpyTOLUzv(T$*oo;0=YwIsM2sS)l-hflVc1$B`xoh zo;XT7M<)E0@kO7EqS6Ebx|Vx%I(@Q0TOa92uXasCqc8HM(jzrQA}4Sh`&8%UvAPQ& z>idEg%GWdw zIAwj_?5BxAmWv%%%f6&c!>FF74F)&qmj{6uxAjp`4a9yw$x<+M6PP&}{Q(NBkTU(! zAAe0sUcOi=)>|Q1czbE4v`5cmC<`R#R_z7Y7P<7;L|5IhT`=~@D)^ZK<2`9z-D(8< zIQvZn!|6^;>_B9LX>USyzsX=)&B-QjG?i8qs)6Qd*{D~Uq>W8BgNkR%VcllH?_aBu z#d8BBxO8)>U+b>IkKm-YL^;g9og8nj#`Rs<^{<(PFtolMh-5lRE+rh77u?t%sAo^} zcY2(>Y%i_BuMQMQhJT$a4spz~z4vSQ_GC+}mJ@7Dln1SY&RI*0Z{1Z+S=nyliPfBf z^_35Pi?_*1vP(|(xm7F-hnoEs2CG9ixf(8XlL4j%$(tjU-NH)*moA;`nCi;=FRU4= zcQL48jQWP#up}FS?E-Se`+6vdAT8M4oi__a7Uw8u6c4TY+_!AdS#7}HKA0;E7zH#3 z`vB+4ujQ;p!5<`Dwr)Hc4gm^RK?0`d7p%kq2V|m9H;$j~(W|^)1S4UdO~~)6F*7~g zG(IkU>a>23lyk{uW_q@HyrZOcKuP~??zNpoR893!wuOboD240R+KIzH6TfZP0pxJc zA5+0r)G!liZIU@=4z;FmlI?m@kBW7jKj4M_POjp%Ssdg)P1-tkWI8ytM@r96*Qm?X zF3lqZL%+$J^!=W{N8GLFhUc4lCzPYbmxP#j_#ud!q>r6*H6Q^5h(TZLwNo$bQyvTO z@y*$WlJ#aJXD&Sev85q(T4B`@r6PmTCC^M2mK&xN9U)tQM67l`0{nl>Ky<^-`c5&g zrfMvYweW{aCq91OncF!!_SOrX&DCkMMQR1+71y>Y(|?h38SV0qbp?LmaSkL(nizSn zL$k`lNehvXE;v;HSZtbVGqhaS1HX~e&g&DzVe1Wu3}#*dvQ0`?yPoBBzWw+9yhT`% z9Pc(x4v4|_{d3N_x+yOwpSE|d6Ct;Qku|1dy%p&H3M7Y(@Af=A0i-K92Qx6s1mt|# zbFTXeCL@)bNdcPmZQHXp*&vXW6AUo11aZ&!Ob^o>?X#DP){FIni&(Z2Ke~9aF)z5- zs~O13`!Ymm_T%Vp%;s9|3R*9ZNX5l1&4!07DU^)&kH%>f8przh_{@;qM(Me3YvC^p zD<`T`H8ZY56GXhr52jK3JE2(d5!XTYDS!?ZpkTBY(1XbVrj*~qYU!0Fz-fk;n6cTB zz@o^%m-V^Jpkh=2i*xxU-M)@NET>UAAq#8j!I_7&<%>bnxEwipcwSrVy1tr!>7K$q zE^cw6Q?|G$?S(25Ld7b{RC5y8-NQ0HGm|>oMmq1IM-h@EZ7`7{jx3JiK%}cXY`>nF zok7VR${)1zuC(<^dZYRl*%n3kj}RVN;ZeWaT#pXi^8#NV4h7Q_6_zhL+8T*rbLu)2 zhKEUjd#Ip3VnDTmc|>SRx!;eX&zbmpA2^VM>vGfMxp^4pLd4KkQUEw<4X*{<8K{J- zb_aJHe?M_PreXuA3LJV|4!^xMnlPA_u=m*9Y`EOB|0XPCE!19(+F2Pj`uGZ;j16XH zmWxgTpp**8Gzxl7G5}rzxrRvOD=u4w9}V$=rXh}Bvml&yYYAfDv$*^{viyrAgT)wVjPu5;f3Y%9=l9rbK@P)ei2f+=$tc;|Q2js5HrXbv}dfWMW z;}2iDyP*F!UABS04LAU%UT7z#Q%h;zIAT_ z{g%J8B6|)~ees(C5fJ5den{h_hyDvB>Qp`8IX))gb;^9@xK*uf_7iACLF^raBX*RD zY6eiwKbm@159y2soEFHQ0_j~^ro)?Hc-XI><0%~I;`9T~ls%;$p=UMkoe5VP?(+R#)6NyTSS+d-9?PMzn_|5<3b_rqehkt+zz;do&0eir+iB>d* zUu9l}t=#YMjS#)fk~W}`o%?nT@|6Kngh8Wi5W6N~pRg*CFU!#+XF3_xW9KV?;`q;- zk+jXX=!X6Sgb5^J@JSNlOduA|!(UM=(8LS6L$doFgB9cf(ODxm?Ou62AP>`d{)0%v zC|&!r2z_1)6oj#-5Q+iqogomU-P0h%rQ_2Yhf+; zxh3=B7>0nE{rJ(M0up*5rCJJSbl>Yk@o+kJ1#F_6^CGnhMQaY?m~3MYt82J`fjEXS z;21aN%yyp!nZBJW2&@ob1MgNjUCS>rlB|PqM_43x3B-Km7KyIz;QGjvi1lQfEA5%% z@=^jgF6=t?fUDa6i0}oA=_s<#@K062NuQ5uLFG%*1l)V3D%bMGjh$h;)dwqFpK@4G8D){Ao0kN2 zVsLNZI~i{60k-cy^#jN|{=A8$Qni0*iu8f}JbI5q9y>mc9;$M1KI(mB}CG8fH%=B!ndeuTebU6}=^` zQPUmwv}7l1hgY=K(wl-){gIl4j~ zG^O|6OGKoXNDWD7N+*N>fdm3c-o|pi_jkv;W8Cq3W4!#8K$1_%-fOQl*PL_n+4gd7 zoMhHf`)*Lu%%(`WoaJg<@Z}X0GR(c!4IwT8%=#hXQst?cx z2NhvP<~?X^wMCKO+c`}9m7jy7B&j=QZ=aVHgz?n<-gx1Eh=Te2sypRCOq`XIQ&3u3 zTF#o&zP`Ds3*Zzs343$EI_Cccm@{Z*B`{HXIgKDUKm0IKQ1Sn5q)={H^}_o>?(*c8 z31B8!Vhvpy@Tafua`vUQfjPx0^f0JJIB zj+&h#2m@5L5viy-`!(_yqAE?kv%a*Pga?_V1OG#{$h49YP9mnU-&UZmIeV9cuL$f3 zZ~;M|^;gh$)7jbH9z)oErmvtYx;r~>DD4ntN{v-*Q&rs9PFPp6q+lm0@8um(+tsH{NC)s?2J{Nol%UHhMHQ3P08e zk1~!m5$oo?ZoIWhZ3efZ+TZfnkT(7qm`k$jB!T@Q-}hzx*dLk@t$o7aRsjg0fG|iL zFORx(G(z_ocXVHCB`09h`rQFA7g%uNLj3$H08>^`Q`57s_^=ymVWBF{+nR z&w2vhdn7P0aHPlxb>wk=5a6SYWEvg^%iDgRrr*XS<{G5c(FQ+Ryg0yeX1vTPOn4`b z-TU?rGn5$EIeks+Nl>PQfY`*pueYB2)!1av4J|Ddf!)S`Tf*fmp0+wWnAN~6G@E+E zw&S?C_|y5f5ohhYgTnw3vGdx9#D7urK933pS`X&j1P=#>=gTjCB?}BL{D}Ikk+sO2 z*k*^6zgTm#i5{0?&^jxW`tvaC2sU!gMtN5Tv@%n%DPH|^C zz+g~7q09bEtI{!m3H{lZq@~#qp4GQf<61of{7S0H58A8y06G5N0X29*J^zD;`XCzb zb50@Sh+CK2)N6GDw%Bwr4zh0Q5Q_KhMSxfcWlJx9RxMj zuiStkU1e=^U2FJ#(BC;9gI=iX(?YhrX?M_i9wnKH-a396hzU3Ysf5r)=?93U ziY_0Ru&@STGvq$%kYbbeO$Qv9WYpXOtNr9hJxrxfy!Ox_9xvuPvFWZd%r$+$RDZ^~A-^&|sKHyr?hD>mTV;brU+~3Qp*F7qz zA)xGZ797Av*`PUaNKFcYb_nL5oHX^_7=Vpb>xrK|bIx&K(6c^CU62R7K`$ui;3k|- zzH{{p?=qppKhx8QoC`It59;6gKtA?|?(jdriD0szn;dk2!C3C!G{$#&Agv44pM$nTi+p3bFW>+U%D@Fqu*3mrl?uWM_U#RJWC zL73eO=DoZ7P3!dOV}7Imx-5V!r203O2-0;#fY)FRHu6{kexD2R_Jtl1@KgTB3n7{Jy zAgB^dI=Jx+~_ql5Z)d%E4vV zV{bP&k3tSH!*qy&t1Bq66&wU&%Ez8oR-4^M+_)K}?Q+>sq+L!zxt>4Fd+77kf{Awb zRM3+n?!9X?$68%2$gJct;6^^ZDx6T%*>X81HWAWsJLnOkU?6OcG0QGSD&arK;Yefn zh4uBU1!U?V@2i$$#OrY-IU%}NcD$BuX&z>9OoX2O`)Aa1d=03Zm=iH;YhRBS%l(gN zp%r;`4Tv>nDaJW|h$-9!a8+f`Vrif?Vdyi!9Kuj%UV z_l!&boJIYMN3;ieC_QcVSAQ;OHu6VB3gca#{(H zo<02@79RuK%iYsuOXu5MAGv%=b&woDV>z4bq|W{4bO+G-R-O1=dOFR{&12uJeg1rj zefGh_hdR#@2q69x*ee5$Z~1LKs3lrMhsoM@SDu4Z!pscLs-s6S;O27#6`trhS9t6} z%~MFp4?^H$%v5FtAYb7f^JWZ_^2%){{orld9zxJL50D9rt{a%?c6VRpmx&iWvua4G zDOIxrITsIr1MI#ENXbUUgNpyc@5nH^_LHb6IJEVD@Dx>ezYBD)N9SxU8>KCVoSG=$ z30pQ>+s+6fqj~~&>MDi}&>hlEPfnn+NwtkHsJ<8kF5+tLB#V+3@Y!<2nXr{&(g;~a z(D}tLM#2KTA1cjM40&4TK&O9kxPy@Yx8&TOlYUKeeFVD`k}&T5cc=N`sW-gsry!btMRcDah(K&KHwV)1dM*vm2X!cc zHh>RWzB;0&#?tCz_jt!ob@XfJe>Q;DKGt8Y9RY{6Vl-entx#C!RRm~?E&|4;~@ zvfDd6csq^az2IQasR*u-+5N^nV1{XMR5a-y3;%-q zGQYKP>{yg*iZ2i?#Dc65G?KMJ!OIGU-Q$0NqeU@0B^jW$!O9Qc$apatZ2Xo%f98h# z7=CU6+5FLXhUqEpeN(53^pmx;Tq4GXSnSU_A;NImJ+W<=3=k$SwPUn*C7i zx=9t1*GT#|ht2^5!h15xC-eW7=?aIN_jHjbL9abEluK0K^p-^SQ3m6m9!TJ#9W#@y zl%36DK}*_Y=3+`czwhibtWMTGhy=)QHf@$zSlffCa;<#|j_>S^S5I*cJ;3U6`WH)z zfk9G5%PS6WwDd4Fxbb%XOCNy>Dk|tnm1p>m{_@%%AS7jPCk{CudD|3`?3_YfhO%3~ z0WDAf#JNz2AZJqh1)DHvUXF>0xn_l}QQ5PN3oRE*nE{Ad=%SqFX~q!r&F;4C`yKf$ zr??Q)bZ9u&=(;p5ppAZ%VVLXR&*SHK+Z$|>Zyb_+0ZIzl~$GtBR|3y*F zi5x4_GdxP-cU-gw?6k{(CWiCnV7R&U8*gD4*|(MewPht$(|D(SxGbywU{Y0XX$Rmt z=v&h-N#3dZoa_knZ>!YkTfEl&t7KBzsjT0m8_B zk_&K%IBuw(rXIoE>)8hb zpXdJuq8RcUe=ud7l0etbll_$Qz!T9Ko*rp_%4^}^rIEh|%icmv(;A-iHSP)^p5dYU#D`afbAb-&xenSiSvzOV)A7^vBHFF&P(1&X=Dw(UN)@>J|{E z*Bpoe-i~AD8k2d^UX4HfC2sDSpDVKCv2wMHjQity659Ampc-Dv#NZF7J9dkO$Z zfq;2kAkl-ep8~vWQ6Q9s2V4cj5`pynGTbP0zYO1c#ixaNE!jO@)ig-?%)r3^)0Y%{ zgKpA)tO_6upCuW8;A1to$9Pjt(9rzBsO_I{hVBBi7XJ(oHT(Y$MlB$0A7(IS{CzRC zOMuetd_?*Cc!^#@@e9)wBM2S)Z5Hu+BnHnbhhNS`P)%|xD)q1(LniKkeS;Vp5uznENp5xD`{B>dH^4R zZ>O%s??~d-x?e%N1DbST!z8Gn#Z<~>c!1+7{7DT7_@p8Vi)rLyJZbd_0(w;=+?!@Upjh1ZzjhyH}=+9 z1EAM;Tnp~dv)gELx%$Z?oKqigl3Z#8`S{9m%5m%rZp6qkK(7Ih=eX}PGc)pmlud_M zFJIo^r9Vol($%uBJ;u`CU1Py=n3=ukWA6E@*_oxIoXgVs(@jd6qup1#(anZjlZx6% z>=|xuLgPb#3R0a$3-;N1<9`2Mu}SaUKtRBcijLOP)y<3%yA}Q2l$tqgeYVP_#kI%s@`lH8qxvY#mAV7IH~pw>G{9Jl;BJ)d8q7?j#pe= zT>(ssoeqWb^r>jnmS^_~%dY&9p8&`Lb8Sh7o~zvb$(aY1q<4 z=EoyF`S+X#FJpcapTP6y9={I;UTCWSz7X)Dy9=;bGcy~di~E}CV@Ml)JvTQ^8{r?6 zQt)pEX=69dblOHpT4{FA-&R@4KtT$4?OK!YAJ`gr!*jNOe)it?-wlpq^@G+Acvpjr z5j53PN;^*bRf}GV^HiNiAO&X>+jJfbKd^V{gy{Y!08Osx-+KA_W${M@s$D(E`O-fz z1cGf+Z?+yK7nR0R2LkQ(wJ@?!DJ_=v6Qh~yt>eXJ6#)g=0SabIONox?k8ikkXlL%- zdo5Q&7%vNJPO5sqj+pq6TJto&bnYO7F7r<(7SR5Dva=Rl5}Rh0ZeY6iDm7qFE{QVY zho6L%eqKe~qRLVx{aHrJeP%#yc)|NV!EZaO*?a0x6K$~M?CI0_HIvkpAnXbKSkiJoe!L{%kRs~HM0 zeCqp+OEQeyH#Kdh;s^x0U_MaOZ=6~)Fm<7+!S)yem9lKCmjMDXH@AT8O?<1+yhM+R zO@Zpf9S1Y(>+gX!@|q7Zca4dZGo|Q+L>iUe4xlwlSaqp+1UPd0RmQpNrv3xFGEcW_nM z4PU)_)h&EY^WnoXuq!RzX9(4{2sjBO?i=}dIWoH3+ze@22u!~)sra%T!&2;__^4q(iVe9Qw{ zpw#25R&C2_Yzix+W3YaZf3*IXkmamD!x+Og9Plc-3S_(Ro%KEOQ~L0;*5!t_eMb3a z&1=v0C+hT(UwW1ObJbMe{GkQff6j1?_xG{}Ud;U)Jir|IzlamR96$EI_omEmp!UBX zc!=LqM(sP-BJ%=STHcy{JayIe1Pz=wNvTS-vf}W zhG{9VljmrWLj4#~E7C&Rb7%jp)0RIcbncm>C%K`irA zU%|c-aQn?rcXz)QK>xSAsN1dpk#{Z8CjN74vU zsNH8U9NvJYjFyq{UFHpZ8cv@(rKHs)o0auBfQF4f<1IUxN(WJN4u>n+d8?1xL?61R zeBXWp%o@)}yqq_ls*2kRkJ9dR%+Aadahb?1HaE0)BatY)sCY$rm0K4Z&=o5Km2Nju zSX0;fWmCj@#!(ZuU8hJmJjY;?^7wMdL@`i^n~|yeKVvS(&&aNqkT^@n)0>M63!Q7$ zH{YqkWWBz}te%(dl?hmW+DO}(4}1zl&se;;Sj9>nD8l>84!=b$t_`rb)BrDmQ4o!UctyO@Gu;L<*C60-uK40HJ9|$1 zmzz%cIoowD-o_U}kLanA?jjUxI)Ngvi_gL9BW?P_Oz697c!j8>q+&X3X-Y+{r!-#e z{@bo_dre_|V0rhX!2+Hn$zxH7w31_QL!Yj#iK?a5b($g^dW6`& zxLG@KC*p+QRgi%6nS zA3T<(0l;o5taol5#BgB%&cSHgT|@jrLSDxe)e>*q2JVeX4d$;n#aqr)sM@9gZSid= zYhh)LIIs|0*)wB#?7LKT3b->~5!TQMJCD)8W2$-GZl+-p z(a(upe51TN0w?%ogOL%D>Nl$hzpzga{mtyvwczRbd{IK;v4us8<6}gzpp%~0M|y<= zG5J>PSi&_bQaG*rYAc7atLs4)(E%-Ra|+ax7Ou5>mk^_3<<&f9ez32a&vjWP%HAAOO2fG%HE75#F)P4QEOfP%-44r5WmV> z*eV){tVQK$iFQbh*9fqLwL6H zHtcki`(o#to+J9IYjfW8-K64nC)dD_N_+DcD4pQ)7)E|Vuj$8d15Fu%W;WNK)Q_gB zCKl@V!N=a6W_j;s9a=b5Ik6K6P_55`x!?2C(=`JFw-`a5vsNC#`PW~W&lv*k%+5q- zeK!}g;P^iCNc`4`=q;@p7YFW`9{0WgV1(QFcdoXSRhGld5mxF{IQ|JHJ=E#~=dH6= zz5l#$0emI4;Swu47eMT65jP4SH+7{7wMPo-MD~`SJ9kEZo4UV#)&43n^&aP(EZVAA z;3`Wz4_3u;=6SW(ZK>1{{8CxaZMcK`-WR^JXV2Ef_SeT8ero{uw%OiYU&`(b*IFom z{*vVR9x}yLoupdp46s`aFVjQ5{+{Biz2gT3 zgw&=ZI24xTxzDjV!>VqSK$ltu3mt-wi&++biP34`s8BQoPKYJXlwf4;0ff@_pzT3_ zLNk*K5>Sf(Jn?I9iI1wbZ}@g>d|xI+?^}j17iRl6-88Bul+~c?tx5pPA%<_phVo{( zNC&er(Gt@vmdFa&^3ZVR`lk5%rwFb{xT%oKfj{CO2BJ2Mif!stN*YA$-LLZe`Lyou z_e`lblKOWkl-$X>>j^*y-IfySZP@<0pIF>8Icy^@E?@-M=B#@f?p-@8=PHU#_gaap zCZoyY^1%JXgtU`z{gQGC{1F;-s3v!j61%dB+Y=8_6BYZ}_szLqF+vL@siXN-a8Hny z<+HOxV1)@$W+3(G$0pEt?hoDHf?N<%<}378O3G%kdVNibN1G4q&E(bN62>k5pbs7w z*XJSfBC#5hBp@tpR~WT&>edhwp0ziy5CJLd2c+=Hm1TU1ce4Cmf50hZJ)M_9_C9&-dj z!Pw$87%aNT;@x=+($ucpVo+QRl2`;bYRBB)3ZE3njtI^8;OFa`%{**;ecI#utb-Az zTjW6Sedd0$X4VHzodWN|EqlQf0?rVkHzc%$Ad(B`?vzYpKH`vF z7!Xj93HTT>Fwpyzsjq9S!c?hC!l(wU{IAs5%@uAt^uj#F&!rl<;EaOO<*+_7E?dGb z6tUr#WQ%)s!@CzGiA3)rAu?58FTluUmh7yyojm+5=tYuT zdk6MytkE6g9xq?LF_)%M$jc-Cbd(P*%k16Agq19iCy!s_R;BAB_ICYXG=dU$2CUsH zZ+Py&^KO8=-mKE|it1?T>A7?9MSvql5nFn#f)}a=oJX2lnQoV zeQ02-pX%q|q$|vG7n0PGOAu6(bkQ`rckfUv41KO}yoB!8bPr2P)%Ue6{(OgVIKzrj z!53MyJd!maskDG`UaG(2mGiMa&r$AnZVI6_6l`qoQZ)Wd*NBunNW09$&(F_?f?*G( z)2KT~`b_H$l+}5#Wwy+hCA~C_6g)J94{z^`zn=>3vG|K!Qp<+JSSz}^g9Cx~QyTZ1 zuadrXcIJZ|YY z$6?J~Fo`v165ccqzcYqRKryMk>c~d#Ky&XX<3!GMGeqUhwEju27XLHzXK-KFtzk(G z&S?`ClpYP`SloIbt;Th8zyLnc{#R6mglk&>jDjD!v$d$uR7^A+RTMvm_ezy!xqM2! z?%u5f&H3Ig9a|0HycZ#YcpvctjJoZ+r5|-i$ixEfqJh=mb%QOXhkS$Ri8bi8(#sNrj?SjHXIQSCGSSzC-$xPISWzIt-Sm zq7uPU+H1W&=oy0VI&>(IzEXNTj-05}JG^Z-rfFDfo0`<zY@ZH;2-iPJPwkdrKYzhGkYB}L6Um3utr zRltU3U=5D<1jLN#(JRcn3K(kIdQ-^MR4&KKYlG^4t;j{$GhQ~>7-C(J3Fd!sK+(&i z?arXG8Ssl%f6>%GK0l$PQ8z#5IQaKx$X~4qb@;>(W079%7n1=a$NY9q=o&_1^gtuen2qSGJMo^ROGX*9H&xje&su31rn~La%D#O?3qQF zPU<5)0~Q2MXkmTVw}8ikn#v|!o5Eape*WgY?iUAg!$2vSD|%!S^VtyL)!nJi<~D`x z$DQQxJQcoY*M1H#6lFfHP!XzHoA<&Kq~r`bzH4_^oiOVa6x^|{biGiZVOrneV~u@J zpkYbY*A)0&!xa72iv=dlTueXE)@l6sF>lO~f3%07kcXT)DjATs=he6d9(sqZUO9D2 zT+NWiHk$3+^6phb6~Qg2++zcO(mCF1YcqvuLZZ;Mpl4J>v3B-w6KQ}=4UW*UV-bhs z1s^4>SVSxe^jyb}RPV)B}5?00jGK;kr+Y2=J}UceV-8HcQz-^f~i(7|i7 zEKGk={HoyOHE}r&{F5)sb`htB@d`;MZdjf5rRpz(<(?s)-&K^%Rh8PA8XVE*MpMBKcr19nGJYU?kp- zZePTE(qFptmmit)=QiyJtH@>vQpz5iI#fOUPf0}0$4duC>J2NYCw;%uCi@3@<9(GH z;^G=&%6qgU36UjJzMl-Md#?Ay9u%0Dn}?s>O^K&(&wQ(gsXB1F5F68Wr({Ttbzyvh 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 b+>@W*PB%;bScCrE|3g7WMY=-L + + + + + + + + Cascading prune · how the heap eats row groups as it tightens + ORDER BY x DESC LIMIT 10 · one parquet file, 10 row groups + + + + ① heap fills + + ② threshold climbs + + ③ cascading prune at next row-group boundary + + + + + + + + + + value range ↑ + scan time → + + + + threshold + + + + + RG 9 + [90..100) + + + + + RG 8 + [80..90) + + + + + RG 7 + [70..80) + + + + + RG 6 + [60..70) + + + + + RG 5 + [50..60) + + + + + RG 4 + [40..50) + + + + + RG 3 + [30..40) + + + + + RG 2 + [20..30) + + + + + RG 1 + [10..20) + + + + + RG 0 + [0..10) + + + Row group 9 alone fills the heap of size 10, so the threshold rises into its range (≥ 90). + At the next row-group boundary, every remaining row group with max < 90 is pruned in one pass — bytes never fetched. + From e806e69e0103ca439247208f7319bd7c36d16a9a Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:31:47 -0400 Subject: [PATCH 54/79] update --- content/blog/2026-07-05-sort-pushdown.md | 40 ++++++------ content/images/sort-pushdown/desc_walk_rg.png | Bin 110443 -> 0 bytes content/images/sort-pushdown/desc_walk_rg.svg | 61 ++++++++++++++++++ content/images/sort-pushdown/rg_cascade.svg | 28 ++++---- 4 files changed, 96 insertions(+), 33 deletions(-) delete mode 100644 content/images/sort-pushdown/desc_walk_rg.png create mode 100644 content/images/sort-pushdown/desc_walk_rg.svg diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index a299d673..1682fc65 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -113,7 +113,6 @@ The rest of this post walks through each technique in detail. ## How DataFusion Tracks Ordering -EXPLAIN before / after: SortExec eliminated once ordering is Exact The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) optimizer rule classifies each scan below a sort as either `Unsupported`, @@ -152,13 +151,14 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ## The Exact Path: Sort Elimination via Statistics -File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
-*Figure: file reorder by per-file `min/max` puts the file list in range -order without touching file contents.* - DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering (relevant PRs: [apache/datafusion#19064][#19064], and -[apache/datafusion#21182][#21182]). +[apache/datafusion#21182][#21182]) as shown below. + +EXPLAIN before / after: SortExec eliminated once ordering is Exact +*Figure: EXPLAIN output before and after `PushdownSort` eliminates the sort. The `SortExec` is removed and the scan's ordering claim is upgraded to `Exact`.* + + [#19064]: https://github.com/apache/datafusion/pull/19064 [#21182]: https://github.com/apache/datafusion/pull/21182 @@ -179,6 +179,11 @@ files one after another and produce the correct result. surrounding `Sort`. Note this requires some additional performance optimizations described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). +File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
+*Figure: file reorder by per-file `min/max` puts the file list in range +order without touching file contents.* + + Detecting non-overlapping ranges via min/max statistics
*Figure: `PushdownSort` sorts files by `min` and checks adjacency, upgrading to `Exact` only when the ranges don't overlap. Left: non-overlapping @@ -210,14 +215,13 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra It is not possible to eliminate the sort when ordering when the files have overlapping sort key ranges. However, it is still possible to use sorted or -partly sorted data to optimize queries by ordering the read so the data that is -most likely to improve the `TopK` dynamic filter will be seen first and prune -the rest of the data. This is especially important for `LIMIT` queries, where -the `TopK` dynamic filter can be used to prune files, row groups, and rows that -cannot possibly contribute to the final result. - -This `Inexact` path can be used when Parquet min/max statistics are available -and the the sort expression is supported by DataFusion's +partly sorted data to optimize `LIMIT` queries. By reordering ordering the read, +data that is most likely to improve the `TopK` dynamic filter is seen first and +the filter is more effective at pruning files, row groups, and rows that cannot +possibly contribute to the final result. + +This `Inexact` path is used when Parquet min/max statistics are available +and the sort expression is supported by DataFusion's [equivalence-properties][ordering-analysis], including plain columns, monotonic functions[1](#footnote1), constants inferred from filters, and multi-column orderings. The same dynamic filter is used to drive three layers of pruning: @@ -289,21 +293,19 @@ Dynamic row group pruning is especially effective for `LIMIT` queries. For examp through Row Group 0 have `max < 90` the are all pruned out and skipped in a single pass. 4. The scan ends early, having read only one row group instead of all 10. -Note that for the Row Groups that were skipped, no data is fetched nor is any -decoding performed. The `TopK` dynamic filter is evaluated against the - +Note that for the Row Groups that were skipped, no data is fetched nor decoded. This example shows the core benefit provided by runtime row-group dynamic pruning: reading a single row group can cascade-eliminate every remaining row group. - **Row-Group Level Early Stopping**: Even if the row group can not be pruned entirely based on statistics, the dynamic filters can often still rule out all rows after evaluating just the filter columns, avoiding fetching any projection columns. This optimization was added in [apache/datafusion#22450][#22450]. -Row-group-level reorder — filter column still read for every row group before row-group filter early stop
+Row-group-level reorder — filter column still read for every row group before row-group filter early stop
+ *Figure: inside a file, the first row group tightens the threshold — subsequent row groups have their projection columns short-circuited, but the filter column still has to be read to discover that no rows diff --git a/content/images/sort-pushdown/desc_walk_rg.png b/content/images/sort-pushdown/desc_walk_rg.png deleted file mode 100644 index 7bfff55966ad8cc8f92a6e6654447c7885c4b730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110443 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%0D^_Hu3yW3p58ScoEVn9K>gl^{<2{p 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 + + + topk_tpch (TPC-H SF1, ORDER BY … LIMIT 100) — main vs runtime row-group pruning + + + + + + + + + + + + 0 + 10 + 20 + 30 + 40 + 50 + 60 + 70 + Median time (ms, lower is better) + + + main + this PR + this PR — ≥2× faster + + + + + 2.6 + Q1 + + + + + 11.3 + + 3.15× + Q2 + + + + + 32.1 + Q3 + + + + + 12.2 + + 3.78× + Q4 + + + + + 10.1 + Q5 + + + + + 17.9 + Q6 + + + + + 38.1 + Q7 + + + + + 28.6 + + 3.99× + Q8 + + + + + 36.9 + + 4.34× + Q9 + + + + + 55.3 + + 4.25× + Q10 + + + + + 3.7 + Q11 + + + 5 of 11 queries 3–4× faster · 0 regressions · total 248.8 → 139.1 ms (−44%) + From 754da458b9e62b2d8918e7c20a4df1bcfc16d96c Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:50:31 -0400 Subject: [PATCH 56/79] hone --- content/blog/2026-07-05-sort-pushdown.md | 30 ++++++++++-------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index b2a8ae3a..f7c3b3f5 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -111,7 +111,7 @@ The rest of this post walks through each technique in detail. [Apache Parquet]: https://parquet.apache.org/ [ordering-analysis]: https://datafusion.apache.org/blog/2025/03/11/ordering-analysis/ -## How DataFusion Tracks Ordering +## Tracking Ordering The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) @@ -149,7 +149,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; from the most-promising data, so the `TopK` threshold is more likely to tighten quickly and prune the rest with statistics. -## The Exact Path: Sort Elimination via Statistics +## Exact: Sort Elimination via Statistics DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering (relevant PRs: [apache/datafusion#19064][#19064], and @@ -211,7 +211,7 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra - **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. -## The Inexact Path: Scan Reordering makes Dynamic Filters More Effective +## Inexact: Scan Reordering makes Dynamic Filters More Effective It is not possible to eliminate the sort when ordering when the files have overlapping sort key ranges. However, it is still possible to use sorted or @@ -323,8 +323,6 @@ We compare DataFusion 54 with the sort optimizations enabled (the default) and d topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% -Results Summary: - | Metric | Value | | ----------------------------------- | ---------------------------------- | | Total wall-clock (sum of 11 queries) | 248.8 ms → 139.1 ms (**−44%**) | @@ -340,7 +338,7 @@ low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, appears later as a tie-breaker, the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still partially effective. -## Conclusion +## Conclusion and Future Work Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common @@ -349,9 +347,6 @@ DataFusion 54, we implemented several novel optimizations, speeding up several work loads by a factor of 3-4 without slowing down queries for which they don't apply. We hope you enjoy using them and welcome your feedback. - -## Future Work - Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) for reading pages in reverse order. @@ -381,6 +376,13 @@ work. [@2010YOUY01]: https://github.com/2010YOUY01 [@Dandandan]: https://github.com/Dandandan +## Get Involved + +- **Try it out**: Run your `ORDER BY` / `ORDER BY ... LIMIT N` queries on your own data and share what you see. +- **Work on a [good first issue](https://github.com/apache/datafusion/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)**, or pick up one of the [follow-ups](https://github.com/apache/datafusion/issues/23036) listed in the umbrella issue. +- **File issues or join the conversation**: [GitHub](https://github.com/apache/datafusion/) for bugs and feature requests, [Slack or Discord](https://datafusion.apache.org/contributor-guide/communication.html) for discussion. +- Learn more by visiting the [DataFusion](https://datafusion.apache.org/index.html) project page. + ## References Umbrella issue tracking the entire effort: @@ -409,14 +411,8 @@ In flight / open: Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [topk_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). -## Get Involved - -- **Try it out**: Run your `ORDER BY` / `ORDER BY ... LIMIT N` queries on your own data and share what you see. -- **Work on a [good first issue](https://github.com/apache/datafusion/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)**, or pick up one of the [follow-ups](https://github.com/apache/datafusion/issues/23036) listed in the umbrella issue. -- **File issues or join the conversation**: [GitHub](https://github.com/apache/datafusion/) for bugs and feature requests, [Slack or Discord](https://datafusion.apache.org/contributor-guide/communication.html) for discussion. -- Learn more by visiting the [DataFusion](https://datafusion.apache.org/index.html) project page. -### Appendix: Buffering Without Sorting +## Appendix: Buffering Without Sorting SPM stalls when SortExec is removed in multi-partition plans
*Figure: removing the per-partition `SortExec` leaves the top-of-plan @@ -439,7 +435,7 @@ driver role without sorting. -### Appendix: Decoder Loop and Decision Point +## Appendix: Decoder Loop and Decision Point transition() loop: drain, decide, drive — Step 2 is the #22450 addition
*Figure: the decoder loop has three steps. Step 2 (DECIDE) is what From f9a0b57e3f3f185643dcff57c75dcb07af178295 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:56:21 -0400 Subject: [PATCH 57/79] remove redundancy --- content/blog/2026-07-05-sort-pushdown.md | 25 +++++++++++------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index f7c3b3f5..c15ba5c4 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -229,12 +229,11 @@ and multi-column orderings. The same dynamic filter is used to drive three layer Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
*Figure: Three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* -* **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]). - Skips files completely before they're opened -- no Parquet data or metadata I/O is performed. -* **Layer 2 · row-group-level** ([#22450]). Skips row groups completely - at each row-group boundary. No data pages are fetched or decoded. -* **Layer 3 · row-level** ([RowFilter]). Skips decoding remaining *columns* - in a row group if the filter expression is false for all previous rows. +* **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. +* **Layer 2 · row-group-level** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. +* **Layer 3 · row-level** ([RowFilter]) — skips decoding the remaining columns in a surviving row group. + +Each layer is described in detail below. [file_pruner]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html [EarlyStoppingStream]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs @@ -278,9 +277,7 @@ prunes any that cannot contribute to the final result. See the Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
-*Figure: Given a query with `ORDER BY x DESC LIMIT 10`, the row groups are first ordered by -their maximum values and then read sequentially. The first row group is enough to fill the heap, so the threshold jumps into its range (≥ 90). At the next row-group boundary, -every remaining row group with `max < 90` is pruned in one pass.* +*Figure: for `ORDER BY x DESC LIMIT 10`, reading just the first row group can prune all the rest in a single pass (walkthrough below).* For example, consider a file with 10 row groups, each containing rows with values `[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. @@ -298,11 +295,11 @@ This example shows the core benefit provided by runtime row-group dynamic pruning: reading a single row group can cascade-eliminate every remaining row group. -**Row-Group Level Early Stopping**: Even if the row group can not be pruned entirely based on statistics, -the dynamic filters can often still rule out all rows -after evaluating just the filter columns, avoiding fetching any -projection columns. This optimization was added in -[apache/datafusion#22450][#22450]. +**Row-Group Level Early Stopping**: Even if the row group can not be pruned with statistics, +dynamic filters can often rule out all rows +after evaluating just the filter columns. This optimization avoids fetching any +projection columns (added in +[apache/datafusion#22450][#22450]) Row-group-level reorder — filter column still read for every row group before row-group filter early stop
From c92908c93a5002ac58d3bfdeff1fe0a2d6431b5b Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:58:08 -0400 Subject: [PATCH 58/79] remove redundancy --- content/blog/2026-07-05-sort-pushdown.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index c15ba5c4..9fc9d52b 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -240,7 +240,7 @@ Each layer is described in detail below. [RowFilter]: https://docs.rs/parquet/latest/parquet/arrow/arrow_reader/struct.RowFilter.html Once `PushdownSort` determines `Inexact` applies, the Parquet opener reorders -the scan before and during execution using three techniques: +the scan before and during execution using three steps: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
@@ -253,7 +253,7 @@ the scan before and during execution using three techniques: 3. **Iteration reverse** — for queries which want the data in `DESC` order, the file and row group order is reversed. -**File Level Pruning**: once files are ordered "most-promising first", the +**File-Level Pruning**: once files are ordered "most-promising first", the *`TopK`'s heap fills quickly and its dynamic filter threshold tightens. The *[FilePruner] then cuts low-value files before opening them, as shown in the *following example. @@ -262,13 +262,13 @@ the scan before and during execution using three techniques: File-level reorder with early stop via file_pruner
-*Figure: after reordering files by their sort key, low-value files (`file_d` and `file_c`, -where "low-value" means the sort key values are smaller for `ASC` queries) -at the end of the queue are pruned by the file-level pruner before they +*Figure: after reordering files by their sort key, the low-value files (`file_d` and `file_c`, +whose sort-key values are smallest and therefore least promising for this `DESC LIMIT` query) +end up at the tail of the queue and are pruned by the file-level pruner before they are ever opened — no metadata I/O.* -**Row Group Level Pruning**: When a file is first opened, DataFusion prunes -Row Groups based on predicates and statistics and then determines +**Row-Group-Level Pruning**: When a file is first opened, DataFusion prunes +row groups based on predicates and statistics and then determines the order to scan the row groups. During the scan, immediately before DataFusion reads the next row group, it checks if the `TopK` dynamic filter has changed. If so, after [#22450] it checks the remaining row groups against the new threshold and @@ -283,19 +283,19 @@ For example, consider a file with 10 row groups, each containing rows with value `[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. 1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. -2. Row Group 9 (values `[90..100)`) is opened and read, filling +2. Row group 9 (values `[90..100)`) is opened and read, filling the heap with at least 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. 3. At the next row-group boundary, the pruner the dynamic filter has been updated, - and re-evaluates the filter on all remaining row groups. Since Row Group 8 - through Row Group 0 have `max < 90` they are all pruned out and skipped in a single pass. + and re-evaluates the filter on all remaining row groups. Since row group 8 + through row group 0 have `max < 90` they are all pruned out and skipped in a single pass. 4. The scan ends early, having read only one row group instead of all 10. -Note that for the Row Groups that were skipped, no data is fetched nor decoded. +Note that for the row groups that were skipped, no data is fetched nor decoded. This example shows the core benefit provided by runtime row-group dynamic pruning: reading a single row group can cascade-eliminate every remaining row group. -**Row-Group Level Early Stopping**: Even if the row group can not be pruned with statistics, +**Row-Level Early Stopping**: Even if the row group can not be pruned with statistics, dynamic filters can often rule out all rows after evaluating just the filter columns. This optimization avoids fetching any projection columns (added in From d9169f16692cb75d0c676b3f12a86f405a91b771 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 18:00:25 -0400 Subject: [PATCH 59/79] typos --- content/blog/2026-07-05-sort-pushdown.md | 30 ++++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 9fc9d52b..544db727 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -53,10 +53,10 @@ cases make that hard: [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), or the table was not created with DataFusion's [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. -2. Files are individually sorted, but the engine is canning multiple files +2. Files are individually sorted, but the engine is scanning multiple files and does not know a global ordering at plan time. -In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a blocking full +In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a potentially blocking full sort, which buffers every row and dominates latency and peak memory on large scans. @@ -211,11 +211,11 @@ While DataFusion can avoid sorting for all four queries, the benefit is most dra - **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. -## Inexact: Scan Reordering makes Dynamic Filters More Effective +## Inexact: Scan Reordering Makes Dynamic Filters More Effective -It is not possible to eliminate the sort when ordering when the files have +It is not possible to eliminate the sort when the files have overlapping sort key ranges. However, it is still possible to use sorted or -partly sorted data to optimize `LIMIT` queries. By reordering ordering the read, +partly sorted data to optimize `LIMIT` queries. By reordering the read, data that is most likely to improve the `TopK` dynamic filter is seen first and the filter is more effective at pruning files, row groups, and rows that cannot possibly contribute to the final result. @@ -227,7 +227,7 @@ functions[1](#footnote1), constants inferred from filters, and multi-column orderings. The same dynamic filter is used to drive three layers of pruning: Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure: Three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* +*Figure: three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* * **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. * **Layer 2 · row-group-level** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. @@ -244,7 +244,7 @@ the scan before and during execution using three steps: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
-*Figure: the Parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* +*Figure: the Parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* 1. **File-level reorder** — the file list is sorted by `min(col)`, so the most-promising file is picked first across all partitions. @@ -254,9 +254,9 @@ the scan before and during execution using three steps: order, the file and row group order is reversed. **File-Level Pruning**: once files are ordered "most-promising first", the -*`TopK`'s heap fills quickly and its dynamic filter threshold tightens. The -*[FilePruner] then cuts low-value files before opening them, as shown in the -*following example. +`TopK`'s heap fills quickly and its dynamic filter threshold tightens. The +[FilePruner] then cuts low-value files before opening them, as shown in the +following example. [FilePruner]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/pruning/src/file_pruner.rs @@ -282,24 +282,24 @@ prunes any that cannot contribute to the final result. See the For example, consider a file with 10 row groups, each containing rows with values `[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. -1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. +1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. 2. Row group 9 (values `[90..100)`) is opened and read, filling the heap with at least 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. -3. At the next row-group boundary, the pruner the dynamic filter has been updated, +3. At the next row-group boundary, the pruner sees the dynamic filter has been updated and re-evaluates the filter on all remaining row groups. Since row group 8 through row group 0 have `max < 90` they are all pruned out and skipped in a single pass. 4. The scan ends early, having read only one row group instead of all 10. -Note that for the row groups that were skipped, no data is fetched nor decoded. +Note that for the row groups that were skipped, no data is fetched or decoded. This example shows the core benefit provided by runtime row-group dynamic pruning: reading a single row group can cascade-eliminate every remaining row group. -**Row-Level Early Stopping**: Even if the row group can not be pruned with statistics, +**Row-Level Early Stopping**: Even if the row group cannot be pruned with statistics, dynamic filters can often rule out all rows after evaluating just the filter columns. This optimization avoids fetching any projection columns (added in -[apache/datafusion#22450][#22450]) +[apache/datafusion#22450][#22450]). Row-group-level reorder — filter column still read for every row group before row-group filter early stop
From 3bd4135c34835908a2cd9c70548d983c10231f88 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:02:11 -0400 Subject: [PATCH 60/79] updated with related work --- content/blog/2026-07-05-sort-pushdown.md | 129 ++++++++++++++++++++--- 1 file changed, 112 insertions(+), 17 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 544db727..a1fc15fb 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -60,13 +60,20 @@ In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a potentially block sort, which buffers every row and dominates latency and peak memory on large scans. -Min/max statistics used for *predicate* pushdown are well-known and -widely implemented across databases, as covered in [@XiangpengHao]'s -earlier post on [Parquet pruning][parquet-pruning-blog] -and the [Pruning in Snowflake: Working Smarter, Not Harder] paper. -Using them to -*reason about sort order* — deleting redundant sorts and biasing scan -order toward the most-promising data — is less common and what this blog is about. +Min/max statistics for *predicate* pushdown are well-known and widely +implemented across databases, as covered in [@XiangpengHao]'s earlier +post on [Parquet pruning][parquet-pruning-blog]. Using the same +statistics to *reason about sort order* and to prune `ORDER BY ... LIMIT` +(top-k) queries is also increasingly common: the +[Pruning in Snowflake: Working Smarter, Not Harder] paper describes +top-k pruning that keeps the current k-th-best value and +skips micro-partitions whose min/max cannot beat it, and systems such as +ClickHouse, DuckDB, PolarDB, and InfluxDB IOx apply closely related +ideas (see [Related Work](#related-work)). This post describes +these techniques for a general audience, including the less-common case of *discovering* a provable +global sort order from per-file statistics when no ordering was declared, +deleting redundant sorts, and biasing scan order toward the +most-promising data. [Apache Iceberg]: https://iceberg.apache.org/ [@XiangpengHao]: https://github.com/XiangpengHao @@ -89,25 +96,32 @@ where sortedness exists but is **inexact** or not provable up front: - **No** declared ordering at all. - `ORDER BY ... DESC` on ASC-sorted data. -This post covers two novel techniques: +This post describes two primary techniques: 1. **Statistics-based sort elimination** (`Exact`): avoids sorts entirely by - reordering files by min/max statistics to prove a global ordering. + reordering files by min/max statistics to prove a global ordering. This + extends DataFusion's existing statistics-based file-group ordering + ([#9593]) and the classic "disjoint ranges concatenate rather than + merge" idea (see [Related Work](#related-work)) to the case where the + *global* order across files was not known up front. 2. **Runtime reorder and dynamic pruning** (`Inexact`): reorders the scan to read the most-promising data first, then re-checks the `TopK` dynamic filter at file - and row-group boundaries, skipping pruned data before fetching bytes. + and row-group boundaries, skipping pruned data before fetching bytes. This + follows the same runtime-threshold pattern used by Snowflake, ClickHouse, + DuckDB, and PolarDB, applied here at file, row-group, and row granularity. These techniques are implemented in DataFusion and together result in: -- **Sort elimination**: 2×–49× faster on ASC-LIMIT queries where the - file list was in the wrong disk order. -- **Runtime row-group pruning**: 5 of 11 benchmark queries run 3–4× - faster with zero regressions; total runtime drops −44%. +- **Sort elimination**: 2×–49× faster on `ORDER BY ... LIMIT` + queries where the file list was in the wrong disk order. +- **Runtime row-group pruning**: 5 of 11 benchmark queries run ≥2× faster + (up to ~4×) with zero regressions; total runtime drops −44%. The rest of this post walks through each technique in detail. [#22450]: https://github.com/apache/datafusion/pull/22450 [#20839]: https://github.com/apache/datafusion/pull/20839 +[#9593]: https://github.com/apache/datafusion/pull/9593 [Apache Parquet]: https://parquet.apache.org/ [ordering-analysis]: https://datafusion.apache.org/blog/2025/03/11/ordering-analysis/ @@ -151,7 +165,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ## Exact: Sort Elimination via Statistics -DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering +DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering (relevant PRs: [apache/datafusion#19064][#19064], and [apache/datafusion#21182][#21182]) as shown below. @@ -169,16 +183,38 @@ by different jobs. Unless it is careful, a query engine will be forced to use a external sort for a query with `ORDER BY ts`, even when it could simply read the files one after another and produce the correct result. +The `Exact` path has one important precondition: each file must be +*individually* sorted on the key. DataFusion knows this from the declared +ordering (`WITH ORDER` or Parquet `sorting_columns`); statistics alone +cannot establish within-file order. The min/max reasoning below proves +only that concatenating the already-sorted files *in range order* yields +a globally sorted stream. When no per-file ordering is declared, the +`Inexact` path (described next) applies instead. + `PushdownSort` fixes this in three steps at the file-scan node: 1. **Sort the file list by per-file `min`** on the sort column. 2. **Check overlap**: does `file[i].max ≤ file[i+1].min` hold for every adjacent pair? If yes, the sorted file list produces a globally - sorted stream. + sorted stream. (Equal values at a boundary, `file[i].max == file[i+1].min`, + are safe for `ORDER BY key`.) 3. **Upgrade the source's ordering claim to `Exact`** and remove the surrounding `Sort`. Note this requires some additional performance optimizations described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). +This is an instance of what Graefe calls *virtual concatenation*: "two +runs with disjoint key ranges … can together … serve as a single input" +([Graefe, ACM Computing Surveys 2006][graefe2006]). The idea is +well-established — it is stated there in a *survey* (i.e. already common +by 2006), is rooted further back in range-partitioned parallel sort +([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in +LSM "trivial move" compaction (RocksDB/LevelDB). What is less common, and +the focus here, is *discovering* the disjoint ranges from per-file +min/max statistics rather than from a declared partitioning scheme. + +[graefe2006]: https://dl.acm.org/doi/10.1145/1132960.1132964 +[graefe1993]: https://dl.acm.org/doi/10.1145/152610.152611 + File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
*Figure: file reorder by per-file `min/max` puts the file list in range order without touching file contents.* @@ -312,7 +348,7 @@ qualify.* ## Benchmark: topk_tpch For this work, we defined a new [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) -benchmark that runs 11 queries over the TPC-C SF1 data. Each query has +benchmark that runs 11 queries over the TPC-H SF1 data. Each query has `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M distinct values, so per Row Group `min/max` ranges are cleanly disjoint. @@ -335,6 +371,65 @@ low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, appears later as a tie-breaker, the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still partially effective. +## Related Work + +The ideas here build on a long line of research, and several other +systems implement closely related techniques. We summarize the most +relevant prior art so readers can place DataFusion's contribution in +context. + +**Exploiting and proving sort order.** Reasoning about orderings to +eliminate redundant sorts goes back to "interesting orders" in System R +([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by +[Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996] and +[Neumann and Moerkotte (VLDB 2004)][neumann2004]. Those techniques +derive orderings from *schema* — declared keys, indexes, and functional +dependencies — whereas the `Exact` path here derives a provable order +from per-file min/max *statistics*. The underlying "disjoint key ranges +can be concatenated rather than merged" principle is stated as *virtual +concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], is +rooted in range-partitioned parallel sort +([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in +LSM "trivial move" compaction (RocksDB/LevelDB). For *declared* partition +bounds, the same "concatenate, don't merge" optimization appears in +TimescaleDB's OrderedAppend and PostgreSQL's ordered partition scans +(`Append` instead of `MergeAppend`). DataFusion's own [#9593] already +reorders files by min/max to derive an ordering; this post extends that +machinery to *delete* the surrounding sort and to the undeclared-ordering +case. + +**Top-k early termination and threshold pushdown.** Using a running +threshold to stop early is rooted in [Fagin's Threshold Algorithm +(PODS 2001)][fagin2001], with access scheduling for faster convergence +explored in [IO-Top-k (VLDB 2006)][iotopk2006]; see +[Ilyas et al. (ACM Computing Surveys 2008)][ilyas2008] for a survey. +Pushing a *live* top-k boundary value into a columnar scan to skip blocks +via min/max is described for Snowflake in +[Pruning in Snowflake: Working Smarter, Not Harder] and ships in +ClickHouse (granule-level top-N skipping), DuckDB (dynamic Top-N table +filters), PolarDB-IMCI (self-sharpening runtime filters), and InfluxDB +IOx (`ProgressiveEvalExec`). DataFusion's earlier +[dynamic filters post][dyn-filters-blog] credits several of these. The +contribution here is an open-source, engine-agnostic implementation that +drives file-, row-group-, and (planned) page-level pruning from the same +`TopK` dynamic filter, together with runtime scan reordering. + +**Reverse scans and data skipping.** Reading physically-ordered data in +reverse to satisfy `DESC ... LIMIT` is long-standing in traditional +databases (backward/descending index scans in PostgreSQL and Oracle); the +step here is applying it to file and row-group order inside a columnar +reader. Min/max block skipping itself originates with +[Small Materialized Aggregates (Moerkotte, VLDB 1998)][sma1998] and is +now ubiquitous as zone maps, BRIN indexes, and Parquet/ORC statistics. + +[selinger1979]: https://dl.acm.org/doi/10.1145/582095.582099 +[simmen1996]: https://dl.acm.org/doi/10.1145/233269.233320 +[neumann2004]: https://www.vldb.org/conf/2004/RS24P3.PDF +[fagin2001]: https://arxiv.org/abs/cs/0204046 +[iotopk2006]: https://www.vldb.org/conf/2006/p475-bast.pdf +[ilyas2008]: https://dl.acm.org/doi/10.1145/1391729.1391730 +[sma1998]: https://www.vldb.org/conf/1998/p476.pdf + ## Conclusion and Future Work Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is From 07575fe767bc9507df576b4912cc730bd381b62f Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:06:59 -0400 Subject: [PATCH 61/79] cit --- content/blog/2026-07-05-sort-pushdown.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index a1fc15fb..b58c1c7b 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -374,9 +374,7 @@ so `Layer 3` (row-level) is still partially effective. ## Related Work The ideas here build on a long line of research, and several other -systems implement closely related techniques. We summarize the most -relevant prior art so readers can place DataFusion's contribution in -context. +systems implement closely related techniques. **Exploiting and proving sort order.** Reasoning about orderings to eliminate redundant sorts goes back to "interesting orders" in System R @@ -384,9 +382,8 @@ eliminate redundant sorts goes back to "interesting orders" in System R [Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996] and [Neumann and Moerkotte (VLDB 2004)][neumann2004]. Those techniques derive orderings from *schema* — declared keys, indexes, and functional -dependencies — whereas the `Exact` path here derives a provable order -from per-file min/max *statistics*. The underlying "disjoint key ranges -can be concatenated rather than merged" principle is stated as *virtual +dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges +rather than merging principle is described as *virtual concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], is rooted in range-partitioned parallel sort ([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in @@ -399,7 +396,7 @@ machinery to *delete* the surrounding sort and to the undeclared-ordering case. **Top-k early termination and threshold pushdown.** Using a running -threshold to stop early is rooted in [Fagin's Threshold Algorithm +threshold to stop early is described in [Fagin's Threshold Algorithm (PODS 2001)][fagin2001], with access scheduling for faster convergence explored in [IO-Top-k (VLDB 2006)][iotopk2006]; see [Ilyas et al. (ACM Computing Surveys 2008)][ilyas2008] for a survey. @@ -409,10 +406,7 @@ via min/max is described for Snowflake in ClickHouse (granule-level top-N skipping), DuckDB (dynamic Top-N table filters), PolarDB-IMCI (self-sharpening runtime filters), and InfluxDB IOx (`ProgressiveEvalExec`). DataFusion's earlier -[dynamic filters post][dyn-filters-blog] credits several of these. The -contribution here is an open-source, engine-agnostic implementation that -drives file-, row-group-, and (planned) page-level pruning from the same -`TopK` dynamic filter, together with runtime scan reordering. +[dynamic filters post][dyn-filters-blog] credits several of these. **Reverse scans and data skipping.** Reading physically-ordered data in reverse to satisfy `DESC ... LIMIT` is long-standing in traditional @@ -420,7 +414,7 @@ databases (backward/descending index scans in PostgreSQL and Oracle); the step here is applying it to file and row-group order inside a columnar reader. Min/max block skipping itself originates with [Small Materialized Aggregates (Moerkotte, VLDB 1998)][sma1998] and is -now ubiquitous as zone maps, BRIN indexes, and Parquet/ORC statistics. +now ubiquitous as zone maps and Parquet statistics. [selinger1979]: https://dl.acm.org/doi/10.1145/582095.582099 [simmen1996]: https://dl.acm.org/doi/10.1145/233269.233320 From f913317393fed174d03690645b6a47e9fcb895be Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:18:39 -0400 Subject: [PATCH 62/79] move --- content/blog/2026-07-05-sort-pushdown.md | 110 ++++++++++++----------- 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index b58c1c7b..ac169a0c 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -371,66 +371,14 @@ low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, appears later as a tie-breaker, the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still partially effective. -## Related Work - -The ideas here build on a long line of research, and several other -systems implement closely related techniques. - -**Exploiting and proving sort order.** Reasoning about orderings to -eliminate redundant sorts goes back to "interesting orders" in System R -([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by -[Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996] and -[Neumann and Moerkotte (VLDB 2004)][neumann2004]. Those techniques -derive orderings from *schema* — declared keys, indexes, and functional -dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges -rather than merging principle is described as *virtual -concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], is -rooted in range-partitioned parallel sort -([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in -LSM "trivial move" compaction (RocksDB/LevelDB). For *declared* partition -bounds, the same "concatenate, don't merge" optimization appears in -TimescaleDB's OrderedAppend and PostgreSQL's ordered partition scans -(`Append` instead of `MergeAppend`). DataFusion's own [#9593] already -reorders files by min/max to derive an ordering; this post extends that -machinery to *delete* the surrounding sort and to the undeclared-ordering -case. - -**Top-k early termination and threshold pushdown.** Using a running -threshold to stop early is described in [Fagin's Threshold Algorithm -(PODS 2001)][fagin2001], with access scheduling for faster convergence -explored in [IO-Top-k (VLDB 2006)][iotopk2006]; see -[Ilyas et al. (ACM Computing Surveys 2008)][ilyas2008] for a survey. -Pushing a *live* top-k boundary value into a columnar scan to skip blocks -via min/max is described for Snowflake in -[Pruning in Snowflake: Working Smarter, Not Harder] and ships in -ClickHouse (granule-level top-N skipping), DuckDB (dynamic Top-N table -filters), PolarDB-IMCI (self-sharpening runtime filters), and InfluxDB -IOx (`ProgressiveEvalExec`). DataFusion's earlier -[dynamic filters post][dyn-filters-blog] credits several of these. - -**Reverse scans and data skipping.** Reading physically-ordered data in -reverse to satisfy `DESC ... LIMIT` is long-standing in traditional -databases (backward/descending index scans in PostgreSQL and Oracle); the -step here is applying it to file and row-group order inside a columnar -reader. Min/max block skipping itself originates with -[Small Materialized Aggregates (Moerkotte, VLDB 1998)][sma1998] and is -now ubiquitous as zone maps and Parquet statistics. - -[selinger1979]: https://dl.acm.org/doi/10.1145/582095.582099 -[simmen1996]: https://dl.acm.org/doi/10.1145/233269.233320 -[neumann2004]: https://www.vldb.org/conf/2004/RS24P3.PDF -[fagin2001]: https://arxiv.org/abs/cs/0204046 -[iotopk2006]: https://www.vldb.org/conf/2006/p475-bast.pdf -[ilyas2008]: https://dl.acm.org/doi/10.1145/1391729.1391730 -[sma1998]: https://www.vldb.org/conf/1998/p476.pdf ## Conclusion and Future Work Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common in time-series, partitioned tables, and ingestion-ordered event logs. In -DataFusion 54, we implemented several novel optimizations, speeding up several -work loads by a factor of 3-4 without slowing down queries for which they don't +DataFusion 54, we implemented several optimizations, speeding up the target +workloads by a factor of 3-4 without slowing down queries for which they don't apply. We hope you enjoy using them and welcome your feedback. Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort @@ -469,6 +417,60 @@ work. - **File issues or join the conversation**: [GitHub](https://github.com/apache/datafusion/) for bugs and feature requests, [Slack or Discord](https://datafusion.apache.org/contributor-guide/communication.html) for discussion. - Learn more by visiting the [DataFusion](https://datafusion.apache.org/index.html) project page. +## Related Work + +The ideas in this blog build on a long line of research, and several other +systems implement closely related techniques. + +**Exploiting and proving sort order.** Reasoning about orderings to +eliminate redundant sorts goes back to "interesting orders" in System R +([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by +[Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996]. Those techniques +derive orderings from *schema* — declared keys, indexes, and functional +dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges +rather than merging is described as *virtual +concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], and is mirrored in +LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For *declared* partition +bounds, the "concatenate, don't merge" optimization appears in +[TimescaleDB's OrderedAppend][timescale-append] and [PostgreSQL's ordered partition scans][pg-append]. + +**Top-k early termination and threshold pushdown.** Using a running +threshold to stop early is described in [Fagin's Threshold Algorithm +(PODS 2001)][fagin2001], with index choice for faster convergence +explored in [IO-Top-k (VLDB 2006)][iotopk2006]; see +[Ilyas et al. (ACM Computing Surveys 2008)][ilyas2008] for a survey. +Pushing a *live* top-k boundary value into a columnar scan to skip blocks +via min/max is described for Snowflake in +[Pruning in Snowflake: Working Smarter, Not Harder] and ships in +[ClickHouse][ch-topn] (granule-level top-N skipping), [DuckDB][duckdb-topn] +(dynamic Top-N table filters), [PolarDB-IMCI][polardb-topk] (self-sharpening +runtime filters), and InfluxDB IOx ([`ProgressiveEvalExec`][iox-progressive]). + +**Reverse scans and data skipping.** Reading physically-ordered data in +reverse to satisfy `DESC ... LIMIT` is a well known technique in traditional +databases (backward/descending index scans in [PostgreSQL][pg-backward] and [Oracle][oracle-backward]). +Min/max block skipping itself originates with +[Small Materialized Aggregates (Moerkotte, VLDB 1998)][sma1998] and is +now ubiquitous across columnar storage formats and query engines. + +[selinger1979]: https://dl.acm.org/doi/10.1145/582095.582099 +[simmen1996]: https://dl.acm.org/doi/10.1145/233269.233320 +[neumann2004]: https://www.vldb.org/conf/2004/RS24P3.PDF +[fagin2001]: https://arxiv.org/abs/cs/0204046 +[iotopk2006]: https://www.vldb.org/conf/2006/p475-bast.pdf +[ilyas2008]: https://dl.acm.org/doi/10.1145/1391729.1391730 +[sma1998]: https://www.vldb.org/conf/1998/p476.pdf +[rocksdb-trivial]: https://github.com/facebook/rocksdb/wiki/Compaction-Trivial-Move +[timescale-append]: https://www.tigerdata.com/blog/ordered-append-postgresql-optimization +[pg-append]: https://www.postgresql.org/message-id/2401607.SfZhPQhbS4@ronan_laptop +[pg-backward]: https://www.postgresql.org/docs/current/indexes-ordering.html +[oracle-backward]: https://docs.oracle.com/en/database/oracle/oracle-database/19/tgsql/optimizer-access-paths.html +[ch-topn]: https://clickhouse.com/blog/clickhouse-top-n-queries-granule-level-data-skipping +[duckdb-topn]: https://duckdb.org/2024/10/25/topn +[polardb-topk]: https://www.alibabacloud.com/blog/how-does-the-imci-of-polardb-for-mysql-achieve-ultimate-topk-query-performance_600006 +[iox-progressive]: https://www.influxdata.com/blog/query-optimization-progressive-evaluation-influxdb/ + + ## References Umbrella issue tracking the entire effort: From 7a2cfbf76395240c6c02ae04a7b5b56caa5fd516 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:26:24 -0400 Subject: [PATCH 63/79] cleanup --- content/blog/2026-07-05-sort-pushdown.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index ac169a0c..b59a47d1 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -112,7 +112,7 @@ This post describes two primary techniques: These techniques are implemented in DataFusion and together result in: -- **Sort elimination**: 2×–49× faster on `ORDER BY ... LIMIT` +- **Sort elimination**: 2×–49× faster on `ORDER BY` and `ORDER BY ... LIMIT` queries where the file list was in the wrong disk order. - **Runtime row-group pruning**: 5 of 11 benchmark queries run ≥2× faster (up to ~4×) with zero regressions; total runtime drops −44%. @@ -120,9 +120,7 @@ These techniques are implemented in DataFusion and together result in: The rest of this post walks through each technique in detail. [#22450]: https://github.com/apache/datafusion/pull/22450 -[#20839]: https://github.com/apache/datafusion/pull/20839 [#9593]: https://github.com/apache/datafusion/pull/9593 -[Apache Parquet]: https://parquet.apache.org/ [ordering-analysis]: https://datafusion.apache.org/blog/2025/03/11/ordering-analysis/ ## Tracking Ordering @@ -152,7 +150,7 @@ and keep the sort), or `Unsupported` (the sort stays).* For example, given a query that returns the 10 most recent trades: ```sql -SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; +SELECT ts, symbol, amount FROM trades ORDER BY ts LIMIT 10; ``` - With no ordering knowledge, DataFusion scans everything and uses a @@ -208,7 +206,7 @@ runs with disjoint key ranges … can together … serve as a single input" well-established — it is stated there in a *survey* (i.e. already common by 2006), is rooted further back in range-partitioned parallel sort ([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in -LSM "trivial move" compaction (RocksDB/LevelDB). What is less common, and +LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). What is less common, and the focus here, is *discovering* the disjoint ranges from per-file min/max statistics rather than from a declared partitioning scheme. @@ -244,7 +242,7 @@ as follows: While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: -- **Full-scan queries (Q1, Q3)** result in a ~2 speedup as the scan is now a single-pass streaming read. +- **Full-scan queries (Q1, Q3)** result in a ~2x speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. ## Inexact: Scan Reordering Makes Dynamic Filters More Effective @@ -301,7 +299,7 @@ following example. *Figure: after reordering files by their sort key, the low-value files (`file_d` and `file_c`, whose sort-key values are smallest and therefore least promising for this `DESC LIMIT` query) end up at the tail of the queue and are pruned by the file-level pruner before they -are ever opened — no metadata I/O.* +are ever opened.* **Row-Group-Level Pruning**: When a file is first opened, DataFusion prunes row groups based on predicates and statistics and then determines @@ -347,7 +345,7 @@ qualify.* ## Benchmark: topk_tpch -For this work, we defined a new [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) +For this work, we defined a new [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark that runs 11 queries over the TPC-H SF1 data. Each query has `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M @@ -404,7 +402,6 @@ work. `ts DESC`, reversing that ordering gives `ts ASC`, which can satisfy `date_trunc('day', ts) ASC`. -[@alamb]: https://github.com/alamb [@adriangb]: https://github.com/adriangb [@xudong963]: https://github.com/xudong963 [@2010YOUY01]: https://github.com/2010YOUY01 @@ -427,7 +424,7 @@ eliminate redundant sorts goes back to "interesting orders" in System R ([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by [Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996]. Those techniques derive orderings from *schema* — declared keys, indexes, and functional -dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges +dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges rather than merging is described as *virtual concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], and is mirrored in LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For *declared* partition @@ -455,7 +452,6 @@ now ubiquitous across columnar storage formats and query engines. [selinger1979]: https://dl.acm.org/doi/10.1145/582095.582099 [simmen1996]: https://dl.acm.org/doi/10.1145/233269.233320 -[neumann2004]: https://www.vldb.org/conf/2004/RS24P3.PDF [fagin2001]: https://arxiv.org/abs/cs/0204046 [iotopk2006]: https://www.vldb.org/conf/2006/p475-bast.pdf [ilyas2008]: https://dl.acm.org/doi/10.1145/1391729.1391730 From 1279880bb5c6f2ef09fcdf94362d50deacbe3357 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:31:46 -0400 Subject: [PATCH 64/79] more --- content/blog/2026-07-05-sort-pushdown.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index b59a47d1..7ae7b178 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -150,12 +150,12 @@ and keep the sort), or `Unsupported` (the sort stays).* For example, given a query that returns the 10 most recent trades: ```sql -SELECT ts, symbol, amount FROM trades ORDER BY ts LIMIT 10; +SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ``` - With no ordering knowledge, DataFusion scans everything and uses a `TopK` heap to keep the running best 10. -- With **`Exact`** ordering, DataFusion drops the sort entirely and +- With **`Exact`** ordering knowledge, DataFusion drops the sort entirely and stops reading after emitting 10 rows. - With **`Inexact`** ordering, the `SortExec` stays but scans start from the most-promising data, so the `TopK` threshold is more likely to @@ -163,7 +163,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts LIMIT 10; ## Exact: Sort Elimination via Statistics -DataFusion can also eliminate sorts when it can use Parquet min/max statistics to reorder files and prove global ordering +DataFusion can eliminate sorts entirely when it can use Parquet min/max statistics to reorder files and prove global ordering (relevant PRs: [apache/datafusion#19064][#19064], and [apache/datafusion#21182][#21182]) as shown below. @@ -238,7 +238,9 @@ as follows: | Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | | Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | -*Figure: `sort_pushdown` results. Note `ASC` queries with the file list reversed against sort-key ranges.* +*Figure: `sort_pushdown` results. All four are `ASC` `ORDER BY` queries where the +file list on disk is in the reverse of sort-key order, so a naive engine sorts even +though the files are already individually sorted.* While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: @@ -343,16 +345,17 @@ but the filter column still has to be read to discover that no rows qualify.* -## Benchmark: topk_tpch +## Benchmark: sort_tpch with LIMIT 100 -For this work, we defined a new [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) -benchmark that runs 11 queries over the TPC-H SF1 data. Each query has +For this work, we ran DataFusion's +[`sort_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) +benchmark that runs 11 queries over the TPC-H SF1 data, each with `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M distinct values, so per Row Group `min/max` ranges are cleanly disjoint. We compare DataFusion 54 with the sort optimizations enabled (the default) and disabled. -topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% +sort_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% | Metric | Value | | ----------------------------------- | ---------------------------------- | @@ -493,7 +496,7 @@ In flight / open: * Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) -Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [topk_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). +Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) (run with `--limit 100`). ## Appendix: Buffering Without Sorting From ac27fd867cfbd8f7326d119c166ecfdca1130d1d Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 20:39:32 -0400 Subject: [PATCH 65/79] update --- content/blog/2026-07-05-sort-pushdown.md | 39 ++++++++++++------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 7ae7b178..7023caf2 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -39,8 +39,8 @@ by [dynamic filters][dyn-filters-blog] make that possible. ## Are Real Datasets Sorted? -Resorting data is prohibitively expensive for many workloads so fully sorting is often -not practical. +Sorting data is prohibitively expensive for many workloads, so maintaining it in fully +sorted order is often not practical. However, many real datasets are at least partly sorted when stored: time-series files by ingestion time, event logs by event id, partitioned tables by partition key, and @@ -163,7 +163,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ## Exact: Sort Elimination via Statistics -DataFusion can eliminate sorts entirely when it can use Parquet min/max statistics to reorder files and prove global ordering +DataFusion can eliminate sorts entirely when it can use Parquet min/max statistics to reorder files and prove a global ordering (relevant PRs: [apache/datafusion#19064][#19064], and [apache/datafusion#21182][#21182]) as shown below. @@ -229,7 +229,7 @@ We measured statistics-based sort elimination with DataFusion's forcing execution to a single core using `--partitions 1`. The results are as follows: -Sort pushdown benchmark: 2x-49x speedup across four queries
+Sort pushdown benchmark: 2×–49× speedup across four queries
| Query | Before | After | Speedup | | ------------------------------------------- | -------:| -------:| -------: | @@ -244,8 +244,8 @@ though the files are already individually sorted.* While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: -- **Full-scan queries (Q1, Q3)** result in a ~2x speedup as the scan is now a single-pass streaming read. -- **`LIMIT` queries (Q2, Q4)** result in 27x-49x speedup because `LIMIT N` turns into a streaming read with early stopping. +- **Full-scan queries (Q1, Q3)** result in a ~2× speedup as the scan is now a single-pass streaming read. +- **`LIMIT` queries (Q2, Q4)** result in a 27×–49× speedup because `LIMIT N` turns into a streaming read with early stopping. ## Inexact: Scan Reordering Makes Dynamic Filters More Effective @@ -286,7 +286,7 @@ the scan before and during execution using three steps: so the most-promising file is picked first across all partitions. 2. **Row-group-level reorder** — once a file is opened, its row groups are sorted by `min(col)`. -3. **Iteration reverse** — for queries which want the data in `DESC` +3. **Iteration reverse** — for queries that want the data in `DESC` order, the file and row group order is reversed. **File-Level Pruning**: once files are ordered "most-promising first", the @@ -345,17 +345,17 @@ but the filter column still has to be read to discover that no rows qualify.* -## Benchmark: sort_tpch with LIMIT 100 +## Benchmark: sort_tpch For this work, we ran DataFusion's [`sort_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark that runs 11 queries over the TPC-H SF1 data, each with `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M -distinct values, so per Row Group `min/max` ranges are cleanly disjoint. +distinct values, so per-row-group `min/max` ranges are cleanly disjoint. We compare DataFusion 54 with the sort optimizations enabled (the default) and disabled. -sort_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% +sort_tpch benchmark results: 5 of 11 queries ≥2× faster (up to ~4×), 0 regressions, total -44% | Metric | Value | | ----------------------------------- | ---------------------------------- | @@ -368,7 +368,7 @@ The five queries which improved use `l_orderkey` as the **first** sort key colum `Layer 2` (row group pruning) can cascade-prune aggressively. The other queries have multi-column sorts with low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, -`l_shipmode`), whose per-Row Group ranges overlap heavily. Even when `l_orderkey` +`l_shipmode`), whose per-row-group ranges overlap heavily. Even when `l_orderkey` appears later as a tie-breaker, the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still partially effective. @@ -379,10 +379,10 @@ Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common in time-series, partitioned tables, and ingestion-ordered event logs. In DataFusion 54, we implemented several optimizations, speeding up the target -workloads by a factor of 3-4 without slowing down queries for which they don't +workloads by up to ~4× without slowing down queries for which they don't apply. We hope you enjoy using them and welcome your feedback. -Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort +Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) for reading pages in reverse order. We are also considering implementing Page-level dynamic pruning at @@ -427,11 +427,10 @@ eliminate redundant sorts goes back to "interesting orders" in System R ([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by [Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996]. Those techniques derive orderings from *schema* — declared keys, indexes, and functional -dependencies — whereas we use per-file min/max *statistics*. Concatenating disjoint key ranges -rather than merging is described as *virtual -concatenation* by [Graefe (ACM Computing Surveys 2006)][graefe2006], and is mirrored in -LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For *declared* partition -bounds, the "concatenate, don't merge" optimization appears in +dependencies — whereas we derive them from per-file min/max *statistics* +(the *virtual concatenation* idea discussed +[above](#exact-sort-elimination-via-statistics)). For *declared* partition +bounds, the same "concatenate, don't merge" optimization appears in [TimescaleDB's OrderedAppend][timescale-append] and [PostgreSQL's ordered partition scans][pg-append]. **Top-k early termination and threshold pushdown.** Using a running @@ -447,7 +446,7 @@ via min/max is described for Snowflake in runtime filters), and InfluxDB IOx ([`ProgressiveEvalExec`][iox-progressive]). **Reverse scans and data skipping.** Reading physically-ordered data in -reverse to satisfy `DESC ... LIMIT` is a well known technique in traditional +reverse to satisfy `DESC ... LIMIT` is a well-known technique in traditional databases (backward/descending index scans in [PostgreSQL][pg-backward] and [Oracle][oracle-backward]). Min/max block skipping itself originates with [Small Materialized Aggregates (Moerkotte, VLDB 1998)][sma1998] and is @@ -496,7 +495,7 @@ In flight / open: * Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) -Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) (run with `--limit 100`). +Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). ## Appendix: Buffering Without Sorting From 16669523ac93d1c092394b7ad600fbbf651f2df6 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 17 Jul 2026 11:09:54 +0800 Subject: [PATCH 66/79] small tweaks to alamb edits: #22450 attribution + DF version + alt-text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Row-Level Early Stopping (line ~334): attribute the "skip projection column fetch" behavior to arrow-rs `RowFilter` (which is where it actually lives) and clarify that #22450's role is keeping the threshold up-to-date at RG boundaries so this fires more often. - Conclusion: replace "In DataFusion 54, we implemented" with "Over the last few DataFusion releases" — #22450 merged after 54.0.0 was tagged and will ship in a later release. - Decision-tree figure alt-text: `try_pushdown_sort` -> `PushdownSort` to match the struct name used in the surrounding prose. --- content/blog/2026-07-05-sort-pushdown.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 7023caf2..0ad4922f 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -142,7 +142,7 @@ optimizer rule classifies each scan below a sort as either `Unsupported`, data whose min/max cannot beat the threshold is pruned before it is fully read. -try_pushdown_sort decision tree: Exact, Inexact, or Unsupported
+PushdownSort decision tree: Exact, Inexact, or Unsupported
*Figure: the `PushdownSort` rule asks each scan whether it can satisfy the required ordering, returning `Exact` (drop the sort), `Inexact` (bias the scan and keep the sort), or `Unsupported` (the sort stays).* @@ -331,11 +331,11 @@ This example shows the core benefit provided by runtime row-group dynamic pruning: reading a single row group can cascade-eliminate every remaining row group. -**Row-Level Early Stopping**: Even if the row group cannot be pruned with statistics, -dynamic filters can often rule out all rows -after evaluating just the filter columns. This optimization avoids fetching any -projection columns (added in -[apache/datafusion#22450][#22450]). +**Row-Level Early Stopping**: Even if the row group cannot be pruned with statistics, +the tightened dynamic filter often rules out all rows after evaluating just the +filter columns. When it does, arrow-rs's `RowFilter` skips fetching the projection +columns for that row group entirely. [#22450][#22450] makes this fire more often +by keeping the threshold up-to-date at every row-group boundary. Row-group-level reorder — filter column still read for every row group before row-group filter early stop
@@ -377,10 +377,10 @@ so `Layer 3` (row-level) is still partially effective. Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common -in time-series, partitioned tables, and ingestion-ordered event logs. In -DataFusion 54, we implemented several optimizations, speeding up the target -workloads by up to ~4× without slowing down queries for which they don't -apply. We hope you enjoy using them and welcome your feedback. +in time-series, partitioned tables, and ingestion-ordered event logs. Over the +last few DataFusion releases we implemented several optimizations that speed +these workloads up by up to ~4× without slowing down queries for which they +don't apply. We hope you enjoy using them and welcome your feedback. Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) From a83fdea463be0cd73c60f89a3e5d0c0dd5944bad Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 17 Jul 2026 12:05:49 +0800 Subject: [PATCH 67/79] add link to raw sort_tpch benchmark numbers (addresses alamb review) --- content/blog/2026-07-05-sort-pushdown.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 0ad4922f..782bbff8 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -364,6 +364,10 @@ We compare DataFusion 54 with the sort optimizations enabled (the default) and d | Queries with regression | **0** | | Best single-query speedup | **~4×** | +*Per-query raw numbers are available in the [#22450 benchmark run][topk-tpch-raw].* + +[topk-tpch-raw]: https://github.com/apache/datafusion/pull/22450#issuecomment-4765161078 + The five queries which improved use `l_orderkey` as the **first** sort key column, so `Layer 2` (row group pruning) can cascade-prune aggressively. The other queries have multi-column sorts with From 994da14329993b5188a39141a2aa1bac43eecfb3 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 17 Jul 2026 13:34:07 +0800 Subject: [PATCH 68/79] move merged arrow-rs#10158 to Major PRs; clarify #23067 uses it --- content/blog/2026-07-05-sort-pushdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 782bbff8..bdf86212 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -490,13 +490,13 @@ Major PRs: * Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) * Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) * **Runtime row-group dynamic pruning ([#22450])** — the centerpiece of this post. +* `peek_next_row_group` API (arrow-rs): [apache/arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) — enables per-RG `fully_matched` RowFilter skip. In flight / open: * Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) -* `peek_next_row_group` API for per-RG `fully_matched` RowFilter skip (arrow-rs): [apache/arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) +* Per-RG `fully_matched` RowFilter skip on top of [#22450] (uses arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Page-level dynamic prune at RG boundary: [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216) -* Per-RG `fully_matched` RowFilter skip on top of [#22450] (blocked on arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) * Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). From 71133a67d273ec78ef4257c404f367c6d2b1e684 Mon Sep 17 00:00:00 2001 From: Qi Zhu <821684824@qq.com> Date: Fri, 17 Jul 2026 13:36:12 +0800 Subject: [PATCH 69/79] chore: update publish date to 2026-07-20 --- .../{2026-07-05-sort-pushdown.md => 2026-07-20-sort-pushdown.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename content/blog/{2026-07-05-sort-pushdown.md => 2026-07-20-sort-pushdown.md} (100%) diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md similarity index 100% rename from content/blog/2026-07-05-sort-pushdown.md rename to content/blog/2026-07-20-sort-pushdown.md From 6ff7cd76bab312423f46bb8236fef38e382f6371 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:09:16 -0400 Subject: [PATCH 70/79] update date, fix bold --- content/blog/2026-07-20-sort-pushdown.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index bdf86212..e81ca3bb 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -1,7 +1,7 @@ --- layout: post title: Optimizing for Almost Sorted Data: Sort Pushdown in Apache DataFusion -date: 2026-07-05 +date: 2026-07-20 author: Qi Zhu and Andrew Lamb categories: [performance] --- @@ -29,8 +29,8 @@ limitations under the License. *[Qi Zhu](https://github.com/zhuqi-lucas) ([Massive](https://www.massive.com/)); [Andrew Lamb](https://github.com/alamb) ([InfluxData](https://www.influxdata.com/))* -**[Apache DataFusion] uses sortedness automatically — even when data is only -partially sorted or when no ordering was declared.** This post explains how +[Apache DataFusion] uses sortedness automatically — even when data is only +partially sorted or when no ordering was declared. This post explains how plan-time sort pushdown, runtime scan reordering, and row-group pruning driven by [dynamic filters][dyn-filters-blog] make that possible. From a0f953d5b6d487ad78265a5aa03083d3888c5639 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:13:40 -0400 Subject: [PATCH 71/79] wordsmith --- content/blog/2026-07-20-sort-pushdown.md | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index e81ca3bb..9f9ee786 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -41,7 +41,6 @@ by [dynamic filters][dyn-filters-blog] make that possible. Sorting data is prohibitively expensive for many workloads, so maintaining it in fully sorted order is often not practical. - However, many real datasets are at least partly sorted when stored: time-series files by ingestion time, event logs by event id, partitioned tables by partition key, and data lakes based on [Apache Iceberg] and similar formats in write order. @@ -56,22 +55,19 @@ cases make that hard: 2. Files are individually sorted, but the engine is scanning multiple files and does not know a global ordering at plan time. -In both cases, `ORDER BY` or `ORDER BY ... LIMIT N` pays for a potentially blocking full -sort, which buffers every row and dominates latency and peak memory on large -scans. +In both cases, queries with `ORDER BY` or `ORDER BY ... LIMIT N` pay for a full +scan and sometimes a blocking full sort, which buffers every row and can +dominate latency and peak memory on large scans. -Min/max statistics for *predicate* pushdown are well-known and widely -implemented across databases, as covered in [@XiangpengHao]'s earlier +Using Min/max statistics for *predicate* pushdown is well-known and widely +implemented across databases, as covered in [@XiangpengHao]'s post on [Parquet pruning][parquet-pruning-blog]. Using the same statistics to *reason about sort order* and to prune `ORDER BY ... LIMIT` -(top-k) queries is also increasingly common: the -[Pruning in Snowflake: Working Smarter, Not Harder] paper describes -top-k pruning that keeps the current k-th-best value and -skips micro-partitions whose min/max cannot beat it, and systems such as -ClickHouse, DuckDB, PolarDB, and InfluxDB IOx apply closely related -ideas (see [Related Work](#related-work)). This post describes -these techniques for a general audience, including the less-common case of *discovering* a provable -global sort order from per-file statistics when no ordering was declared, +(top-k) queries is also increasingly common, for example in the +[Pruning in Snowflake: Working Smarter, Not Harder] (see [Related Work](#related-work) for more). +This post describes more of +these techniques for a general audience, including the less-common case of *discovering* a +global sort order from per-file statistics, deleting redundant sorts, and biasing scan order toward the most-promising data. From c7c860cfc055e73e32df16417ddb59cc68a065b8 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:19:15 -0400 Subject: [PATCH 72/79] wordsmith --- content/blog/2026-07-20-sort-pushdown.md | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 9f9ee786..9396b1d9 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -79,12 +79,12 @@ most-promising data. ## Exact vs. Inexact Ordering DataFusion has long skipped sorts when it knows the data is **exactly** sorted, as covered in -[@akurmustafa's earlier post on ordering analysis][ordering-analysis]: +[@akurmustafa's earlier post][ordering-analysis]: if the table declares an ordering (via `WITH ORDER` or Parquet `sorting_columns`) and the file listing matches it, the redundant sort is removed. -This post is about **everything else** — the messier real-world cases -where sortedness exists but is **inexact** or not provable up front: +This post is about messier real-world cases +where sortedness exists but is *inexact* or not provable up front: - Files listed in the "wrong" order on disk (each file is internally sorted, but the files are not globally ordered). @@ -95,14 +95,13 @@ where sortedness exists but is **inexact** or not provable up front: This post describes two primary techniques: 1. **Statistics-based sort elimination** (`Exact`): avoids sorts entirely by - reordering files by min/max statistics to prove a global ordering. This + reordering files by min/max statistics to create a global ordering. This extends DataFusion's existing statistics-based file-group ordering - ([#9593]) and the classic "disjoint ranges concatenate rather than - merge" idea (see [Related Work](#related-work)) to the case where the - *global* order across files was not known up front. + ([#9593]) and is similar to prior work for concatenating disjoint ranges rather than + merging them (see [Related Work](#related-work)). 2. **Runtime reorder and dynamic pruning** (`Inexact`): reorders the scan to read the most-promising data first, then re-checks the `TopK` dynamic filter at file - and row-group boundaries, skipping pruned data before fetching bytes. This + and row-group boundaries. This follows the same runtime-threshold pattern used by Snowflake, ClickHouse, DuckDB, and PolarDB, applied here at file, row-group, and row granularity. @@ -111,7 +110,7 @@ These techniques are implemented in DataFusion and together result in: - **Sort elimination**: 2×–49× faster on `ORDER BY` and `ORDER BY ... LIMIT` queries where the file list was in the wrong disk order. - **Runtime row-group pruning**: 5 of 11 benchmark queries run ≥2× faster - (up to ~4×) with zero regressions; total runtime drops −44%. + (up to ~4×) with zero regressions; total runtime drops by 44%. The rest of this post walks through each technique in detail. @@ -427,11 +426,13 @@ eliminate redundant sorts goes back to "interesting orders" in System R ([Selinger et al., SIGMOD 1979][selinger1979]) and was formalized by [Simmen, Shekita, and Malkemus (SIGMOD 1996)][simmen1996]. Those techniques derive orderings from *schema* — declared keys, indexes, and functional -dependencies — whereas we derive them from per-file min/max *statistics* -(the *virtual concatenation* idea discussed -[above](#exact-sort-elimination-via-statistics)). For *declared* partition -bounds, the same "concatenate, don't merge" optimization appears in -[TimescaleDB's OrderedAppend][timescale-append] and [PostgreSQL's ordered partition scans][pg-append]. +dependencies — whereas we derive them from per-file min/max *statistics*. +Concatenating disjoint key ranges rather than merging them is Graefe's +*virtual concatenation* ([ACM Computing Surveys 2006][graefe2006]), and is +mirrored in LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For +*declared* partition bounds, the same "concatenate, don't merge" optimization +appears in [TimescaleDB's OrderedAppend][timescale-append] and +[PostgreSQL's ordered partition scans][pg-append]. **Top-k early termination and threshold pushdown.** Using a running threshold to stop early is described in [Fagin's Threshold Algorithm From a1a0985277020a96ceb81ebc9289af93d357dd10 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:22:01 -0400 Subject: [PATCH 73/79] wordsmith --- content/blog/2026-07-20-sort-pushdown.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 9396b1d9..9d303927 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -59,12 +59,12 @@ In both cases, queries with `ORDER BY` or `ORDER BY ... LIMIT N` pay for a full scan and sometimes a blocking full sort, which buffers every row and can dominate latency and peak memory on large scans. -Using Min/max statistics for *predicate* pushdown is well-known and widely +Using min/max statistics for *predicate* pushdown is well-known and widely implemented across databases, as covered in [@XiangpengHao]'s post on [Parquet pruning][parquet-pruning-blog]. Using the same statistics to *reason about sort order* and to prune `ORDER BY ... LIMIT` (top-k) queries is also increasingly common, for example in the -[Pruning in Snowflake: Working Smarter, Not Harder] (see [Related Work](#related-work) for more). +[Pruning in Snowflake: Working Smarter, Not Harder] paper (see [Related Work](#related-work) for more). This post describes more of these techniques for a general audience, including the less-common case of *discovering* a global sort order from per-file statistics, @@ -83,7 +83,7 @@ DataFusion has long skipped sorts when it knows the data is **exactly** sorted, if the table declares an ordering (via `WITH ORDER` or Parquet `sorting_columns`) and the file listing matches it, the redundant sort is removed. -This post is about messier real-world cases +This post is about the messier real-world cases where sortedness exists but is *inexact* or not provable up front: - Files listed in the "wrong" order on disk (each file is internally @@ -97,13 +97,10 @@ This post describes two primary techniques: 1. **Statistics-based sort elimination** (`Exact`): avoids sorts entirely by reordering files by min/max statistics to create a global ordering. This extends DataFusion's existing statistics-based file-group ordering - ([#9593]) and is similar to prior work for concatenating disjoint ranges rather than - merging them (see [Related Work](#related-work)). + ([#9593]) and is similar to prior work for concatenating disjoint ranges. 2. **Runtime reorder and dynamic pruning** (`Inexact`): reorders the scan to read the most-promising data first, then re-checks the `TopK` dynamic filter at file - and row-group boundaries. This - follows the same runtime-threshold pattern used by Snowflake, ClickHouse, - DuckDB, and PolarDB, applied here at file, row-group, and row granularity. + and row-group boundaries. These techniques are implemented in DataFusion and together result in: @@ -127,7 +124,7 @@ optimizer rule classifies each scan below a sort as either `Unsupported`, [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): - **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. -- **`Exact`** — the optimizer is *certain* the output is in this order, +- **`Exact`** — the optimizer is *certain* of the output order, and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. - **`Inexact`** — the optimizer believes the output is probably ordered but cannot prove it. Downstream operators like @@ -363,7 +360,7 @@ We compare DataFusion 54 with the sort optimizations enabled (the default) and d [topk-tpch-raw]: https://github.com/apache/datafusion/pull/22450#issuecomment-4765161078 -The five queries which improved use `l_orderkey` as the **first** sort key column, so +The five queries that improved use `l_orderkey` as the **first** sort key column, so `Layer 2` (row group pruning) can cascade-prune aggressively. The other queries have multi-column sorts with low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, @@ -377,8 +374,8 @@ so `Layer 3` (row-level) is still partially effective. Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common in time-series, partitioned tables, and ingestion-ordered event logs. Over the -last few DataFusion releases we implemented several optimizations that speed -these workloads up by up to ~4× without slowing down queries for which they +last few DataFusion releases we implemented several optimizations that make +these workloads up to ~4× faster without slowing down queries for which they don't apply. We hope you enjoy using them and welcome your feedback. Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort From 0bc3cff29928e143522e965c310de5f01e5ba381 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:29:17 -0400 Subject: [PATCH 74/79] cut --- content/blog/2026-07-20-sort-pushdown.md | 55 +++++++++++------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 9d303927..1b8c1757 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -123,16 +123,11 @@ optimizer rule classifies each scan below a sort as either `Unsupported`, `Exact`, or `Inexact`, and records this information on DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): -- **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. - **`Exact`** — the optimizer is *certain* of the output order, and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. - **`Inexact`** — the optimizer believes the output is probably ordered - but cannot prove it. Downstream operators like - [`SortPreservingMergeExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort_preserving_merge/struct.SortPreservingMergeExec.html) can still benefit, but the - explicit sort must remain. In this case `TopK`'s - [dynamic filter][dyn-filters-blog] tightens as the heap fills, and - data whose min/max cannot beat the threshold is pruned before it is - fully read. + but cannot prove it, so the sort is kept but the scan is biased to read the most-promising data first. +- **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. PushdownSort decision tree: Exact, Inexact, or Unsupported
*Figure: the `PushdownSort` rule asks each scan whether it can satisfy the @@ -145,19 +140,19 @@ For example, given a query that returns the 10 most recent trades: SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ``` -- With no ordering knowledge, DataFusion scans everything and uses a - `TopK` heap to keep the running best 10. - With **`Exact`** ordering knowledge, DataFusion drops the sort entirely and stops reading after emitting 10 rows. - With **`Inexact`** ordering, the `SortExec` stays but scans start from the most-promising data, so the `TopK` threshold is more likely to tighten quickly and prune the rest with statistics. +- With no ordering knowledge, DataFusion scans everything and uses a + `TopK` heap to keep the running best 10. ## Exact: Sort Elimination via Statistics DataFusion can eliminate sorts entirely when it can use Parquet min/max statistics to reorder files and prove a global ordering -(relevant PRs: [apache/datafusion#19064][#19064], and -[apache/datafusion#21182][#21182]) as shown below. +(relevant PRs: [#19064], and +[#21182]) as shown below. EXPLAIN before / after: SortExec eliminated once ordering is Exact *Figure: EXPLAIN output before and after `PushdownSort` eliminates the sort. The `SortExec` is removed and the scan's ordering claim is upgraded to `Exact`.* @@ -169,8 +164,8 @@ DataFusion can eliminate sorts entirely when it can use Parquet min/max statisti For example, consider three files `a.parquet`, `b.parquet`, `c.parquet`. Each is internally sorted by `ts` and the time ranges do not overlap, but were written -by different jobs. Unless it is careful, a query engine will be forced to use a full -external sort for a query with `ORDER BY ts`, even when it could simply read the +by different jobs. Without this optimization, a query engine will be forced to use a full +sort for `ORDER BY ts` queries, even when it could simply read the files one after another and produce the correct result. The `Exact` path has one important precondition: each file must be @@ -326,7 +321,7 @@ group. **Row-Level Early Stopping**: Even if the row group cannot be pruned with statistics, the tightened dynamic filter often rules out all rows after evaluating just the filter columns. When it does, arrow-rs's `RowFilter` skips fetching the projection -columns for that row group entirely. [#22450][#22450] makes this fire more often +columns for that row group entirely. [#22450] makes this fire more often by keeping the threshold up-to-date at every row-group boundary. Row-group-level reorder — filter column still read for every row group before row-group filter early stop
@@ -382,7 +377,7 @@ Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries dro but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) for reading pages in reverse order. We are also considering implementing Page-level dynamic pruning at -row-group boundaries ([apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) +row-group boundaries ([#23216](https://github.com/apache/datafusion/issues/23216)) using the same pattern one level deeper in Parquet. ## Acknowledgements @@ -471,27 +466,27 @@ now ubiquitous across columnar storage formats and query engines. Umbrella issue tracking the entire effort: -* **[EPIC] Sort Pushdown · skip sorts and skip IO for ORDER BY / TopK queries: [apache/datafusion#23036](https://github.com/apache/datafusion/issues/23036)** — phase-by-phase status of all the PRs and follow-ups. +* **[EPIC] Sort Pushdown · skip sorts and skip IO for ORDER BY / TopK queries: [#23036](https://github.com/apache/datafusion/issues/23036)** — phase-by-phase status of all the PRs and follow-ups. Major PRs: -* `MinMaxStatistics` foundation: [apache/datafusion#9593](https://github.com/apache/datafusion/pull/9593) -* `PushdownSort` rule + row-group reverse: [apache/datafusion#19064](https://github.com/apache/datafusion/pull/19064) -* Reverse-output redesign: [apache/datafusion#19446](https://github.com/apache/datafusion/pull/19446), [apache/datafusion#19557](https://github.com/apache/datafusion/pull/19557) -* Sort elimination via statistics: [apache/datafusion#21182](https://github.com/apache/datafusion/pull/21182) -* `BufferExec` capacity for sort elimination: [apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) -* Push-based Parquet decoder (DataFusion owns the loop): [apache/datafusion#20839](https://github.com/apache/datafusion/pull/20839) -* Morsel-style work scheduling: [apache/datafusion#21351](https://github.com/apache/datafusion/pull/21351) -* Runtime reorder for `TopK` convergence: [apache/datafusion#21956](https://github.com/apache/datafusion/pull/21956) +* `MinMaxStatistics` foundation: [#9593](https://github.com/apache/datafusion/pull/9593) +* `PushdownSort` rule + row-group reverse: [#19064](https://github.com/apache/datafusion/pull/19064) +* Reverse-output redesign: [#19446](https://github.com/apache/datafusion/pull/19446), [#19557](https://github.com/apache/datafusion/pull/19557) +* Sort elimination via statistics: [#21182](https://github.com/apache/datafusion/pull/21182) +* `BufferExec` capacity for sort elimination: [#21426](https://github.com/apache/datafusion/pull/21426) +* Push-based Parquet decoder (DataFusion owns the loop): [#20839](https://github.com/apache/datafusion/pull/20839) +* Morsel-style work scheduling: [#21351](https://github.com/apache/datafusion/pull/21351) +* Runtime reorder for `TopK` convergence: [#21956](https://github.com/apache/datafusion/pull/21956) * **Runtime row-group dynamic pruning ([#22450])** — the centerpiece of this post. -* `peek_next_row_group` API (arrow-rs): [apache/arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) — enables per-RG `fully_matched` RowFilter skip. +* `peek_next_row_group` API (arrow-rs): [arrow-rs#10158](https://github.com/apache/arrow-rs/pull/10158) — enables per-RG `fully_matched` RowFilter skip. In flight / open: -* Page-level reverse (arrow-rs): [apache/arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [apache/arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) -* Per-RG `fully_matched` RowFilter skip on top of [#22450] (uses arrow-rs#10158): [apache/datafusion#23067](https://github.com/apache/datafusion/issues/23067) -* Page-level dynamic prune at RG boundary: [apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216) -* Multi-column / function-wrapped stats reorder follow-ups: [apache/datafusion#22198](https://github.com/apache/datafusion/issues/22198) +* Page-level reverse (arrow-rs): [arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937), discussion in [arrow-rs#9934](https://github.com/apache/arrow-rs/issues/9934) +* Per-RG `fully_matched` RowFilter skip on top of [#22450] (uses arrow-rs#10158): [#23067](https://github.com/apache/datafusion/issues/23067) +* Page-level dynamic prune at RG boundary: [#23216](https://github.com/apache/datafusion/issues/23216) +* Multi-column / function-wrapped stats reorder follow-ups: [#22198](https://github.com/apache/datafusion/issues/22198) Benchmark suites: [sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown), [sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs). @@ -506,7 +501,7 @@ on any partition stalls the whole plan.* Removing `SortExec` was not always faster in multi-partition plans: the deleted sort had also acted as an implicit buffer. The fix was explicit buffering in some plans; see -[apache/datafusion#21426](https://github.com/apache/datafusion/pull/21426) +[#21426](https://github.com/apache/datafusion/pull/21426) for details, as shown in the following figure. BufferExec replaces the deleted SortExec with a bounded streaming buffer per partition
From 298ac8042f681516c0a04f5ad6bd8e7e4e99401c Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:38:49 -0400 Subject: [PATCH 75/79] wordsmit --- content/blog/2026-07-20-sort-pushdown.md | 43 ++++++++++-------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 1b8c1757..42cee639 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -168,12 +168,11 @@ by different jobs. Without this optimization, a query engine will be forced to u sort for `ORDER BY ts` queries, even when it could simply read the files one after another and produce the correct result. -The `Exact` path has one important precondition: each file must be -*individually* sorted on the key. DataFusion knows this from the declared -ordering (`WITH ORDER` or Parquet `sorting_columns`); statistics alone -cannot establish within-file order. The min/max reasoning below proves -only that concatenating the already-sorted files *in range order* yields -a globally sorted stream. When no per-file ordering is declared, the +The `Exact` path requires each file be +*individually* sorted on the key and DataFusion knows this from declared +ordering (`WITH ORDER` or Parquet `sorting_columns`). +Concatenating files in min/max range order only yields +a globally sorted stream if each file is individually sorted. When no per-file ordering is declared, the `Inexact` path (described next) applies instead. `PushdownSort` fixes this in three steps at the file-scan node: @@ -181,28 +180,21 @@ a globally sorted stream. When no per-file ordering is declared, the 1. **Sort the file list by per-file `min`** on the sort column. 2. **Check overlap**: does `file[i].max ≤ file[i+1].min` hold for every adjacent pair? If yes, the sorted file list produces a globally - sorted stream. (Equal values at a boundary, `file[i].max == file[i+1].min`, - are safe for `ORDER BY key`.) + sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the surrounding `Sort`. Note this requires some additional performance optimizations described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). -This is an instance of what Graefe calls *virtual concatenation*: "two -runs with disjoint key ranges … can together … serve as a single input" -([Graefe, ACM Computing Surveys 2006][graefe2006]). The idea is -well-established — it is stated there in a *survey* (i.e. already common -by 2006), is rooted further back in range-partitioned parallel sort -([Graefe, ACM Computing Surveys 1993][graefe1993]), and is mirrored in -LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). What is less common, and -the focus here, is *discovering* the disjoint ranges from per-file +This is an instance of what Graefe calls *virtual concatenation* and is similar to +LSM "trivial move" compactions (see [Related Work](#related-work)). It is less common +to discover the disjoint ranges from per-file min/max statistics rather than from a declared partitioning scheme. [graefe2006]: https://dl.acm.org/doi/10.1145/1132960.1132964 [graefe1993]: https://dl.acm.org/doi/10.1145/152610.152611 File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
-*Figure: file reorder by per-file `min/max` puts the file list in range -order without touching file contents.* +*Figure: Reordering by per-file `min/max` puts the file list in range order.* Detecting non-overlapping ranges via min/max statistics
@@ -211,10 +203,9 @@ upgrading to `Exact` only when the ranges don't overlap. Left: non-overlapping ranges are safe to upgrade to `Exact` and the sort is removed; right: overlapping ranges keep the sort and fall through to the `Inexact` path described next.* -We measured statistics-based sort elimination with DataFusion's +We measured the single core performance of statistics-based sort elimination with DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite -forcing execution to a single core using `--partitions 1`. The results are -as follows: +by setting `--partitions 1`. The results are as follows: Sort pushdown benchmark: 2×–49× speedup across four queries
@@ -225,8 +216,8 @@ as follows: | Q3 — `SELECT * ORDER BY key` | 700 ms | 313 ms | **2.2×** | | Q4 — `SELECT * ORDER BY key LIMIT 100` | 342 ms | 7 ms | **49×** | -*Figure: `sort_pushdown` results. All four are `ASC` `ORDER BY` queries where the -file list on disk is in the reverse of sort-key order, so a naive engine sorts even +*Figure: `sort_pushdown` results. All four queries are `ASC` `ORDER BY` where the +file list on disk is in the reverse of sort-key order; a naive engine sorts even though the files are already individually sorted.* While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: @@ -420,8 +411,10 @@ eliminate redundant sorts goes back to "interesting orders" in System R derive orderings from *schema* — declared keys, indexes, and functional dependencies — whereas we derive them from per-file min/max *statistics*. Concatenating disjoint key ranges rather than merging them is Graefe's -*virtual concatenation* ([ACM Computing Surveys 2006][graefe2006]), and is -mirrored in LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For +*virtual concatenation* ([ACM Computing Surveys 2006][graefe2006]) — an idea +rooted further back in range-partitioned parallel sort +([Graefe, ACM Computing Surveys 1993][graefe1993]) and mirrored in +LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For *declared* partition bounds, the same "concatenate, don't merge" optimization appears in [TimescaleDB's OrderedAppend][timescale-append] and [PostgreSQL's ordered partition scans][pg-append]. From 258cf5b0f4c650e6e08f1249f3fb78cae9d26ca9 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:48:13 -0400 Subject: [PATCH 76/79] wordsmit --- content/blog/2026-07-20-sort-pushdown.md | 32 +++++++++++------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 42cee639..f885e330 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -241,30 +241,28 @@ functions[1](#footnote1), constants inferred from filters, and multi-column orderings. The same dynamic filter is used to drive three layers of pruning: Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure: three pruning layers within the Parquet reader, all driven by the same `TopK` dynamic filter.* +*Figure: The Parquet reader applies three pruning layers, all driven by the same `TopK` dynamic filter.* * **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. * **Layer 2 · row-group-level** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. * **Layer 3 · row-level** ([RowFilter]) — skips decoding the remaining columns in a surviving row group. -Each layer is described in detail below. - [file_pruner]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html [EarlyStoppingStream]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs [RowFilter]: https://docs.rs/parquet/latest/parquet/arrow/arrow_reader/struct.RowFilter.html -Once `PushdownSort` determines `Inexact` applies, the Parquet opener reorders +When `Inexact` applies, the Parquet opener reorders the scan before and during execution using three steps: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
-*Figure: the Parquet opener applies file-level reorder → row-group-level reorder → optional iteration reverse.* +*Figure: the Parquet opener applies file-level reordering, row-group-level reordering, an optional iteration reverse.* -1. **File-level reorder** — the file list is sorted by `min(col)`, +1. **File-level reordering** — the file list is sorted by `min(col)`, so the most-promising file is picked first across all partitions. -2. **Row-group-level reorder** — once a file is opened, its row groups +2. **Row-group-level reordering** — once a file is opened, its row groups are sorted by `min(col)`. -3. **Iteration reverse** — for queries that want the data in `DESC` +3. **Iteration reverse** — for queries that have `DESC` order, the file and row group order is reversed. **File-Level Pruning**: once files are ordered "most-promising first", the @@ -276,29 +274,29 @@ following example. File-level reorder with early stop via file_pruner
-*Figure: after reordering files by their sort key, the low-value files (`file_d` and `file_c`, -whose sort-key values are smallest and therefore least promising for this `DESC LIMIT` query) -end up at the tail of the queue and are pruned by the file-level pruner before they +*Figure: after reordering files by their sort key, the low sort-key value files (`file_d` and `file_c`, +whose sort-key values are least promising for this `DESC LIMIT` query) +end up at the tail of the read queue and are pruned by the file-level pruner before they are ever opened.* **Row-Group-Level Pruning**: When a file is first opened, DataFusion prunes row groups based on predicates and statistics and then determines the order to scan the row groups. During the scan, immediately before DataFusion reads the next row group, it checks if the `TopK` dynamic filter has changed. If so, -after [#22450] it checks the remaining row groups against the new threshold and -prunes any that cannot contribute to the final result. See the -[Appendix: Decoder Loop and Decision Point](#appendix-decoder-loop-and-decision-point) for more details on how this works. + it checks the remaining row groups against the new threshold and +prunes any that cannot contribute to the final result (added in [#22450]). See the +[Appendix: Decoder Loop and Decision Point](#appendix-decoder-loop-and-decision-point) for more details. Cascading prune: one row group fills the heap, threshold snaps, all subsequent row groups are pruned in a single pass
-*Figure: for `ORDER BY x DESC LIMIT 10`, reading just the first row group can prune all the rest in a single pass (walkthrough below).* +*Figure: for `ORDER BY x DESC LIMIT 10`, after reading the first row group, DataFusion prunes the rest of the row groups in a single pass (walkthrough below).* -For example, consider a file with 10 row groups, each containing rows with values +For the example shown above, the file has 10 row groups, each containing rows with values `[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. 1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. 2. Row group 9 (values `[90..100)`) is opened and read, filling - the heap with at least 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. + the heap with 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. 3. At the next row-group boundary, the pruner sees the dynamic filter has been updated and re-evaluates the filter on all remaining row groups. Since row group 8 through row group 0 have `max < 90` they are all pruned out and skipped in a single pass. From 01341c1f45c7ab3c1096ee977c7f2aa5c6960ceb Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 06:56:08 -0400 Subject: [PATCH 77/79] remove layer1/2/3 terminology --- content/blog/2026-07-20-sort-pushdown.md | 32 +++++++++---------- .../images/sort-pushdown/desc_walk_file.svg | 2 +- content/images/sort-pushdown/desc_walk_rg.svg | 2 +- .../images/sort-pushdown/pruning_stack.svg | 12 +++---- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index f885e330..7fc263a5 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -243,9 +243,9 @@ and multi-column orderings. The same dynamic filter is used to drive three layer Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
*Figure: The Parquet reader applies three pruning layers, all driven by the same `TopK` dynamic filter.* -* **Layer 1 · file-level** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. -* **Layer 2 · row-group-level** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. -* **Layer 3 · row-level** ([RowFilter]) — skips decoding the remaining columns in a surviving row group. +* **File-level pruning** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. +* **Row-group-level pruning** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. +* **Row-level filtering** ([RowFilter]) — skips decoding the remaining columns in a surviving row group. [file_pruner]: https://docs.rs/datafusion-pruning/latest/datafusion_pruning/struct.FilePruner.html [EarlyStoppingStream]: https://github.com/apache/datafusion/blob/e104138b4d45d3acfb76223cd968385f6764477b/datafusion/datasource-parquet/src/opener/early_stop.rs @@ -323,13 +323,13 @@ qualify.* ## Benchmark: sort_tpch -For this work, we ran DataFusion's +To test the overall benefit of this work, we used DataFusion's [`sort_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) -benchmark that runs 11 queries over the TPC-H SF1 data, each with +benchmark that runs 11 queries over the TPC-H SF1 dataset, each with `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by -`l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M +`l_orderkey`. For the largest table, `lineitem`, `l_orderkey` is a `BIGINT` with ~1.5M distinct values, so per-row-group `min/max` ranges are cleanly disjoint. -We compare DataFusion 54 with the sort optimizations enabled (the default) and disabled. +We compare DataFusion with the sort optimizations enabled (the default) and disabled. sort_tpch benchmark results: 5 of 11 queries ≥2× faster (up to ~4×), 0 regressions, total -44% @@ -345,12 +345,12 @@ We compare DataFusion 54 with the sort optimizations enabled (the default) and d [topk-tpch-raw]: https://github.com/apache/datafusion/pull/22450#issuecomment-4765161078 The five queries that improved use `l_orderkey` as the **first** sort key column, so -`Layer 2` (row group pruning) can cascade-prune aggressively. The other queries have multi-column +row-group-level pruning can cascade-prune aggressively. The other queries have multi-column sorts with low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, `l_shipmode`), whose per-row-group ranges overlap heavily. Even when `l_orderkey` -appears later as a tie-breaker, the leading key controls RG-level disjointness, -so `Layer 3` (row-level) is still partially effective. +appears later as a tie-breaker, the leading key controls row-group-level disjointness, +so row-level filtering is still partially effective. ## Conclusion and Future Work @@ -374,11 +374,11 @@ using the same pattern one level deeper in Parquet. Thank you to [@adriangb], [@xudong963], [@2010YOUY01], and [@Dandandan] for reviewing the design and the patches across many iterations. The DataFusion community's willingness to engage deeply -with optimizer changes — including the ones that touch foundational -invariants like the Parquet inner decode loop — is what made this work +with optimizer changes, including ones that touch foundational +code like the Parquet inner decode loop, is what made this work possible. -Thanks also to [Massive](https://www.massive.com/) and [InfluxData](https://www.influxdata.com/) for sponsoring this +We also thank [Massive](https://www.massive.com/) and [InfluxData](https://www.influxdata.com/) for sponsoring this work.
[1](#fn1) For example, if the source declares @@ -411,9 +411,9 @@ dependencies — whereas we derive them from per-file min/max *statistics*. Concatenating disjoint key ranges rather than merging them is Graefe's *virtual concatenation* ([ACM Computing Surveys 2006][graefe2006]) — an idea rooted further back in range-partitioned parallel sort -([Graefe, ACM Computing Surveys 1993][graefe1993]) and mirrored in -LSM "trivial move" compaction ([RocksDB][rocksdb-trivial]). For -*declared* partition bounds, the same "concatenate, don't merge" optimization +([Graefe, ACM Computing Surveys 1993][graefe1993]). It also appears as +"trivial move" compaction in LSM trees ([RocksDB][rocksdb-trivial]). For +*declared* partition bounds, the "concatenate, don't merge" optimization appears in [TimescaleDB's OrderedAppend][timescale-append] and [PostgreSQL's ordered partition scans][pg-append]. diff --git a/content/images/sort-pushdown/desc_walk_file.svg b/content/images/sort-pushdown/desc_walk_file.svg index 55036ec4..7e411774 100644 --- a/content/images/sort-pushdown/desc_walk_file.svg +++ b/content/images/sort-pushdown/desc_walk_file.svg @@ -19,7 +19,7 @@ - Layer 1 · file-level reorder (per partition) + File-level reorder (per partition) diff --git a/content/images/sort-pushdown/desc_walk_rg.svg b/content/images/sort-pushdown/desc_walk_rg.svg index b47bbe78..945ce29c 100644 --- a/content/images/sort-pushdown/desc_walk_rg.svg +++ b/content/images/sort-pushdown/desc_walk_rg.svg @@ -19,7 +19,7 @@ - Layer 2 · row-group early stop (inside one file) + Row-group early stop (inside one file) diff --git a/content/images/sort-pushdown/pruning_stack.svg b/content/images/sort-pushdown/pruning_stack.svg index c0a0771d..f59decda 100644 --- a/content/images/sort-pushdown/pruning_stack.svg +++ b/content/images/sort-pushdown/pruning_stack.svg @@ -24,9 +24,9 @@ pushes DynamicFilter to all three layers - + - Layer 1 · file-level dynamic prune + File-level dynamic prune file_pruner + EarlyStoppingStream @@ -41,9 +41,9 @@ surviving file - + - Layer 2 · row-group prune (#22450) + Row-group prune (#22450) every row-group boundary @@ -58,9 +58,9 @@ surviving RG - + - Layer 3 · row-level RowFilter + Row-level RowFilter per-row · decode sort col + eval From b8966c18ec48860a11758370d91689afb9c8b00d Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 07:10:55 -0400 Subject: [PATCH 78/79] more --- content/blog/2026-07-20-sort-pushdown.md | 85 ++++++++++++------------ 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 7fc263a5..281ad351 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -60,13 +60,13 @@ scan and sometimes a blocking full sort, which buffers every row and can dominate latency and peak memory on large scans. Using min/max statistics for *predicate* pushdown is well-known and widely -implemented across databases, as covered in [@XiangpengHao]'s +implemented across databases, as covered in [@XiangpengHao]'s post on [Parquet pruning][parquet-pruning-blog]. Using the same statistics to *reason about sort order* and to prune `ORDER BY ... LIMIT` -(top-k) queries is also increasingly common, for example in the -[Pruning in Snowflake: Working Smarter, Not Harder] paper (see [Related Work](#related-work) for more). -This post describes more of -these techniques for a general audience, including the less-common case of *discovering* a +(top-k) queries is also increasingly common, for example in the +[Pruning in Snowflake: Working Smarter, Not Harder] paper (see [Related Work](#related-work) for more). +This post describes several such techniques for a general audience, +including the less-common case of *discovering* a global sort order from per-file statistics, deleting redundant sorts, and biasing scan order toward the most-promising data. @@ -81,7 +81,7 @@ most-promising data. DataFusion has long skipped sorts when it knows the data is **exactly** sorted, as covered in [@akurmustafa's earlier post][ordering-analysis]: if the table declares an ordering (via `WITH ORDER` or Parquet -`sorting_columns`) and the file listing matches it, the redundant sort is removed. +`sorting_columns`) and the file listing matches it, the redundant sort is removed. This post is about the messier real-world cases where sortedness exists but is *inexact* or not provable up front: @@ -97,7 +97,7 @@ This post describes two primary techniques: 1. **Statistics-based sort elimination** (`Exact`): avoids sorts entirely by reordering files by min/max statistics to create a global ordering. This extends DataFusion's existing statistics-based file-group ordering - ([#9593]) and is similar to prior work for concatenating disjoint ranges. + ([#9593]) and is similar to prior work on concatenating disjoint ranges. 2. **Runtime reorder and dynamic pruning** (`Inexact`): reorders the scan to read the most-promising data first, then re-checks the `TopK` dynamic filter at file and row-group boundaries. @@ -119,8 +119,8 @@ The rest of this post walks through each technique in detail. The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) -optimizer rule classifies each scan below a sort as either `Unsupported`, -`Exact`, or `Inexact`, and records this information on DataFusion's +optimizer rule classifies each scan below a sort as either `Exact`, +`Inexact`, or `Unsupported`, and records this information on DataFusion's [`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): - **`Exact`** — the optimizer is *certain* of the output order, @@ -151,8 +151,7 @@ SELECT ts, symbol, amount FROM trades ORDER BY ts DESC LIMIT 10; ## Exact: Sort Elimination via Statistics DataFusion can eliminate sorts entirely when it can use Parquet min/max statistics to reorder files and prove a global ordering -(relevant PRs: [#19064], and -[#21182]) as shown below. +(relevant PRs: [#19064] and [#21182]) as shown below. EXPLAIN before / after: SortExec eliminated once ordering is Exact *Figure: EXPLAIN output before and after `PushdownSort` eliminates the sort. The `SortExec` is removed and the scan's ordering claim is upgraded to `Exact`.* @@ -163,16 +162,16 @@ DataFusion can eliminate sorts entirely when it can use Parquet min/max statisti [#21182]: https://github.com/apache/datafusion/pull/21182 For example, consider three files `a.parquet`, `b.parquet`, `c.parquet`. Each is -internally sorted by `ts` and the time ranges do not overlap, but were written -by different jobs. Without this optimization, a query engine will be forced to use a full -sort for `ORDER BY ts` queries, even when it could simply read the +internally sorted by `ts` and the time ranges do not overlap, but the files were +written by different jobs. Without this optimization, a query engine is forced to +use a full sort for `ORDER BY ts` queries, even though it could simply read the files one after another and produce the correct result. -The `Exact` path requires each file be -*individually* sorted on the key and DataFusion knows this from declared -ordering (`WITH ORDER` or Parquet `sorting_columns`). -Concatenating files in min/max range order only yields -a globally sorted stream if each file is individually sorted. When no per-file ordering is declared, the +The `Exact` path requires each file to be +*individually* sorted on the key, and DataFusion knows this from the declared +ordering (`WITH ORDER` or Parquet `sorting_columns`). +Concatenating the files in min/max range order yields a globally sorted stream +only when that per-file precondition holds. When no per-file ordering is declared, the `Inexact` path (described next) applies instead. `PushdownSort` fixes this in three steps at the file-scan node: @@ -182,11 +181,11 @@ a globally sorted stream if each file is individually sorted. When no per-file o every adjacent pair? If yes, the sorted file list produces a globally sorted stream. 3. **Upgrade the source's ordering claim to `Exact`** and remove the - surrounding `Sort`. Note this requires some additional performance optimizations - described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). + surrounding `Sort`. Note that this requires some additional performance optimizations + described in [appendix on buffering without sorting](#appendix-buffering-without-sorting). -This is an instance of what Graefe calls *virtual concatenation* and is similar to -LSM "trivial move" compactions (see [Related Work](#related-work)). It is less common +This is an instance of what Graefe calls *virtual concatenation*, and is similar to +LSM "trivial move" compaction (see [Related Work](#related-work)). It is less common to discover the disjoint ranges from per-file min/max statistics rather than from a declared partitioning scheme. @@ -194,7 +193,7 @@ min/max statistics rather than from a declared partitioning scheme. [graefe1993]: https://dl.acm.org/doi/10.1145/152610.152611 File reorder: rearranging files within a partition by min/max statistics so the file list is in range order
-*Figure: Reordering by per-file `min/max` puts the file list in range order.* +*Figure: reordering by per-file `min/max` puts the file list in range order.* Detecting non-overlapping ranges via min/max statistics
@@ -203,9 +202,9 @@ upgrading to `Exact` only when the ranges don't overlap. Left: non-overlapping ranges are safe to upgrade to `Exact` and the sort is removed; right: overlapping ranges keep the sort and fall through to the `Inexact` path described next.* -We measured the single core performance of statistics-based sort elimination with DataFusion's +We measured the single-core performance of statistics-based sort elimination with DataFusion's [`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite -by setting `--partitions 1`. The results are as follows: +by setting `--partitions 1`. The results are as follows: Sort pushdown benchmark: 2×–49× speedup across four queries
@@ -220,7 +219,8 @@ by setting `--partitions 1`. The results are as follows: file list on disk is in the reverse of sort-key order; a naive engine sorts even though the files are already individually sorted.* -While DataFusion can avoid sorting for all four queries, the benefit is most dramatic for `LIMIT` queries: +While DataFusion can avoid sorting for all four queries, the benefit is most +dramatic for `LIMIT` queries: - **Full-scan queries (Q1, Q3)** result in a ~2× speedup as the scan is now a single-pass streaming read. - **`LIMIT` queries (Q2, Q4)** result in a 27×–49× speedup because `LIMIT N` turns into a streaming read with early stopping. @@ -241,7 +241,7 @@ functions[1](#footnote1), constants inferred from filters, and multi-column orderings. The same dynamic filter is used to drive three layers of pruning: Three-layer pruning: file-level, row-group-level, row-level, all driven by the same TopK dynamic filter
-*Figure: The Parquet reader applies three pruning layers, all driven by the same `TopK` dynamic filter.* +*Figure: the Parquet reader applies three pruning layers, all driven by the same `TopK` dynamic filter.* * **File-level pruning** ([file_pruner] + [EarlyStoppingStream]) — skips whole files before they are opened. * **Row-group-level pruning** ([#22450]) — skips whole row groups at each boundary, before any pages are fetched. @@ -256,14 +256,13 @@ the scan before and during execution using three steps: Runtime reorder pipeline: file reorder, RG reorder, then optional reverse
-*Figure: the Parquet opener applies file-level reordering, row-group-level reordering, an optional iteration reverse.* +*Figure: the Parquet opener applies file-level reordering, row-group-level reordering, and an optional iteration reverse.* 1. **File-level reordering** — the file list is sorted by `min(col)`, so the most-promising file is picked first across all partitions. 2. **Row-group-level reordering** — once a file is opened, its row groups are sorted by `min(col)`. -3. **Iteration reverse** — for queries that have `DESC` - order, the file and row group order is reversed. +3. **Iteration reverse** — for `DESC` queries, the file and row-group order is reversed. **File-Level Pruning**: once files are ordered "most-promising first", the `TopK`'s heap fills quickly and its dynamic filter threshold tightens. The @@ -280,11 +279,11 @@ end up at the tail of the read queue and are pruned by the file-level pruner bef are ever opened.* **Row-Group-Level Pruning**: When a file is first opened, DataFusion prunes -row groups based on predicates and statistics and then determines +row groups based on predicates and statistics, and then determines the order to scan the row groups. During the scan, immediately before DataFusion -reads the next row group, it checks if the `TopK` dynamic filter has changed. If so, - it checks the remaining row groups against the new threshold and -prunes any that cannot contribute to the final result (added in [#22450]). See the +reads the next row group, it checks whether the `TopK` dynamic filter has changed. If so, +it re-evaluates the remaining row groups against the new threshold and +prunes any that cannot contribute to the final result (added in [#22450]). See the [Appendix: Decoder Loop and Decision Point](#appendix-decoder-loop-and-decision-point) for more details. @@ -292,14 +291,14 @@ prunes any that cannot contribute to the final result (added in [#22450]). See t *Figure: for `ORDER BY x DESC LIMIT 10`, after reading the first row group, DataFusion prunes the rest of the row groups in a single pass (walkthrough below).* For the example shown above, the file has 10 row groups, each containing rows with values -`[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. +`[0..10)`, `[10..20)`, ..., `[90..100)` and the query is `ORDER BY x DESC LIMIT 10`. 1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. 2. Row group 9 (values `[90..100)`) is opened and read, filling the heap with 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. 3. At the next row-group boundary, the pruner sees the dynamic filter has been updated and re-evaluates the filter on all remaining row groups. Since row group 8 - through row group 0 have `max < 90` they are all pruned out and skipped in a single pass. + through row group 0 have `max < 90`, they are all pruned and skipped in a single pass. 4. The scan ends early, having read only one row group instead of all 10. Note that for the row groups that were skipped, no data is fetched or decoded. @@ -329,7 +328,7 @@ benchmark that runs 11 queries over the TPC-H SF1 dataset, each with `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, `l_orderkey` is a `BIGINT` with ~1.5M distinct values, so per-row-group `min/max` ranges are cleanly disjoint. -We compare DataFusion with the sort optimizations enabled (the default) and disabled. +We compared DataFusion with the sort optimizations enabled (the default) and disabled. sort_tpch benchmark results: 5 of 11 queries ≥2× faster (up to ~4×), 0 regressions, total -44% @@ -358,14 +357,14 @@ so row-level filtering is still partially effective. Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is aligned with the physical layout (e.g. the data is ordered by `time`) are common in time-series, partitioned tables, and ingestion-ordered event logs. Over the -last few DataFusion releases we implemented several optimizations that make +last few DataFusion releases, we implemented several optimizations that make these workloads up to ~4× faster without slowing down queries for which they don't apply. We hope you enjoy using them and welcome your feedback. -Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort -but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) +Two follow-ups are open: page-level `Exact` reverse would let `DESC` queries drop the sort +but needs lower-level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) for reading pages in reverse order. -We are also considering implementing Page-level dynamic pruning at +We are also considering implementing page-level dynamic pruning at row-group boundaries ([#23216](https://github.com/apache/datafusion/issues/23216)) using the same pattern one level deeper in Parquet. @@ -411,7 +410,7 @@ dependencies — whereas we derive them from per-file min/max *statistics*. Concatenating disjoint key ranges rather than merging them is Graefe's *virtual concatenation* ([ACM Computing Surveys 2006][graefe2006]) — an idea rooted further back in range-partitioned parallel sort -([Graefe, ACM Computing Surveys 1993][graefe1993]). It also appears as +([Graefe, ACM Computing Surveys 1993][graefe1993]). It also appears as "trivial move" compaction in LSM trees ([RocksDB][rocksdb-trivial]). For *declared* partition bounds, the "concatenate, don't merge" optimization appears in [TimescaleDB's OrderedAppend][timescale-append] and From 3af340a684456c20aeb592c124bbe605068c5604 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Jul 2026 07:15:14 -0400 Subject: [PATCH 79/79] fix links --- content/blog/2026-07-20-sort-pushdown.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content/blog/2026-07-20-sort-pushdown.md b/content/blog/2026-07-20-sort-pushdown.md index 281ad351..3fdebe41 100644 --- a/content/blog/2026-07-20-sort-pushdown.md +++ b/content/blog/2026-07-20-sort-pushdown.md @@ -49,9 +49,9 @@ Sortedness only helps if the query engine can detect and use it. Two common cases make that hard: 1. The ordering is undeclared in the file. For example, the writer did not set Parquet - [`sorting_columns`](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), + [sorting_columns](https://github.com/apache/parquet-format/blob/8a5e04bdecf100e8e981daacfa117e8b5aadacb9/src/main/thrift/parquet.thrift#L1044), or the table was not created with DataFusion's - [`WITH ORDER`](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. + [WITH ORDER](https://datafusion.apache.org/user-guide/sql/ddl.html#create-external-table) clause. 2. Files are individually sorted, but the engine is scanning multiple files and does not know a global ordering at plan time. @@ -118,13 +118,13 @@ The rest of this post walks through each technique in detail. ## Tracking Ordering -The [`PushdownSort`](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) +The [PushdownSort](https://github.com/apache/datafusion/blob/main/datafusion/physical-optimizer/src/pushdown_sort.rs) optimizer rule classifies each scan below a sort as either `Exact`, `Inexact`, or `Unsupported`, and records this information on DataFusion's -[`FileScanConfig`](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): +[FileScanConfig](https://docs.rs/datafusion-datasource/latest/datafusion_datasource/file_scan_config/struct.FileScanConfig.html): - **`Exact`** — the optimizer is *certain* of the output order, - and removes redundant [`SortExec`](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. + and removes redundant [SortExec](https://docs.rs/datafusion-physical-plan/latest/datafusion_physical_plan/sorts/sort/struct.SortExec.html) operators entirely. - **`Inexact`** — the optimizer believes the output is probably ordered but cannot prove it, so the sort is kept but the scan is biased to read the most-promising data first. - **`Unsupported`** — the optimizer cannot determine the ordering, so no sort is removed. @@ -203,7 +203,7 @@ ranges are safe to upgrade to `Exact` and the sort is removed; right: overlapping ranges keep the sort and fall through to the `Inexact` path described next.* We measured the single-core performance of statistics-based sort elimination with DataFusion's -[`sort_pushdown`](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite +[sort_pushdown](https://github.com/apache/datafusion/tree/main/benchmarks/queries/sort_pushdown) benchmark suite by setting `--partitions 1`. The results are as follows: Sort pushdown benchmark: 2×–49× speedup across four queries
@@ -323,7 +323,7 @@ qualify.* ## Benchmark: sort_tpch To test the overall benefit of this work, we used DataFusion's -[`sort_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) +[sort_tpch](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) benchmark that runs 11 queries over the TPC-H SF1 dataset, each with `ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by `l_orderkey`. For the largest table, `lineitem`, `l_orderkey` is a `BIGINT` with ~1.5M @@ -426,7 +426,7 @@ via min/max is described for Snowflake in [Pruning in Snowflake: Working Smarter, Not Harder] and ships in [ClickHouse][ch-topn] (granule-level top-N skipping), [DuckDB][duckdb-topn] (dynamic Top-N table filters), [PolarDB-IMCI][polardb-topk] (self-sharpening -runtime filters), and InfluxDB IOx ([`ProgressiveEvalExec`][iox-progressive]). +runtime filters), and InfluxDB IOx ([ProgressiveEvalExec][iox-progressive]). **Reverse scans and data skipping.** Reading physically-ordered data in reverse to satisfy `DESC ... LIMIT` is a well-known technique in traditional @@ -498,7 +498,7 @@ for details, as shown in the following figure. *Figure: `BufferExec` is inserted where the `SortExec` used to live — same greedy per-partition prefill, but no blocking sort.* -The fix is [`BufferExec`](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): +The fix is [BufferExec](https://github.com/apache/datafusion/blob/main/datafusion/physical-plan/src/buffer.rs): a bounded per-partition prefill buffer that restores the greedy parallel I/O driver role without sorting.

*VG?TMgu{7@o- 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 Xgrllv5g*06FZ6Vbv@7mB3jbdK2#bqb diff --git a/content/images/sort-pushdown/desc_walk_rg.svg b/content/images/sort-pushdown/desc_walk_rg.svg new file mode 100644 index 00000000..b47bbe78 --- /dev/null +++ b/content/images/sort-pushdown/desc_walk_rg.svg @@ -0,0 +1,61 @@ + + + + + + + + + Layer 2 · row-group early stop (inside one file) + + + + + + + Original + + [10..20) + + [50..60) + + [0..10) + + [30..40) + + + + reorder by min/max + statistics, then reverse + + + Decoder reads + + [50..60) + + [30..40) + + [10..20) + + [0..10) + + + high-value row groups first → heap fills fast + ✓ later row groups short-circuit projection columns + (RowSelection empty → arrow-rs selects_any()) + ✗ but the filter column is still read for each row group + (the sort column is fetched + decoded to check the threshold) + diff --git a/content/images/sort-pushdown/rg_cascade.svg b/content/images/sort-pushdown/rg_cascade.svg index 0fcc60d1..635ce690 100644 --- a/content/images/sort-pushdown/rg_cascade.svg +++ b/content/images/sort-pushdown/rg_cascade.svg @@ -8,7 +8,7 @@ .axis-lbl { font-size: 13px; font-style: italic; fill: #666; } .thresh { stroke: #c0392b; stroke-width: 2; } .thresh-lbl{ font-size: 12px; font-weight: 700; fill: #c0392b; } - .rg { font-size: 12px; font-weight: 700; paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; } + .rg { font-size: 11px; font-weight: 700; paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; } .range { font-size: 11px; font-family: 'Courier New', monospace; fill: #777; } .x-mark { stroke: #c0392b; stroke-width: 2.4; opacity: 0.7; } .lead { fill: none; stroke-width: 1.8; } @@ -34,7 +34,7 @@ - + @@ -44,67 +44,67 @@ scan time → - - threshold + + threshold - RG 9 + Row group 9 [90..100) - RG 8 + Row group 8 [80..90) - RG 7 + Row group 7 [70..80) - RG 6 + Row group 6 [60..70) - RG 5 + Row group 5 [50..60) - RG 4 + Row group 4 [40..50) - RG 3 + Row group 3 [30..40) - RG 2 + Row group 2 [20..30) - RG 1 + Row group 1 [10..20) - RG 0 + Row group 0 [0..10) From 0df396bb19446732f78ba99b45ce91cd1b733499 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 16 Jul 2026 17:48:03 -0400 Subject: [PATCH 55/79] rework --- content/blog/2026-07-05-sort-pushdown.md | 61 +++++---- content/images/sort-pushdown/rg_cascade.svg | 2 +- .../images/sort-pushdown/topk_tpch_bench.png | Bin 80812 -> 0 bytes .../images/sort-pushdown/topk_tpch_bench.svg | 121 ++++++++++++++++++ 4 files changed, 155 insertions(+), 29 deletions(-) delete mode 100644 content/images/sort-pushdown/topk_tpch_bench.png create mode 100644 content/images/sort-pushdown/topk_tpch_bench.svg diff --git a/content/blog/2026-07-05-sort-pushdown.md b/content/blog/2026-07-05-sort-pushdown.md index 1682fc65..b2a8ae3a 100644 --- a/content/blog/2026-07-05-sort-pushdown.md +++ b/content/blog/2026-07-05-sort-pushdown.md @@ -282,15 +282,15 @@ prunes any that cannot contribute to the final result. See the their maximum values and then read sequentially. The first row group is enough to fill the heap, so the threshold jumps into its range (≥ 90). At the next row-group boundary, every remaining row group with `max < 90` is pruned in one pass.* -Dynamic row group pruning is especially effective for `LIMIT` queries. For example, consider a file with 10 row groups, each containing rows with values +For example, consider a file with 10 row groups, each containing rows with values `[0..10)`, `[10..20)`, ..., `[90..100)` and a query with `ORDER BY x DESC LIMIT 10`. 1. The row groups are first reordered by their maximum values, so the highest-value row group is read first. 2. Row Group 9 (values `[90..100)`) is opened and read, filling - the heap with at least 10 values (the minimum heap value is 90). The `TopK` dynamic filter threshold is updated to 90. + the heap with at least 10 values (the minimum heap value is `90`). The `TopK` dynamic filter threshold is updated to `90`. 3. At the next row-group boundary, the pruner the dynamic filter has been updated, and re-evaluates the filter on all remaining row groups. Since Row Group 8 - through Row Group 0 have `max < 90` the are all pruned out and skipped in a single pass. + through Row Group 0 have `max < 90` they are all pruned out and skipped in a single pass. 4. The scan ends early, having read only one row group instead of all 10. Note that for the Row Groups that were skipped, no data is fetched nor decoded. @@ -314,17 +314,16 @@ qualify.* ## Benchmark: topk_tpch -The [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) -benchmark runs 11 TPC-H SF1 queries, all of the shape -`ORDER BY ... LIMIT 100`. The data is stored in Parquet, sorted by -`l_orderkey` (lineitem's physical sort key — a `BIGINT` with ~1.5M -distinct values per SF1), so per-RG `min/max` ranges are cleanly disjoint. -We compare DataFusion 54 with the sort optimizations described in this blog -disabled versus enabled. +For this work, we defined a new [`topk_tpch`](https://github.com/apache/datafusion/blob/main/benchmarks/src/sort_tpch.rs) +benchmark that runs 11 queries over the TPC-C SF1 data. Each query has +`ORDER BY ... LIMIT 100`. The data is stored in Parquet files, sorted by +`l_orderkey`. For the largest table, `lineitem`, this is a `BIGINT` with ~1.5M +distinct values, so per Row Group `min/max` ranges are cleanly disjoint. +We compare DataFusion 54 with the sort optimizations enabled (the default) and disabled. -topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% +topk_tpch benchmark results: 5 of 11 queries 3-4× faster, 0 regressions, total -44% -Headline numbers: +Results Summary: | Metric | Value | | ----------------------------------- | ---------------------------------- | @@ -333,37 +332,43 @@ Headline numbers: | Queries with regression | **0** | | Best single-query speedup | **~4×** | -The five fast queries all use `l_orderkey` as the **leading** sort key, so -`Layer 2` can cascade-prune aggressively. The other queries lead with +The five queries which improved use `l_orderkey` as the **first** sort key column, so +`Layer 2` (row group pruning) can cascade-prune aggressively. The other queries have multi-column +sorts with low-cardinality or unsorted columns (`l_linenumber`, `l_comment`, -`l_shipmode`), whose per-RG ranges overlap heavily. Even when `l_orderkey` +`l_shipmode`), whose per-Row Group ranges overlap heavily. Even when `l_orderkey` appears later as a tie-breaker, the leading key controls RG-level disjointness, so `Layer 3` (row-level) is still partially effective. -Several common time-series workloads are accelerated 3–4× with zero -regressions, and the optimization becomes a no-op when the data doesn't -help. The sweet spot — -sort key aligned with the physical layout — is the common case for -time-series, partitioned tables, and ingestion-ordered event logs. +## Conclusion -## Future Directions +Use cases where the query sort key (e.g. `ORDER BY time DESC LIMIT 10`) is +aligned with the physical layout (e.g. the data is ordered by `time`) are common +in time-series, partitioned tables, and ingestion-ordered event logs. In +DataFusion 54, we implemented several novel optimizations, speeding up several +work loads by a factor of 3-4 without slowing down queries for which they don't +apply. We hope you enjoy using them and welcome your feedback. -Two follow-ups are open. Page-level `Exact` reverse support needs an upstream -arrow-rs primitive ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) -and would let `DESC` queries drop the sort. Page-level dynamic pruning at + +## Future Work + +Two follow-ups are open: Page-level `Exact` reverse would let `DESC` queries drop the sort +but needs lower level support in the Parquet reader ([arrow-rs#9937](https://github.com/apache/arrow-rs/pull/9937)) +for reading pages in reverse order. +We are also considering implementing Page-level dynamic pruning at row-group boundaries ([apache/datafusion#23216](https://github.com/apache/datafusion/issues/23216)) -extends the same refresh-at-boundary pattern one level deeper in Parquet. +using the same pattern one level deeper in Parquet. ## Acknowledgements -Thank you to [@adriangb], [@alamb], [@xudong963], [@2010YOUY01], and +Thank you to [@adriangb], [@xudong963], [@2010YOUY01], and [@Dandandan] for reviewing the design and the patches across many iterations. The DataFusion community's willingness to engage deeply with optimizer changes — including the ones that touch foundational -invariants like who-drives-the-decode-loop — is what made this work +invariants like the Parquet inner decode loop — is what made this work possible. -Thanks also to [Massive](https://www.massive.com/) for sponsoring this +Thanks also to [Massive](https://www.massive.com/) and [InfluxData](https://www.influxdata.com/) for sponsoring this work. [1](#fn1) For example, if the source declares diff --git a/content/images/sort-pushdown/rg_cascade.svg b/content/images/sort-pushdown/rg_cascade.svg index 635ce690..dc13616b 100644 --- a/content/images/sort-pushdown/rg_cascade.svg +++ b/content/images/sort-pushdown/rg_cascade.svg @@ -21,7 +21,7 @@ - Cascading prune · how the heap eats row groups as it tightens + Cascading prune · how the heap prunes row groups ORDER BY x DESC LIMIT 10 · one parquet file, 10 row groups diff --git a/content/images/sort-pushdown/topk_tpch_bench.png b/content/images/sort-pushdown/topk_tpch_bench.png deleted file mode 100644 index e3914fd1fe82cfbe64012de3051900e5def23ea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80812 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

1H5cRM4_f2YxcN-ficMS!F0To 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≺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 z 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 literal 141158 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

*VG?TMgu{7@o- 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 Xgrllv5g*06FZ6Vbv@7mB3jbdK2#bqb literal 0 HcmV?d00001 diff --git a/content/images/sort-pushdown/future_page_level.png b/content/images/sort-pushdown/future_page_level.png new file mode 100644 index 0000000000000000000000000000000000000000..e41f781be5c5bddc3dea44820b6f6a3f5503584e GIT binary patch literal 152064 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