Skip to content

DDIR: reuse run descriptor storage in hashed joins - #951

Merged
frankmcsherry merged 1 commit into
TimelyDataflow:master-nextfrom
frankmcsherry:ddir-join-run-scratch
Oct 19, 2026
Merged

frankmcsherry merged 1 commit into
TimelyDataflow:master-nextfrom
frankmcsherry:ddir-join-run-scratch

Conversation

@frankmcsherry

@frankmcsherry frankmcsherry commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Symmetric joins with hashed keys rebuild two run-descriptor lists for every matched key. When a key spans more than four chunks, both lists spill to the heap and allocate again for the next key. Reuse the buffers within each block, clearing their entries while retaining capacity.

The focused regression exercises both key shapes, cancellation, and fewer runs after a spill. The implementation change is confined to the hashed-key walk. This PR is one commit directly on master-next, changing only interactive/src/corgi/join.rs.

Earlier native M4 presentation controls (4096 hashed pair keys, two values/key, eight chunks/side) measured 8,603 → 413 allocation requests/pass and 1,509 → 1,434 ns/key. Those measurements precede this rebase; timings were not rerun for this update. The change removes local allocation while preserving the Corgi comparison calls.

Validation of the rebased change on mini-02, Rust 1.95:

  • cargo test --locked --offline -p interactive -p ddir-server: 185 passed, five existing ignores.
  • cargo clippy --locked --offline -p interactive -p ddir-server --all-targets: passes with repository warnings.

@frankmcsherry
frankmcsherry merged commit 51a9ca0 into TimelyDataflow:master-next Oct 19, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant