[
https://issues.apache.org/jira/browse/DRILL-5457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16027220#comment-16027220
]
ASF GitHub Bot commented on DRILL-5457:
---------------------------------------
Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/822#discussion_r118812194
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggTemplate.java
---
@@ -230,15 +452,35 @@ public void setup(HashAggregate hashAggrConfig,
HashTableConfig htConfig, Fragme
throw new IllegalArgumentException("Wrong number of workspace
variables.");
}
-// this.context = context;
+ this.context = context;
this.stats = stats;
- this.allocator = allocator;
+ this.allocator = oContext.getAllocator();
+ this.oContext = oContext;
this.incoming = incoming;
-// this.schema = incoming.getSchema();
this.outgoing = outgoing;
this.outContainer = outContainer;
+ this.operatorId = hashAggrConfig.getOperatorId();
+
+ is2ndPhase = hashAggrConfig.getAggPhase() ==
AggPrelBase.OperatorPhase.PHASE_2of2;
+ isTwoPhase = hashAggrConfig.getAggPhase() !=
AggPrelBase.OperatorPhase.PHASE_1of1;
+ canSpill = isTwoPhase; // single phase can not spill
--- End diff --
Here we have three related booleans, or 2^8 cases. Consider using an enum
to identify the (likely much smaller) number of actual cases. Maybe `ONE_PASS,
FIRST_PHASE, SECOND_PHASE`?
Then if the code does lots of "if this phase do that" kind of logic, it may
be handy to have a single base class with common logic, then three (or
whatever) base classes that define the phase-specific logic. Much easier to
test and understand.
> Support Spill to Disk for the Hash Aggregate Operator
> -----------------------------------------------------
>
> Key: DRILL-5457
> URL: https://issues.apache.org/jira/browse/DRILL-5457
> Project: Apache Drill
> Issue Type: Improvement
> Components: Execution - Relational Operators
> Affects Versions: 1.10.0
> Reporter: Boaz Ben-Zvi
> Assignee: Boaz Ben-Zvi
> Fix For: 1.11.0
>
>
> Support gradual spilling memory to disk as the available memory gets too
> small to allow in memory work for the Hash Aggregate Operator.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)