[
https://issues.apache.org/jira/browse/TEZ-3709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15997035#comment-15997035
]
Jonathan Eagles edited comment on TEZ-3709 at 5/4/17 7:12 PM:
--------------------------------------------------------------
Updated computeBytesInMerges computation to the typewriter algorithm so that
the performance scales _linearly_.
| NUM SEGMENTS | v1 patch seconds | v2 patch seconds | no patch |
| 1000000 | 1.1 | 0.07 | 101.0 |
| 2000000 | 5.1 | 0.250 | 497.1 |
| 3000000 | 13.9 | 0.50 | ... |
| 4000000 | 28.1 | 0.69 | ... |
| 5000000 | 44.0 | 1.05 | ... |
| ... | ... | ... | ... |
| 10000000 | 199.7 | 4.23 | ... |
was (Author: jeagles):
Updated computeBytesInMerges computation to the typewriter algorithm so that
the performance scales _linearly_.
| NUM SEGMENTS | v1 patch seconds | v2 patch seconds | no patch |
| 1000000 | 1.1 | 0.07 | 101.0 |
| 2000000 | 5.1 | 0.250 | ... |
| 3000000 | 13.9 | 0.50 | ... |
| 4000000 | 28.1 | 0.69 | ... |
| 5000000 | 44.0 | 1.05 | ... |
| ... | ... | ... | ... |
| 10000000 | 199.7 | 4.23 | ... |
> 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
>
>
> 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)