feat: Add PlanNode::requiresSingleThread() API (#16753)#16753
Open
mbasmanova wants to merge 1 commit intofacebookincubator:mainfrom
Open
feat: Add PlanNode::requiresSingleThread() API (#16753)#16753mbasmanova wants to merge 1 commit intofacebookincubator:mainfrom
mbasmanova wants to merge 1 commit intofacebookincubator:mainfrom
Conversation
✅ Deploy Preview for meta-velox canceled.
|
a3907ff to
5898215
Compare
5898215 to
009635b
Compare
|
@mbasmanova has exported this pull request. If you are a Meta employee, you can view the originating Diff in D96366381. |
009635b to
f4302c8
Compare
mbasmanova
added a commit
to mbasmanova/velox
that referenced
this pull request
Mar 12, 2026
Summary: Add a virtual method to PlanNode that returns true if the node requires single-threaded execution (maxDrivers = 1). Override in ValuesNode, ArrowStreamNode, final TopNNode, final LimitNode, final OrderByNode, LocalMergeNode, MergeExchangeNode, MergeJoinNode, TableWriteMergeNode, LocalPartitionNode(Gather), MixedUnionNode, null-aware right semi project HashJoinNode, and TableWriteNode(!supportsMultiThreading). Refactor LocalPlanner::maxDrivers to use the new API instead of per-type dynamic_casts for single-thread checks. Config-dependent logic (writer counts, repartition partition count) remains unchanged. Differential Revision: D96366381
mbasmanova
added a commit
to mbasmanova/velox
that referenced
this pull request
Mar 12, 2026
Summary: Pull Request resolved: facebookincubator#16753 Add a virtual method to PlanNode that returns true if the node requires single-threaded execution (maxDrivers = 1). Override in ValuesNode, ArrowStreamNode, final TopNNode, final LimitNode, final OrderByNode, LocalMergeNode, MergeExchangeNode, MergeJoinNode, TableWriteMergeNode, LocalPartitionNode(Gather), MixedUnionNode, null-aware right semi project HashJoinNode, and TableWriteNode(!supportsMultiThreading). Refactor LocalPlanner::maxDrivers to use the new API instead of per-type dynamic_casts for single-thread checks. Config-dependent logic (writer counts, repartition partition count) remains unchanged. Differential Revision: D96366381
f4302c8 to
261b923
Compare
Summary: Add a virtual method to PlanNode that returns true if the node requires single-threaded execution (maxDrivers = 1). Override in ValuesNode, ArrowStreamNode, final TopNNode, final LimitNode, final OrderByNode, LocalMergeNode, MergeExchangeNode, MergeJoinNode, TableWriteMergeNode, LocalPartitionNode(Gather), MixedUnionNode, null-aware right semi project HashJoinNode, and TableWriteNode(!supportsMultiThreading). Refactor LocalPlanner::maxDrivers to use the new API instead of per-type dynamic_casts for single-thread checks. Config-dependent logic (writer counts, repartition partition count) remains unchanged. Reviewed By: xiaoxmeng Differential Revision: D96366381
261b923 to
221050a
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:
Add a virtual method to PlanNode that returns true if the node requires
single-threaded execution (maxDrivers = 1). Override in ValuesNode,
ArrowStreamNode, final TopNNode, final LimitNode, final OrderByNode,
LocalMergeNode, MergeExchangeNode, MergeJoinNode, TableWriteMergeNode,
LocalPartitionNode(Gather), MixedUnionNode, null-aware right semi project
HashJoinNode, and TableWriteNode(!supportsMultiThreading).
Refactor LocalPlanner::maxDrivers to use the new API instead of per-type
dynamic_casts for single-thread checks. Config-dependent logic (writer
counts, repartition partition count) remains unchanged.
Reviewed By: xiaoxmeng
Differential Revision: D96366381