[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ https://issues.apache.org/jira/browse/TEZ-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Lowe updated TEZ-1911: Fix Version/s: 0.7.1 Thanks, Rajesh! I committed this and the addendum patch to branch-0.7. > 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.7.1, 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)
[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ 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)
[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ 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.3.patch > 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 > Attachments: TEZ-1911.1.patch, TEZ-1911.2.patch, TEZ-1911.3.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)
[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ 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.2.patch Thanks [~sseth]. Addressed review comments in .2 patch -Removed thread interruption check -Retained the log statement. Will create subsequent JIRA for the other 2 enhancements. > 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 > Attachments: TEZ-1911.1.patch, TEZ-1911.2.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)
[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ 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.1.patch Patch merges segments such that it does not overshoot memory limit. > 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 > Attachments: TEZ-1911.1.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)
[jira] [Updated] (TEZ-1911) MergeManager's unconditionalReserve() should check for memory limits before allocating memory to IntermediateMemoryToMemoryMerger
[ https://issues.apache.org/jira/browse/TEZ-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rajesh Balamohan updated TEZ-1911: -- Target Version/s: 0.7.0 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 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)