Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[multistage] Allow Changing Default for Semi Join Dynamic Broadcast Optimization #14781

Open
ankitsultana opened this issue Jan 8, 2025 · 1 comment
Assignees
Labels
multi-stage Related to the multi-stage query engine

Comments

@ankitsultana
Copy link
Contributor

Currently, the PinotJoinToDynamicBroadcastRule is applied even if there's no explicit hint provided. While it's great to have this optimization, it shouldn't be ON by default (at least for Uber.. some other companies may prefer it).

Hence it would be great if we can make it so that this rule doesn't get auto applied for every query.

We can't change the default behavior now I guess since it would be backwards incompatible, so the most natural solution to me is to make it configurable.

QueryEnvironment could pass in the broker config to PinotQueryRuleSets, which can pass the config to the eligible rules.

Forward looking guideline: I think we should only use configurations for rules in exceptional scenarios like this one, since adding complexity to the rule set would make testing harder.

cc: @shauryachats

@ankitsultana ankitsultana added the multi-stage Related to the multi-stage query engine label Jan 8, 2025
@ankitsultana ankitsultana self-assigned this Jan 8, 2025
@Jackie-Jiang
Copy link
Contributor

+1 on allowing including/excluding rules by: 1. broker config; 2. query hint/option

We can assign name to each rule, and allow user to provide a list of excluded rules. In the future we might also want to support an included list of rules which are not included by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
multi-stage Related to the multi-stage query engine
Projects
None yet
Development

No branches or pull requests

2 participants