Daniel Becker has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20498 )

Change subject: IMPALA-12018: Consider runtime filter for cardinality reduction
......................................................................


Patch Set 1:

(16 comments)

I can't say I understand the change, but here are some comments.

http://gerrit.cloudera.org:8080/#/c/20498/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/20498/1//COMMIT_MSG@18
PS1, Line 18: select
Nit: selects


http://gerrit.cloudera.org:8080/#/c/20498/1//COMMIT_MSG@20
PS1, Line 20: produce
Nit: produces.


http://gerrit.cloudera.org:8080/#/c/20498/1//COMMIT_MSG@25
PS1, Line 25: POCESSING
Typo: PROCESSING


http://gerrit.cloudera.org:8080/#/c/20498/1//COMMIT_MSG@25
PS1, Line 25: This is because
It's not clear to me how it explains that the cardinality reduction is only 
applied if the query option is on (as opposed to always being applied).


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/PlanNode.java
File fe/src/main/java/org/apache/impala/planner/PlanNode.java:

http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/PlanNode.java@128
PS1, Line 128:   protected long cardinality_;
Mention in the comment that it can also be replaced in replaceCardinality().


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/PlanNode.java@132
PS1, Line 132: Long
Does it need to be a Long? Can't we use -1 as the value indicating an 
invalid/unset state, like in the case of 'cardinality_'?


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/PlanNode.java@386
PS1, Line 386:         expBuilder.append("(")
Shouldn't we add some explanation here about what the value in parentheses 
means? Or would it be too much here?


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java
File fe/src/main/java/org/apache/impala/planner/Planner.java:

http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@534
PS1, Line 534: refine
Nit: refines.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@547
PS1, Line 547: hand
Nit: do we need 'hand' here?


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@585
PS1, Line 585: nodeStack_.get(0)
Could add a precondition check that 'nodeStack_' is not empty.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@592
PS1, Line 592: filter.getSrc().getId()
Could extract it into a variable.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@592
PS1, Line 592: containsKey
Could use Map::computeIfAbsent() here.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@621
PS1, Line 621: consider
Nit: considers.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/Planner.java@658
PS1, Line 658: require
Nit: requires.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/RuntimeFilterGenerator.java
File fe/src/main/java/org/apache/impala/planner/RuntimeFilterGenerator.java:

http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/RuntimeFilterGenerator.java@640
PS1, Line 640:       for (RuntimeFilterTarget target : targets_) {
I think it would be cleaner if we inverted the if and returned from there - 
'continue' would not be needed.


http://gerrit.cloudera.org:8080/#/c/20498/1/fe/src/main/java/org/apache/impala/planner/RuntimeFilterGenerator.java@658
PS1, Line 658: only valid for bloom filter.
Can we check if it is a Bloom filter? We could add a Precondition check.



--
To view, visit http://gerrit.cloudera.org:8080/20498
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I033789c9b63a8188484e3afde8e646563918b3e1
Gerrit-Change-Number: 20498
Gerrit-PatchSet: 1
Gerrit-Owner: Riza Suminto <riza.sumi...@cloudera.com>
Gerrit-Reviewer: Abhishek Rawat <ara...@cloudera.com>
Gerrit-Reviewer: Csaba Ringhofer <csringho...@cloudera.com>
Gerrit-Reviewer: Daniel Becker <daniel.bec...@cloudera.com>
Gerrit-Reviewer: David Rorke <dro...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Riza Suminto <riza.sumi...@cloudera.com>
Gerrit-Comment-Date: Tue, 17 Oct 2023 09:27:31 +0000
Gerrit-HasComments: Yes

Reply via email to