drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5457) Support Spill to Disk for the Hash Aggregate Operator
Date Tue, 20 Jun 2017 00:45:00 GMT

    [ 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)

Mime
View raw message