tez-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajesh Balamohan (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
Date Sat, 27 Feb 2016 01:30:18 GMT

     [ https://issues.apache.org/jira/browse/TEZ-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rajesh Balamohan updated TEZ-1911:
----------------------------------
    Attachment: TEZ-1911.addendum.findbugs.patch

line 659 and line 662 were not valid as sync(manager) was already done. Attaching the addendum
patch to fix findbugs warnings 
-synchronizes getUsedMemory
-makes explicit calls to manager.getUsedMemory in IntermediateMemoryToMemoryMerger instead
of using usedMemory variable.

> MergeManager's unconditionalReserve() should check for memory limits before allocating
memory to IntermediateMemoryToMemoryMerger
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEZ-1911
>                 URL: https://issues.apache.org/jira/browse/TEZ-1911
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Rajesh Balamohan
>            Assignee: Rajesh Balamohan
>             Fix For: 0.8.3
>
>         Attachments: TEZ-1911.1.patch, TEZ-1911.2.patch, TEZ-1911.3.patch, TEZ-1911.addendum.findbugs.patch
>
>
> Currently, IntermediateMemoryToMemoryMerger invokes unconditionalReserve() to get the
memory needed for intermediate mem-to-mem merging.  It could potentially cause issue in the
following scenario
> 1. tez.runtime.io.sort.factor set to 100 and assume shuffled data (e.g 60% memory occupied)
haven't reached TEZ_RUNTIME_SHUFFLE_MERGE_PERCENT_DEFAULT
> 2. Assume that it reaches the sort.factor threshold before reaching merge threshold.
 This would kick in IntermediateMemoryToMemoryMerger.
> In IntermediateMemoryToMemoryMerger, it would try to allocate additional 60% without
any boundary checks.  This could lead to OOM depending on the tez.runtime.io.sort.mb setting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message