[ 
https://issues.apache.org/jira/browse/PIG-3044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13506647#comment-13506647
 ] 

Julien Le Dem commented on PIG-3044:
------------------------------------

in DefaultAbstractBag.getMemorySize():

* You use avgTupleSize first to sum the aggregated tuple size and then you 
divide it to get the average. Could you use different names for clarity? 
something like:
{noformat}
for (j = 0; i.hasNext() && j < 100; j++) {
   totalTupleSize += i.next().getMemorySize()
}
averageTupleSize = totalTupleSize / j;
{noformat}

* Here we take the floor() of the average estimate. Do you want to make it a 
ceil() by adding + 1 ?
That way we would slightly overestimate instead of slightly underestimate.

otherwise it looks all good to me.
I would even say we remove the % memory budget as the Spillable mechanism is 
more reliable and much simpler.

+1

                
> Trigger POPartialAgg compaction under GC pressure
> -------------------------------------------------
>
>                 Key: PIG-3044
>                 URL: https://issues.apache.org/jira/browse/PIG-3044
>             Project: Pig
>          Issue Type: Improvement
>    Affects Versions: 0.10.0, 0.11, 0.10.1
>            Reporter: Dmitriy V. Ryaboy
>            Assignee: Dmitriy V. Ryaboy
>             Fix For: 0.12
>
>         Attachments: PIG-3404.diff
>
>
> If partial aggregation is turned on in pig 10 and 11, 20% (by default) of the 
> available heap can be consumed by the POPartialAgg operator. This can cause 
> memory issues for jobs that use all, or nearly all, of the heap already.
> If we make POPartialAgg "spillable" (trigger compaction when memory reduction 
> is required), we would be much nicer to high-memory jobs.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to