walterddr commented on code in PR #10211:
URL: https://github.com/apache/pinot/pull/10211#discussion_r1093776745
##########
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java:
##########
@@ -65,7 +65,7 @@ public void onMatch(RelOptRuleCall call) {
if (joinInfo.leftKeys.isEmpty()) {
// when there's no JOIN key, use broadcast.
- leftExchange = LogicalExchange.create(leftInput,
RelDistributions.SINGLETON);
+ leftExchange = LogicalExchange.create(leftInput,
RelDistributions.RANDOM_DISTRIBUTED);
rightExchange = LogicalExchange.create(rightInput,
RelDistributions.BROADCAST_DISTRIBUTED);
Review Comment:
it is the least restrictive exchange needed --> e.g. if right side has
already broadcast the data; left side can be arbitrarily exchange its data to
join stage.
- previously we can allow singleton here b/c we want to optimize
local-to-local transfer without ser/de or grpc hopping;
- however with the new singleton stage, we might not be able to apply this
optimization thus we relax the exchange to random
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]