Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## [Unreleased] - ReleaseDate

- Skip building per-subset join indexes for probers that will only be probed once. Join stages now pass a probe-count bound into index acquisition, and single-probe probers answer by scanning the subset directly (a per-trie-node scan budget caps the extra work when a node is probed again later). Most probe-side index builds served exactly one probe, so this removes 60–99% of on-the-fly index-build volume on LLM-compilation benchmarks (whisper −9%, qwen −9%, python_array_optimize −12% end-to-end). A new feature-gated `index-stats` instrumentation (`--features index-stats`) reports per-index build/usage histograms at CLI exit.
- Speed up query evaluation by building on-the-fly per-subset column indexes as sorted arrays (`SortedColumnIndex`) instead of hash maps. These indexes are typically iterated once and probed a bounded number of times over high-cardinality columns, so skipping hash-table construction is a large win (e.g. ~33% faster on the `gemma` benchmark).
- Add `make nightly` and `scripts/nightly_bench.py`, a hyperfine-based benchmark harness that measures every `tests/**/*.egg` program at 1/2/4/8 threads and (where supported) in proof-testing mode, caps each run at a 2-minute timeout, skips sub-50ms programs, and emits an HTML dashboard (one row per benchmark, one column per configuration) for nightly.cs.washington.edu. The dashboard uses [eval-live](https://github.com/oflatt/eval-live) for interactive filtering and sorting.
- Add typed `EGraph` extension state that clones with `EGraph` and is restored by `push`/`pop`.
Expand Down
2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ bin = [
]
serde = ["egraph-serialize/serde"]
graphviz = ["egraph-serialize/graphviz"]
# Report join index build/usage statistics at CLI exit.
index-stats = ["egglog-core-relations/index-stats"]

[dependencies]
clap = { workspace = true, features = ["derive"], optional = true }
Expand Down
2 changes: 2 additions & 0 deletions core-relations/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,5 @@ harness = false
[features]
default = []
debug-val-trace = []
# Collect and report statistics on join index builds and their usage.
index-stats = []
Loading
Loading