Tim Armstrong has posted comments on this change.

Change subject: IMPALA-4397,IMPALA-3259: reduce codegen time and memory
......................................................................


Patch Set 11:

(9 comments)

http://gerrit.cloudera.org:8080/#/c/4956/11/be/src/codegen/llvm-codegen.cc
File be/src/codegen/llvm-codegen.cc:

Line 939:   if (is_corrupt_) {
> did the formatter do this?
Oops, changed it back.


Line 988:                                               bytes_allocated),
> odd indentation
This was clang-format. I split it into two statements to avoid the weirdness.


Line 1044:                                               estimated_memory),
> odd indentation
This was clang-format. I split it into two statements to avoid the weirdness.


http://gerrit.cloudera.org:8080/#/c/4956/11/be/src/codegen/llvm-codegen.h
File be/src/codegen/llvm-codegen.h:

Line 127: //
> augment with brief comment describing memory tracking.
Done


Line 467:   /// expressions), avoid inlining the individual expression 
evaluation into the
> could we make it "avoid inlining for the exprs exceeding this threshold"?
Done


Line 595:   void DestroyIRModule();
> DestroyIrModule
Done


http://gerrit.cloudera.org:8080/#/c/4956/11/be/src/exec/hash-join-node.cc
File be/src/exec/hash-join-node.cc:

Line 140:                                 false, std::logical_or<bool>());
> odd indentation
Reverted it. It may be difficult to prevent clang-format for doing this again 
though.


http://gerrit.cloudera.org:8080/#/c/4956/11/be/src/exec/hdfs-scan-node-base.cc
File be/src/exec/hdfs-scan-node-base.cc:

Line 302:   if (IsNodeCodegenDisabled()) return;
> i find this counterintuitive - why call codegen() if it's disabled (ie, i'd
ExecNode::Codegen() is the function that walks the children nodes to Codegen() 
them, so we need to call it. We could refactor it so that we have a separate 
function called CodegenChildren() and ExecNode::Codegen() just calls that, but 
it's unclear if it's worth adding more indirection.


http://gerrit.cloudera.org:8080/#/c/4956/11/fe/src/main/java/org/apache/impala/planner/DistributedPlanner.java
File fe/src/main/java/org/apache/impala/planner/DistributedPlanner.java:

Line 824:       mergeFragment.getPlanRoot().setDisableCodegen(true);
> what is this for? does exchange ever do codegen?
Non-merging exchanges don't currently (we could codegen some of the pointer 
swizzling). I just added this because in principle we know it has the same 
number of rows flowing through it as the aggregation. Otherwise there's an 
assumption baked in here that the backend for ExchangeNode doesn't support 
codegen.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Id10015b49da182cb181a653ac8464b4a18b71091
Gerrit-PatchSet: 11
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Marcel Kornacker <mar...@cloudera.com>
Gerrit-Reviewer: Michael Ho <k...@cloudera.com>
Gerrit-Reviewer: Silvius Rus <s...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-HasComments: Yes

Reply via email to