[
https://issues.apache.org/jira/browse/PIG-4782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rohini Palaniswamy updated PIG-4782:
------------------------------------
Attachment: PIG-4782-2-fixslowness.patch
Though the patch avoided OOM, it introduced slowness with the sleep of 5 sec in
cases when spill is called multiple times before the code reaches POPartialAgg
and it is aggregated. It gets slow by 5 sec * number of times the spill was
called. The uploaded PIG-4782-2-fixslowness.patch skips the sleep second time
if spill is not processed by POPartialAgg yet.
> OutOfMemoryError: GC overhead limit exceeded with POPartialAgg
> --------------------------------------------------------------
>
> Key: PIG-4782
> URL: https://issues.apache.org/jira/browse/PIG-4782
> Project: Pig
> Issue Type: Bug
> Reporter: Rohini Palaniswamy
> Assignee: Rohini Palaniswamy
> Fix For: 0.16.0
>
> Attachments: PIG-4782-1.patch, PIG-4782-2-fixslowness.patch
>
>
> In some cases, even though spill is triggered the main thread is still
> executing some user UDF which constructs a DataBag which requires lot of
> memory. Since we block on spill in POPartialAgg, there is kind of a deadlock
> as there is no memory for the user DataBag to grow and spill does not happen
> and job finally failing with OutOfMemoryError: GC overhead limit exceeded. So
> need to make POPartialAgg non-blocking so that the user DataBag can be
> spilled first for the code to reach POPartialAgg and spill.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)