[ 
https://issues.apache.org/jira/browse/HBASE-22532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16855281#comment-16855281
 ] 

Zheng Hu commented on HBASE-22532:
----------------------------------

Enabled the TRACE log level for package: org.apache.hadoop.hbase.io.hfile, I 
saw the following: 
{code}
2019-06-04,11:37:07,708 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131105, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=416071913, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,708 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131105, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=49792391, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,708 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131105, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=4161901960, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131124, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/f9c051dc047d4b6eaf6abe2dc4b91341/C/0499a0f39a38484eaf3a5272a8f3f58b,
 offset=5988442057, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131125, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/9dcc6c7b0e1eba716b0319ed62ee817c/C/dc2a502a15b047abb5454abbe38fb1d2,
 offset=2064659256, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131135, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=412656269, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131131, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=206262863, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131137, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/7553c3f3fb00bb32d42a71f8a21d37ff/C/123a8968c0d641038c678117c3948bd6,
 offset=4336370991, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=131072, sizeWithHeader=65670, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/f9c051dc047d4b6eaf6abe2dc4b91341/C/0499a0f39a38484eaf3a5272a8f3f58b,
 offset=5892798979, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=131072, sizeWithHeader=65670, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/85934f83f9ffa51342ea0201b58303fd/C/ce3f52695c2b43b1898fc9a266a67344,
 offset=1179439193, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=262144, sizeWithHeader=131105, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/a24da982a9f2734994efac0e7c7b838d/C/6eda621c9ee847c281a6e944d86ffe38,
 offset=2896672688, headerSize=33, bytesPerChecksum=16384
2019-06-04,11:37:07,709 INFO org.apache.hadoop.hbase.io.hfile.ChecksumUtil: 
dataLength=131072, sizeWithHeader=65671, checksumType=CRC32C, 
file=hdfs://c302tst-offheap-reading/hbase/c302tst-offheap-reading/data/default/ycsb-test/9dcc6c7b0e1eba716b0319ed62ee817c/C/dc2a502a15b047abb5454abbe38fb1d2,
 offset=1947799767, headerSize=33, bytesPerChecksum=16384
{code}
Seems many block have a diskSize>128KB.  FYI [~anoop.hbase], [~ram_krish].

> There's still too much cpu wasting on validating checksum even if 
> buffer.size=65KB
> ----------------------------------------------------------------------------------
>
>                 Key: HBASE-22532
>                 URL: https://issues.apache.org/jira/browse/HBASE-22532
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>            Priority: Major
>         Attachments: async-prof-pid-27827-cpu-3.svg
>
>
> After disabled the block cache, and with the following config: 
> {code}
>     # Disable the block cache
>     hfile.block.cache.size=0
>     hbase.ipc.server.allocator.buffer.size=66560
>     hbase.ipc.server.reservoir.minimal.allocating.size=0
> {code}
> The ByteBuff for block should be expected to be a SingleByteBuff,  which will 
> use the hadoop native lib to validate the checksum, while in the cpu flame 
> graph 
> [async-prof-pid-27827-cpu-3.svg|https://issues.apache.org/jira/secure/attachment/12970683/async-prof-pid-27827-cpu-3.svg],
>   we can still see that about 32% CPU wasted on PureJavaCrc32#update,  which 
> means it's not using the faster hadoop native lib.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to