[ https://issues.apache.org/jira/browse/DRILL-5457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16054994#comment-16054994 ]
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_r122858065 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java --- @@ -149,14 +149,24 @@ public IterOutcome innerNext() { if ( aggOut == HashAggregator.AggIterOutcome.AGG_OK ) { return IterOutcome.OK; } // if RESTART - continue below with doWork() - read some spilled partition, just like reading incoming incoming = aggregator.getNewIncoming(); // Restart - incoming was just changed - if ( wasKilled ) { // if kill() was called before, then finish up - aggregator.cleanup(); - incoming.kill(false); - return IterOutcome.NONE; - } } - AggOutcome out = aggregator.doWork(); + if ( wasKilled ) { // if kill() was called before, then finish up + aggregator.cleanup(); + incoming.kill(false); + return IterOutcome.NONE; + } + + // Read and aggregate records + // ( may need to run again if the spilled partition that was read + // generated new partitions that were all spilled ) + AggOutcome out = AggOutcome.CALL_WORK_AGAIN; + while ( out == AggOutcome.CALL_WORK_AGAIN) { + // + // Read incoming batches and process their records + // + out = aggregator.doWork(); + } --- End diff -- ``` while (aggregator.doWork() == AggOutcome.CALL_WORK_AGAIN) { // Nothing to do } ``` ? In one of your reviews you said you didn't like empty loops, but sometimes they are handy... > 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.4.14#64029)