Skip to content

compute: Use less-quadratic half_join2 from differential-dataflow PR #706#35796

Merged
antiguru merged 5 commits intoMaterializeInc:mainfrom
antiguru:patch_dd_706
Apr 2, 2026
Merged

compute: Use less-quadratic half_join2 from differential-dataflow PR #706#35796
antiguru merged 5 commits intoMaterializeInc:mainfrom
antiguru:patch_dd_706

Conversation

@antiguru
Copy link
Copy Markdown
Member

Summary

  • Patch differential-dataflow and differential-dogs3 to frankmcsherry/differential-dataflow#706 (half_join_ordered branch), which introduces a half_join2 operator that avoids quadratic behavior through a two-stage pipeline.
  • Switch delta join's half_join_internal_unsafe calls from the half_join module to the new half_join2 module.

Test plan

  • cargo check -p mz-compute passes
  • Run existing delta join tests to verify correctness
  • Benchmark delta join workloads to measure improvement

🤖 Generated with Claude Code

@antiguru antiguru requested a review from a team as a code owner March 31, 2026 09:17
@github-actions
Copy link
Copy Markdown
Contributor

Thanks for opening this PR! Here are a few tips to help make the review process smooth for everyone.

PR title guidelines

  • Use imperative mood: "Fix X" not "Fixed X" or "Fixes X"
  • Be specific: "Fix panic in catalog sync when controller restarts" not "Fix bug" or "Update catalog code"
  • Prefix with area if helpful: compute: , storage: , adapter: , sql:

Pre-merge checklist

  • The PR title is descriptive and will make sense in the git log.
  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).

@antiguru antiguru force-pushed the patch_dd_706 branch 2 times, most recently from d9447b4 to 492e539 Compare April 2, 2026 13:12
@antiguru antiguru requested a review from frankmcsherry April 2, 2026 13:13
@antiguru antiguru enabled auto-merge (squash) April 2, 2026 19:32
antiguru and others added 5 commits April 2, 2026 21:55
…aterializeInc#706

Patch differential-dataflow and differential-dogs3 to frankmcsherry's
`half_join_ordered` branch, which introduces a new `half_join2` operator
that avoids quadratic behavior through a two-stage pipeline. Switch the
delta join implementation to use `half_join2::half_join_internal_unsafe`
instead of `half_join::half_join_internal_unsafe`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Moritz Hoffmann <antiguru@gmail.com>
Signed-off-by: Moritz Hoffmann <antiguru@gmail.com>
Add a dyncfg flag (default true) to gate the use of half_join2 vs the
original half_join in delta join rendering. This provides an escape hatch
to revert to the old implementation if issues arise with the new
less-quadratic half_join2 operator.

Register the flag in parallel-workload's FlipFlagsAction and
mzcompose's UNINTERESTING_SYSTEM_PARAMETERS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@antiguru antiguru requested a review from a team as a code owner April 2, 2026 20:07
Copy link
Copy Markdown
Contributor

@frankmcsherry frankmcsherry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good here; appreciate the feature flag!

@antiguru antiguru merged commit ef950e9 into MaterializeInc:main Apr 2, 2026
119 checks passed
@antiguru antiguru deleted the patch_dd_706 branch April 2, 2026 21:34
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.

2 participants