Skip to content

HIVE-28310: Disable hive.optimize.join.disjunctive.transitive.predicates.pushdown by default#5286

Closed
zabetak wants to merge 2 commits intoapache:masterfrom
zabetak:disjunctive-pushdown
Closed

HIVE-28310: Disable hive.optimize.join.disjunctive.transitive.predicates.pushdown by default#5286
zabetak wants to merge 2 commits intoapache:masterfrom
zabetak:disjunctive-pushdown

Conversation

@zabetak
Copy link
Member

@zabetak zabetak commented Jun 7, 2024

Why are the changes needed?

Pushing dis-junction and can lead to OOM and HS2 crashes. Turning off this feature would make HS2 more stable at the expense of some less efficient plans.

Does this PR introduce any user-facing change?

Plan and potentially performance changes.

Is the change a dependency upgrade?

No

How was this patch tested?

Existing tests

@zabetak zabetak changed the title Disable hive.optimize.join.disjunctive.transitive.predicates.pushdown by default HIVE-28310: Disable hive.optimize.join.disjunctive.transitive.predicates.pushdown by default Jun 7, 2024
Copy link
Member

@asolimando asolimando left a comment

Choose a reason for hiding this comment

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

I agree that, given the number of escalations and issues we have seen over time due to disjunctive filters, it's safer to disable it by default.

Queries experiencing performance regressions can always turn this property on.

Approval modulo pending tests.

All these are expected regressions highlighting the impact that this change may have on actual queries.

Observe that in terms of simplifications there are difficulties in the presence of negation/disjunction and the HiveJoinPushTransitivePredicatesRule.

(UDFToDouble(key) NOT BETWEEN 20.0D AND 100.0D and (UDFToDouble(key) > 100.0D))
is equivalent to
UDFToDouble(key) > 100.0D

Some predicates that were transitively propagated were redundant (see plans before).
@sonarqubecloud
Copy link

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

@zabetak zabetak marked this pull request as ready for review June 11, 2024 07:18
@zabetak zabetak closed this in a875a45 Jul 1, 2024
@zabetak zabetak deleted the disjunctive-pushdown branch July 1, 2024 07:55
mr3project pushed a commit to mr3project/hive-mr3 that referenced this pull request Aug 21, 2024
…tes.pushdown by default (Stamatis Zampetakis reviewed by Alessandro Solimando, Krisztian Kasa)

Pushing dis-junction and can lead to OOM and HS2 crashes. Turning off this feature would makes HiveServer2 more stable at the expense of some less efficient plans.

Close apache/hive#5286
dengzhhu653 pushed a commit to dengzhhu653/hive that referenced this pull request Sep 14, 2024
…tes.pushdown by default (Stamatis Zampetakis reviewed by Alessandro Solimando, Krisztian Kasa)

Pushing dis-junction and can lead to OOM and HS2 crashes. Turning off this feature would makes HiveServer2 more stable at the expense of some less efficient plans.

Close apache#5286
dengzhhu653 pushed a commit to dengzhhu653/hive that referenced this pull request Sep 20, 2024
…tes.pushdown by default (Stamatis Zampetakis reviewed by Alessandro Solimando, Krisztian Kasa)

Pushing dis-junction and can lead to OOM and HS2 crashes. Turning off this feature would makes HiveServer2 more stable at the expense of some less efficient plans.

Close apache#5286
mr3project pushed a commit to mr3project/hive-mr3 that referenced this pull request Nov 29, 2024
…tes.pushdown by default (Stamatis Zampetakis reviewed by Alessandro Solimando, Krisztian Kasa)

Pushing dis-junction and can lead to OOM and HS2 crashes. Turning off this feature would makes HiveServer2 more stable at the expense of some less efficient plans.

Close apache/hive#5286
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants