[ https://issues.apache.org/jira/browse/TEZ-3709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16000597#comment-16000597 ]
Rajesh Balamohan commented on TEZ-3709: --------------------------------------- Patch .3 considerably reduces the time as it ends up using long[] instead of list (& manual copy). lgtm. I was wondering whether {{segmentSizes}} can be modified to {{LinkedList}} instead of {{ArrayList}}. For 1 million segment entries, it brought down runtime from 91 seconds to 19 seconds on my laptop for {{computeBytesInMerges}}. I agree that it would be slower than .3; But given that it is going to millions of segments, connect/fetch times would take a lot higher time compared to this?. > TezMerger is slow for high number of segments > --------------------------------------------- > > Key: TEZ-3709 > URL: https://issues.apache.org/jira/browse/TEZ-3709 > Project: Apache Tez > Issue Type: Bug > Reporter: Jonathan Eagles > Assignee: Jonathan Eagles > Labels: performance > Attachments: TEZ-3709.1.patch, TEZ-3709.2.patch, TEZ-3709.3.patch > > > The below code is a bad performer at scale since it has to memcpy the whole > list of segments for each item in the batch instead of of just once per batch. > This is true for both computeBytesInMerges and getSegmentDescriptors. > {code} > for (int i = 0; i < batch; i++) { > ArrayList#remove(0) > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)