timely-util: vendor ColumnationStack from differential-dataflow#35760
Open
antiguru wants to merge 6 commits intoMaterializeInc:mainfrom
Open
timely-util: vendor ColumnationStack from differential-dataflow#35760antiguru wants to merge 6 commits intoMaterializeInc:mainfrom
antiguru wants to merge 6 commits intoMaterializeInc:mainfrom
Conversation
Contributor
|
Thanks for opening this PR! Here are a few tips to help make the review process smooth for everyone. PR title guidelines
Pre-merge checklist
|
feb6caf to
396825b
Compare
Contributor
|
Fwiw, excited to see this popped out of DD and moved over here. :D |
Copy TimelyStack from differential-dataflow, renamed to ColumnationStack. Also vendors ColumnationChunker, the InternalMerge impl for columnation stacks, and the ColInternalMerger type alias. This prepares for removing columnation support from differential-dataflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
396825b to
2b6c22f
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Also adds BatchContainer and BuilderInput impls for ColumnationStack in mz-timely-util, which are needed by differential-dataflow's Layout and Builder traits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update expected type names in relations.slt from differential_dataflow::containers::TimelyStack to mz_timely_util::columnation::ColumnationStack. Add clippy disallowed-types entry for TimelyStack to prevent accidental use of the DD type instead of our vendored copy. Fix doctest type inference failure caused by new DrainContainer impl. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…hecks The generic InternalMerger from differential-dataflow delegates extract() to InternalMerge::extract which processes entire buffers without capacity checks, leading to oversized output containers. This was introduced in TimelyDataflow/differential-dataflow#689. Replace it with ColumnationMerger, a direct Merger impl that iterates items individually with capacity checks after each push — restoring the pre-#689 behavior. The InternalMerge impl on ColumnationStack is retained because DD's Builder requires it as a trait bound. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2b6c22f to
2d76d93
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TimelyStackfrom differential-dataflow intomz-timely-utilasColumnationStack, along withColumnationChunker, theInternalMergeimpl,BatchContainer/BuilderInputimpls, and theColInternalMergertype alias.mz-compute,mz-storage,mz-storage-operators, andmz-storage-typesto import frommz-timely-util::columnationinstead ofdifferential_dataflow::containers.disallowed-typesentry forTimelyStackto prevent accidental use of the DD type.operator.rscaused by the newDrainContainerimpl.This prepares for removing columnation support from differential-dataflow. The
Batcher,Merger,InternalMerge, andInternalMergertraits/types remain in DD — only the columnation-specific implementations are vendored.Stacked on #35674.
Test plan
cargo check --all-targetspassescargo test -p mz-timely-util --libpassescargo test -p mz-storage-typespasses🤖 Generated with Claude Code