You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Chris Douglas (JIRA)" <ji...@apache.org> on 2014/05/14 19:53:19 UTC
[jira] [Updated] (MAPREDUCE-5821) IFile merge allocates new byte
array for every value
[ https://issues.apache.org/jira/browse/MAPREDUCE-5821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Douglas updated MAPREDUCE-5821:
-------------------------------------
Resolution: Fixed
Fix Version/s: 2.4.1
2.5.0
3.0.0
Hadoop Flags: Reviewed
Status: Resolved (was: Patch Available)
I committed this. Thanks, Todd
> IFile merge allocates new byte array for every value
> ----------------------------------------------------
>
> Key: MAPREDUCE-5821
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-5821
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: performance, task
> Affects Versions: 2.4.1
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Fix For: 3.0.0, 2.5.0, 2.4.1
>
> Attachments: after-patch.png, before-patch.png, mapreduce-5821.txt, mapreduce-5821.txt
>
>
> I wrote a standalone benchmark of the MapOutputBuffer and found that it did a lot of allocations during the merge phase. After looking at an allocation profile, I found that IFile.Reader.nextRawValue() would always allocate a new byte array for every value, so the allocation rate goes way up during the merge phase of the mapper. I imagine this also affects the reducer input, though I didn't profile that.
--
This message was sent by Atlassian JIRA
(v6.2#6252)