Add use-exact-partitioning-enabled session property#13354
Add use-exact-partitioning-enabled session property#13354arhimondr merged 3 commits intoprestodb:masterfrom
Conversation
07c8cac to
b086255
Compare
9d7ffd9 to
988ae14
Compare
|
A bunch of unrelated files snuck in, I'll clean that up now. |
651259f to
f6fa5e1
Compare
presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java
Outdated
Show resolved
Hide resolved
...to-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PreferredProperties.java
Outdated
Show resolved
Hide resolved
...to-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PreferredProperties.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java
Outdated
Show resolved
Hide resolved
presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java
Outdated
Show resolved
Hide resolved
f6fa5e1 to
82ce85a
Compare
|
I think we can merge the 2 PRs. Both #11262 and this PR are trying to control the behavior when adding repartitions. In #11262 the main focus is to control the following 2 actions: I added a session property to control this behavior: In this PR, we introduce a more strict version of PS: |
|
@jessesleeping Yeah it looks like exact partitioning, just wants a specific set of behaviors out of partition merging strategy. Maybe it makes sense to back out my changes to mergeWithParent and have use exact partitioning set partition merging strategy appropriately. |
|
@aweisberg How about merging the session properties we introduced into a single one that has 4 options: |
|
@jessesleeping So exact would be the behavior I implemented in this PR? Makes sense to me. |
2fbdfae to
4739d1d
Compare
arhimondr
left a comment
There was a problem hiding this comment.
I would also suggest to merge two configuration into one (effectively adding one more option to the enum LEGACY, TOP_DOWN, BOTTOM_UP, EXACT.
There was a problem hiding this comment.
From what i understand there are only 2 differences between EXACT and MERGE_PARTITION_PREFERENCE: when EXACT is chosen - the local properties are not merged, and if the current property requirement has no partitioning requirement - parent partitioning requirement is taken.
The localProperties in the PreferredProperties (and expecially merging them) makes no sense. So I checked how the localProperties properties are used, and I have found that the localProperties are effectively unused. Thus I wouldn't bother about the localProperties for now. Ideally it would be nice to have a refactoring PR, and completely remove this field to avoid confusion in the future.
For the "no partitioning" requirement case - I don't think there's any practical difference.
Thus, I'm trying to imply that we should simply have a boolean flag here.
12f1d9e to
744e2ba
Compare
08394ac to
e0638a4
Compare
|
I think this is ready to look at again. I think CI is failing on an unrelated timeout. It still seems to be making progress but it is taking too long? It also just failed here https://travis-ci.org/prestodb/presto/jobs/634881878?utm_medium=notification&utm_source=github_status Going to run it locally to see what happens. |
|
So this is test-hive-pushdown-filter-queries-basic. I really we wish we had "real" CI so I could go back to older builds and figure out if this has been getting slower over time. It has two tests in it. We could split the two tests into separate jobs. |
120211a to
5a3725d
Compare
arhimondr
left a comment
There was a problem hiding this comment.
Please squash unnecessary commits before merge
5a3725d to
67449a1
Compare
|
Rebased and removed the commits that showed the tests are still passing. |
When enabled this forces exchanges to occur unless the partitioning matches exactly