[ https://issues.apache.org/jira/browse/HADOOP-7339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041010#comment-13041010
]
Todd Lipcon commented on HADOOP-7339:
-------------------------------------
I understand how this could make a big difference using the builtin CRC32. But, with PureJavaCrc32,
there shouldn't be any particularly large advantage to buffering like this.
Did you see a speedup in terasort performance? Just seeing fewer calls doesn't necessarily
mean it's an improvement.
> Introduce a buffered checksum for avoiding frequently calls on Checksum.update()
> --------------------------------------------------------------------------------
>
> Key: HADOOP-7339
> URL: https://issues.apache.org/jira/browse/HADOOP-7339
> Project: Hadoop Common
> Issue Type: Improvement
> Components: util
> Reporter: Min Zhou
> Fix For: 0.22.0
>
> Attachments: HADOOP-7339-v1.diff, HADOOP-7339-v2.diff
>
>
> We found that PureJavaCRC32/CRC32.update() is the TOP 1 of the methods consuming CPU
in a map side, and in reduce side, it cost a lots of CPU too.
> IFileOutputStream would frequently call Checksum.update() during writing a record. It's
very common a MR key/value less than 512 bytes. Checksum.update() would be called every time
writing a key/value.
> Test case: terasort 100MB.
> Checksum.update() calls has be reduced from 4030348 to 28069. This method is not a hotspot
anymore.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
|