Riza Suminto has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/22897


Change subject: IMPALA-14071: Refactor 
MathUtil.saturatingMultiplyCardinalities()
......................................................................

IMPALA-14071: Refactor MathUtil.saturatingMultiplyCardinalities()

There are multiple ways to do cardinality multipication that also avoid
integer overflow. Some helper methods available are:
MathUtil.saturatingMultiplyCardinalities()
PlanNode.checkedMultiply()
LongMath.saturatingMultiply()

This patch intent to simplify things by unifying
MathUtil.saturatingMultiplyCardinalities() with
PlanNode.checkedMultiply(). The latter is maintained, while also adding
cardinality Preconditions check. Similar Preconditions checks are also
added into PlanNode.checkedAdd().

Also fixed bug in ExchangeNode.estimateTotalQueueByteSize() that prevent
calculation against negative cardinality or negative num nodes.

Testing:
- Pass CardinalityTest and MathUtilTest.

Change-Id: I505ab11cfa1024feb4ceac4cffe9c3283be228ce
---
M fe/src/main/java/org/apache/impala/planner/AggregationNode.java
M fe/src/main/java/org/apache/impala/planner/ExchangeNode.java
M fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
M fe/src/main/java/org/apache/impala/planner/PlanNode.java
M fe/src/main/java/org/apache/impala/util/MathUtil.java
M fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
M fe/src/test/java/org/apache/impala/util/MathUtilTest.java
7 files changed, 44 insertions(+), 50 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/97/22897/1
--
To view, visit http://gerrit.cloudera.org:8080/22897
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I505ab11cfa1024feb4ceac4cffe9c3283be228ce
Gerrit-Change-Number: 22897
Gerrit-PatchSet: 1
Gerrit-Owner: Riza Suminto <[email protected]>

Reply via email to