Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-14405

Fix performance regression due to incorrect use of DataChecksum

    Details

    • Hadoop Flags:
      Reviewed
    • Flags:
      Patch

      Description

      Recently I have upgraded my Hadoop version from 2.6 to 3.0, and I find that the write performance decreased by 13%. After some days comparative analysis, It's seems introduced by HADOOP-10865.

      Since James Thomas have done the work that native checksum can run against byte[] arrays instead of just against byte buffers, we may use native method preferential because it runs faster than others.

      Tsz Wo Nicholas Sze and Masatake Iwasaki could you take a look at this to see if it make bad effect on your benchmark test? Todd Lipcon could you help to see if I have make mistakes in this patch?
      thanks!

        Activity

        Hide
        hadoopqa Hadoop QA added a comment -
        -1 overall



        Vote Subsystem Runtime Comment
        0 reexec 0m 16s Docker mode activated.
        +1 @author 0m 0s The patch does not contain any @author tags.
        -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
        +1 mvninstall 13m 39s trunk passed
        +1 compile 15m 13s trunk passed
        +1 checkstyle 0m 36s trunk passed
        +1 mvnsite 1m 5s trunk passed
        +1 mvneclipse 0m 20s trunk passed
        -1 findbugs 1m 22s hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings.
        +1 javadoc 0m 49s trunk passed
        +1 mvninstall 0m 38s the patch passed
        +1 compile 14m 21s the patch passed
        +1 javac 14m 21s the patch passed
        -0 checkstyle 0m 36s hadoop-common-project/hadoop-common: The patch generated 2 new + 133 unchanged - 0 fixed = 135 total (was 133)
        +1 mvnsite 1m 2s the patch passed
        +1 mvneclipse 0m 20s the patch passed
        +1 whitespace 0m 0s The patch has no whitespace issues.
        +1 findbugs 1m 30s the patch passed
        +1 javadoc 0m 49s the patch passed
        -1 unit 7m 51s hadoop-common in the patch failed.
        +1 asflicense 0m 34s The patch does not generate ASF License warnings.
        62m 8s



        Reason Tests
        Failed junit tests hadoop.net.TestDNS



        Subsystem Report/Notes
        Docker Image:yetus/hadoop:14b5c93
        JIRA Issue HDFS-11765
        JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866847/HDFS-11765.patch
        Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle
        uname Linux bd2fbbdd7eae 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
        Build tool maven
        Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
        git revision trunk / a9a3d21
        Default Java 1.8.0_121
        findbugs v3.1.0-RC1
        findbugs https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html
        checkstyle https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/diff-checkstyle-hadoop-common-project_hadoop-common.txt
        unit https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/patch-unit-hadoop-common-project_hadoop-common.txt
        Test Results https://builds.apache.org/job/PreCommit-HDFS-Build/19341/testReport/
        modules C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common
        Console output https://builds.apache.org/job/PreCommit-HDFS-Build/19341/console
        Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org

        This message was automatically generated.

        Show
        hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 0m 16s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 mvninstall 13m 39s trunk passed +1 compile 15m 13s trunk passed +1 checkstyle 0m 36s trunk passed +1 mvnsite 1m 5s trunk passed +1 mvneclipse 0m 20s trunk passed -1 findbugs 1m 22s hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings. +1 javadoc 0m 49s trunk passed +1 mvninstall 0m 38s the patch passed +1 compile 14m 21s the patch passed +1 javac 14m 21s the patch passed -0 checkstyle 0m 36s hadoop-common-project/hadoop-common: The patch generated 2 new + 133 unchanged - 0 fixed = 135 total (was 133) +1 mvnsite 1m 2s the patch passed +1 mvneclipse 0m 20s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 findbugs 1m 30s the patch passed +1 javadoc 0m 49s the patch passed -1 unit 7m 51s hadoop-common in the patch failed. +1 asflicense 0m 34s The patch does not generate ASF License warnings. 62m 8s Reason Tests Failed junit tests hadoop.net.TestDNS Subsystem Report/Notes Docker Image:yetus/hadoop:14b5c93 JIRA Issue HDFS-11765 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866847/HDFS-11765.patch Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle uname Linux bd2fbbdd7eae 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision trunk / a9a3d21 Default Java 1.8.0_121 findbugs v3.1.0-RC1 findbugs https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html checkstyle https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/diff-checkstyle-hadoop-common-project_hadoop-common.txt unit https://builds.apache.org/job/PreCommit-HDFS-Build/19341/artifact/patchprocess/patch-unit-hadoop-common-project_hadoop-common.txt Test Results https://builds.apache.org/job/PreCommit-HDFS-Build/19341/testReport/ modules C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common Console output https://builds.apache.org/job/PreCommit-HDFS-Build/19341/console Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
        Hide
        GeLiXin LiXin Ge added a comment -

        update the patch for the style warnings

        Show
        GeLiXin LiXin Ge added a comment - update the patch for the style warnings
        Hide
        hadoopqa Hadoop QA added a comment -
        -1 overall



        Vote Subsystem Runtime Comment
        0 reexec 0m 30s Docker mode activated.
        +1 @author 0m 0s The patch does not contain any @author tags.
        -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
        +1 mvninstall 17m 40s trunk passed
        +1 compile 17m 18s trunk passed
        +1 checkstyle 0m 37s trunk passed
        +1 mvnsite 1m 5s trunk passed
        +1 mvneclipse 0m 21s trunk passed
        -1 findbugs 1m 26s hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings.
        +1 javadoc 0m 50s trunk passed
        +1 mvninstall 0m 41s the patch passed
        +1 compile 15m 24s the patch passed
        +1 javac 15m 24s the patch passed
        +1 checkstyle 0m 36s the patch passed
        +1 mvnsite 1m 5s the patch passed
        +1 mvneclipse 0m 20s the patch passed
        +1 whitespace 0m 0s The patch has no whitespace issues.
        +1 findbugs 1m 34s the patch passed
        +1 javadoc 0m 51s the patch passed
        -1 unit 8m 10s hadoop-common in the patch failed.
        +1 asflicense 0m 35s The patch does not generate ASF License warnings.
        70m 11s



        Reason Tests
        Failed junit tests hadoop.security.TestRaceWhenRelogin



        Subsystem Report/Notes
        Docker Image:yetus/hadoop:14b5c93
        JIRA Issue HDFS-11765
        JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866863/HDFS-11765.patch
        Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle
        uname Linux f48e10de2cf1 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
        Build tool maven
        Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
        git revision trunk / a9a3d21
        Default Java 1.8.0_121
        findbugs v3.1.0-RC1
        findbugs https://builds.apache.org/job/PreCommit-HDFS-Build/19346/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html
        unit https://builds.apache.org/job/PreCommit-HDFS-Build/19346/artifact/patchprocess/patch-unit-hadoop-common-project_hadoop-common.txt
        Test Results https://builds.apache.org/job/PreCommit-HDFS-Build/19346/testReport/
        modules C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common
        Console output https://builds.apache.org/job/PreCommit-HDFS-Build/19346/console
        Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org

        This message was automatically generated.

        Show
        hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 0m 30s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 mvninstall 17m 40s trunk passed +1 compile 17m 18s trunk passed +1 checkstyle 0m 37s trunk passed +1 mvnsite 1m 5s trunk passed +1 mvneclipse 0m 21s trunk passed -1 findbugs 1m 26s hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings. +1 javadoc 0m 50s trunk passed +1 mvninstall 0m 41s the patch passed +1 compile 15m 24s the patch passed +1 javac 15m 24s the patch passed +1 checkstyle 0m 36s the patch passed +1 mvnsite 1m 5s the patch passed +1 mvneclipse 0m 20s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 findbugs 1m 34s the patch passed +1 javadoc 0m 51s the patch passed -1 unit 8m 10s hadoop-common in the patch failed. +1 asflicense 0m 35s The patch does not generate ASF License warnings. 70m 11s Reason Tests Failed junit tests hadoop.security.TestRaceWhenRelogin Subsystem Report/Notes Docker Image:yetus/hadoop:14b5c93 JIRA Issue HDFS-11765 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866863/HDFS-11765.patch Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle uname Linux f48e10de2cf1 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision trunk / a9a3d21 Default Java 1.8.0_121 findbugs v3.1.0-RC1 findbugs https://builds.apache.org/job/PreCommit-HDFS-Build/19346/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html unit https://builds.apache.org/job/PreCommit-HDFS-Build/19346/artifact/patchprocess/patch-unit-hadoop-common-project_hadoop-common.txt Test Results https://builds.apache.org/job/PreCommit-HDFS-Build/19346/testReport/ modules C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common Console output https://builds.apache.org/job/PreCommit-HDFS-Build/19346/console Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
        Hide
        iwasakims Masatake Iwasaki added a comment -

        Thanks for reporting this, LiXin Ge. Let me see the patch and related code. I think changing code path not for the test is not intended by HADOOP-10865. It would be good to fix it if there is a regression.

        Show
        iwasakims Masatake Iwasaki added a comment - Thanks for reporting this, LiXin Ge . Let me see the patch and related code. I think changing code path not for the test is not intended by HADOOP-10865 . It would be good to fix it if there is a regression.
        Hide
        szetszwo Tsz Wo Nicholas Sze added a comment -

        +1 Good catch on the regression and thanks for the patch!

        Will commit this tomorrow to see if anyone has comments.

        Show
        szetszwo Tsz Wo Nicholas Sze added a comment - +1 Good catch on the regression and thanks for the patch! Will commit this tomorrow to see if anyone has comments.
        Hide
        iwasakims Masatake Iwasaki added a comment -

        The patch lgtm too. I'm running HDFS tests with the patch applied. +1 if there is no failures except for known flaky ones.

        I find that the write performance decreased by 13%

        LiXin Ge, can you share how you did the comparison? It would be nice if we can reproduce the issue by TestDFSIO or similar.

        BlockReceiver seems to be relevant caller of DataChecksum#BlockReceiver with non-direct buffer. Based on the result of Crc32PerformanceTest, NativeCrc32 is faster than CRC32 if bytes-per-checksum <= 128 on my environment.

        Show
        iwasakims Masatake Iwasaki added a comment - The patch lgtm too. I'm running HDFS tests with the patch applied. +1 if there is no failures except for known flaky ones. I find that the write performance decreased by 13% LiXin Ge , can you share how you did the comparison? It would be nice if we can reproduce the issue by TestDFSIO or similar. BlockReceiver seems to be relevant caller of DataChecksum#BlockReceiver with non-direct buffer. Based on the result of Crc32PerformanceTest, NativeCrc32 is faster than CRC32 if bytes-per-checksum <= 128 on my environment.
        Hide
        GeLiXin LiXin Ge added a comment -

        Tsz Wo Nicholas Sze Thanks for review !

        Show
        GeLiXin LiXin Ge added a comment - Tsz Wo Nicholas Sze Thanks for review !
        Hide
        GeLiXin LiXin Ge added a comment -

        Masatake Iwasaki Thanks for review, too.

        LiXin Ge, can you share how you did the comparison? It would be nice if we can reproduce the issue by TestDFSIO or similar.

        It's my spark job which takes longer time than before that catch my attention. The simplest way to reproduce is just write a big file to HDFS, the time cost by write a 10GB file change to 71 seconds from 63 seconds.

        Based on the result of Crc32PerformanceTest, NativeCrc32 is faster than CRC32 if bytes-per-checksum <= 128 on my environment.

        On my environment, NativeCrc32 is faster than ZIP and PureJava at all the bpc. BTW, the default checksum type is CRC32C in hadoop, which means HDFS will use PureJava algorithm when we didn't let it use native.

        Direct Buffer Performance Table (bpc: byte-per-crc in MB/sec; #T: #Theads)

        bpc #T Zip PureJava % diff Native % diff % diff
        32 1 168.8 406.9 141.0% 787.4 366.4% 93.5%
        32 2 167.6 400.6 139.0% 787.3 369.8% 96.5%
        32 4 167.3 405.6 142.5% 790.8 372.7% 95.0%
        32 8 127.7 343.8 169.2% 791.2 519.5% 130.1%
        32 16 89.8 218.5 143.4% 474.4 428.4% 117.1%
        bpc #T Zip PureJava % diff Native % diff % diff
        64 1 254.7 462.9 81.8% 872.2 242.5% 88.4%
        64 2 254.2 424.5 67.0% 886.9 248.9% 108.9%
        64 4 250.5 386.5 54.3% 893.0 256.5% 131.0%
        64 8 171.8 224.3 30.6% 875.0 409.4% 290.1%
        64 16 113.6 197.5 73.8% 535.0 370.7% 170.8%
        bpc #T Zip PureJava % diff Native % diff % diff
        128 1 349.6 512.1 46.5% 936.3 167.8% 82.8%
        128 2 309.0 291.9 -5.5% 961.5 211.2% 229.4%
        128 4 235.4 444.1 88.7% 932.6 296.2% 110.0%
        128 8 232.7 345.2 48.4% 788.2 238.8% 128.3%
        128 16 190.9 249.7 30.8% 558.6 192.7% 123.7%
        bpc #T Zip PureJava % diff Native % diff % diff
        256 1 430.2 541.1 25.8% 997.3 131.8% 84.3%
        256 2 428.1 523.5 22.3% 984.9 130.0% 88.1%
        256 4 423.4 491.0 16.0% 993.1 134.5% 102.2%
        256 8 388.0 480.9 23.9% 974.8 151.2% 102.7%
        256 16 263.7 271.4 2.9% 587.2 122.7% 116.4%
        bpc #T Zip PureJava % diff Native % diff % diff
        512 1 472.0 548.4 16.2% 1001.2 112.1% 82.6%
        512 2 386.2 446.6 15.6% 998.6 158.6% 123.6%
        512 4 387.8 467.9 20.7% 991.9 155.8% 112.0%
        512 8 368.9 430.0 16.6% 989.3 168.2% 130.1%
        512 16 316.6 301.5 -4.7% 599.7 89.4% 98.9%
        bpc #T Zip PureJava % diff Native % diff % diff
        1024 1 495.1 543.3 9.7% 958.6 93.6% 76.4%
        1024 2 489.6 491.7 0.4% 937.3 91.4% 90.6%
        1024 4 452.7 500.3 10.5% 939.2 107.5% 87.7%
        1024 8 443.4 485.6 9.5% 934.1 110.7% 92.3%
        1024 16 364.7 316.3 -13.3% 598.1 64.0% 89.1%
        bpc #T Zip PureJava % diff Native % diff % diff
        2048 1 501.8 543.2 8.3% 957.9 90.9% 76.4%
        2048 2 511.6 546.1 6.7% 943.2 84.4% 72.7%
        2048 4 493.9 524.3 6.2% 939.9 90.3% 79.3%
        2048 8 464.3 500.5 7.8% 938.0 102.0% 87.4%
        2048 16 397.5 331.8 -16.5% 605.0 52.2% 82.3%
        bpc #T Zip PureJava % diff Native % diff % diff
        4096 1 505.0 537.8 6.5% 940.3 86.2% 74.9%
        4096 2 501.6 520.9 3.8% 938.6 87.1% 80.2%
        4096 4 498.3 525.0 5.4% 943.3 89.3% 79.7%
        4096 8 486.8 507.6 4.3% 939.8 93.1% 85.2%
        4096 16 409.7 333.5 -18.6% 603.9 47.4% 81.1%
        bpc #T Zip PureJava % diff Native % diff % diff
        8192 1 506.2 533.7 5.4% 945.4 86.8% 77.1%
        8192 2 510.2 538.3 5.5% 962.3 88.6% 78.8%
        8192 4 505.3 521.8 3.3% 944.6 86.9% 81.0%
        8192 8 473.4 487.6 3.0% 880.3 85.9% 80.5%
        8192 16 419.8 336.7 -19.8% 608.5 44.9% 80.8%
        bpc #T Zip PureJava % diff Native % diff % diff
        16384 1 511.0 539.6 5.6% 956.4 87.2% 77.2%
        16384 2 512.2 535.5 4.6% 960.9 87.6% 79.4%
        16384 4 504.4 534.5 6.0% 944.7 87.3% 76.7%
        16384 8 492.3 513.4 4.3% 957.8 94.5% 86.6%
        16384 16 433.9 340.6 -21.5% 611.6 41.0% 79.6%
        bpc #T Zip PureJava % diff Native % diff % diff
        32768 1 518.8 544.1 4.9% 957.8 84.6% 76.0%
        32768 2 511.1 537.3 5.1% 947.7 85.4% 76.4%
        32768 4 511.7 530.5 3.7% 949.0 85.4% 78.9%
        32768 8 494.6 512.7 3.7% 934.6 89.0% 82.3%
        32768 16 433.9 343.1 -20.9% 613.1 41.3% 78.7%
        bpc #T Zip PureJava % diff Native % diff % diff
        65536 1 512.5 545.7 6.5% 943.1 84.0% 72.8%
        65536 2 510.1 536.2 5.1% 942.2 84.7% 75.7%
        65536 4 508.3 532.9 4.8% 946.8 86.3% 77.7%
        65536 8 494.9 514.8 4.0% 951.9 92.3% 84.9%
        65536 16 435.2 341.2 -21.6% 610.4 40.3% 78.9%

        Elapsed 166.7s

        Show
        GeLiXin LiXin Ge added a comment - Masatake Iwasaki Thanks for review, too. LiXin Ge, can you share how you did the comparison? It would be nice if we can reproduce the issue by TestDFSIO or similar. It's my spark job which takes longer time than before that catch my attention. The simplest way to reproduce is just write a big file to HDFS, the time cost by write a 10GB file change to 71 seconds from 63 seconds. Based on the result of Crc32PerformanceTest, NativeCrc32 is faster than CRC32 if bytes-per-checksum <= 128 on my environment. On my environment, NativeCrc32 is faster than ZIP and PureJava at all the bpc. BTW, the default checksum type is CRC32C in hadoop, which means HDFS will use PureJava algorithm when we didn't let it use native. Direct Buffer Performance Table (bpc: byte-per-crc in MB/sec; #T: #Theads) bpc #T Zip PureJava % diff Native % diff % diff 32 1 168.8 406.9 141.0% 787.4 366.4% 93.5% 32 2 167.6 400.6 139.0% 787.3 369.8% 96.5% 32 4 167.3 405.6 142.5% 790.8 372.7% 95.0% 32 8 127.7 343.8 169.2% 791.2 519.5% 130.1% 32 16 89.8 218.5 143.4% 474.4 428.4% 117.1% bpc #T Zip PureJava % diff Native % diff % diff 64 1 254.7 462.9 81.8% 872.2 242.5% 88.4% 64 2 254.2 424.5 67.0% 886.9 248.9% 108.9% 64 4 250.5 386.5 54.3% 893.0 256.5% 131.0% 64 8 171.8 224.3 30.6% 875.0 409.4% 290.1% 64 16 113.6 197.5 73.8% 535.0 370.7% 170.8% bpc #T Zip PureJava % diff Native % diff % diff 128 1 349.6 512.1 46.5% 936.3 167.8% 82.8% 128 2 309.0 291.9 -5.5% 961.5 211.2% 229.4% 128 4 235.4 444.1 88.7% 932.6 296.2% 110.0% 128 8 232.7 345.2 48.4% 788.2 238.8% 128.3% 128 16 190.9 249.7 30.8% 558.6 192.7% 123.7% bpc #T Zip PureJava % diff Native % diff % diff 256 1 430.2 541.1 25.8% 997.3 131.8% 84.3% 256 2 428.1 523.5 22.3% 984.9 130.0% 88.1% 256 4 423.4 491.0 16.0% 993.1 134.5% 102.2% 256 8 388.0 480.9 23.9% 974.8 151.2% 102.7% 256 16 263.7 271.4 2.9% 587.2 122.7% 116.4% bpc #T Zip PureJava % diff Native % diff % diff 512 1 472.0 548.4 16.2% 1001.2 112.1% 82.6% 512 2 386.2 446.6 15.6% 998.6 158.6% 123.6% 512 4 387.8 467.9 20.7% 991.9 155.8% 112.0% 512 8 368.9 430.0 16.6% 989.3 168.2% 130.1% 512 16 316.6 301.5 -4.7% 599.7 89.4% 98.9% bpc #T Zip PureJava % diff Native % diff % diff 1024 1 495.1 543.3 9.7% 958.6 93.6% 76.4% 1024 2 489.6 491.7 0.4% 937.3 91.4% 90.6% 1024 4 452.7 500.3 10.5% 939.2 107.5% 87.7% 1024 8 443.4 485.6 9.5% 934.1 110.7% 92.3% 1024 16 364.7 316.3 -13.3% 598.1 64.0% 89.1% bpc #T Zip PureJava % diff Native % diff % diff 2048 1 501.8 543.2 8.3% 957.9 90.9% 76.4% 2048 2 511.6 546.1 6.7% 943.2 84.4% 72.7% 2048 4 493.9 524.3 6.2% 939.9 90.3% 79.3% 2048 8 464.3 500.5 7.8% 938.0 102.0% 87.4% 2048 16 397.5 331.8 -16.5% 605.0 52.2% 82.3% bpc #T Zip PureJava % diff Native % diff % diff 4096 1 505.0 537.8 6.5% 940.3 86.2% 74.9% 4096 2 501.6 520.9 3.8% 938.6 87.1% 80.2% 4096 4 498.3 525.0 5.4% 943.3 89.3% 79.7% 4096 8 486.8 507.6 4.3% 939.8 93.1% 85.2% 4096 16 409.7 333.5 -18.6% 603.9 47.4% 81.1% bpc #T Zip PureJava % diff Native % diff % diff 8192 1 506.2 533.7 5.4% 945.4 86.8% 77.1% 8192 2 510.2 538.3 5.5% 962.3 88.6% 78.8% 8192 4 505.3 521.8 3.3% 944.6 86.9% 81.0% 8192 8 473.4 487.6 3.0% 880.3 85.9% 80.5% 8192 16 419.8 336.7 -19.8% 608.5 44.9% 80.8% bpc #T Zip PureJava % diff Native % diff % diff 16384 1 511.0 539.6 5.6% 956.4 87.2% 77.2% 16384 2 512.2 535.5 4.6% 960.9 87.6% 79.4% 16384 4 504.4 534.5 6.0% 944.7 87.3% 76.7% 16384 8 492.3 513.4 4.3% 957.8 94.5% 86.6% 16384 16 433.9 340.6 -21.5% 611.6 41.0% 79.6% bpc #T Zip PureJava % diff Native % diff % diff 32768 1 518.8 544.1 4.9% 957.8 84.6% 76.0% 32768 2 511.1 537.3 5.1% 947.7 85.4% 76.4% 32768 4 511.7 530.5 3.7% 949.0 85.4% 78.9% 32768 8 494.6 512.7 3.7% 934.6 89.0% 82.3% 32768 16 433.9 343.1 -20.9% 613.1 41.3% 78.7% bpc #T Zip PureJava % diff Native % diff % diff 65536 1 512.5 545.7 6.5% 943.1 84.0% 72.8% 65536 2 510.1 536.2 5.1% 942.2 84.7% 75.7% 65536 4 508.3 532.9 4.8% 946.8 86.3% 77.7% 65536 8 494.9 514.8 4.0% 951.9 92.3% 84.9% 65536 16 435.2 341.2 -21.6% 610.4 40.3% 78.9% Elapsed 166.7s
        Hide
        iwasakims Masatake Iwasaki added a comment -

        +1. I saw no relevant test failures in hadoop-hdfs.

        BTW, the default checksum type is CRC32C in hadoop, which means HDFS will use PureJava algorithm when we didn't let it use native.

        Sure. Discussion about further optimization should be done in another JIRA.

        Show
        iwasakims Masatake Iwasaki added a comment - +1. I saw no relevant test failures in hadoop-hdfs. BTW, the default checksum type is CRC32C in hadoop, which means HDFS will use PureJava algorithm when we didn't let it use native. Sure. Discussion about further optimization should be done in another JIRA.
        Hide
        iwasakims Masatake Iwasaki added a comment -

        I will commit this shortly. Before that, I'm going to move this issue to Hadoop Common to which the fix belongs.

        Show
        iwasakims Masatake Iwasaki added a comment - I will commit this shortly. Before that, I'm going to move this issue to Hadoop Common to which the fix belongs.
        Hide
        hadoopqa Hadoop QA added a comment -
        -1 overall



        Vote Subsystem Runtime Comment
        0 reexec 0m 0s Docker mode activated.
        -1 patch 0m 4s HADOOP-14405 does not apply to trunk. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help.



        Subsystem Report/Notes
        JIRA Issue HADOOP-14405
        JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866863/HDFS-11765.patch
        Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/12288/console
        Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org

        This message was automatically generated.

        Show
        hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 0m 0s Docker mode activated. -1 patch 0m 4s HADOOP-14405 does not apply to trunk. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. Subsystem Report/Notes JIRA Issue HADOOP-14405 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12866863/HDFS-11765.patch Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/12288/console Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #11711 (See https://builds.apache.org/job/Hadoop-trunk-Commit/11711/)
        HADOOP-14405. Fix performance regression due to incorrect use of (iwasakims: rev 06ffeb8d4d705d14e8755364099286ac4ed3bb83)

        • (edit) hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/DataChecksum.java
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #11711 (See https://builds.apache.org/job/Hadoop-trunk-Commit/11711/ ) HADOOP-14405 . Fix performance regression due to incorrect use of (iwasakims: rev 06ffeb8d4d705d14e8755364099286ac4ed3bb83) (edit) hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/DataChecksum.java
        Hide
        iwasakims Masatake Iwasaki added a comment - - edited

        Committed this to branch-2.8.1, branch-2.8, branch-2 and trunk. Thanks for the contribution, LiXin Ge.

        Show
        iwasakims Masatake Iwasaki added a comment - - edited Committed this to branch-2.8.1, branch-2.8, branch-2 and trunk. Thanks for the contribution, LiXin Ge .
        Hide
        szetszwo Tsz Wo Nicholas Sze added a comment -

        Thanks LiXin Ge for the contribution and Masatake Iwasaki for committing the patch.

        Show
        szetszwo Tsz Wo Nicholas Sze added a comment - Thanks LiXin Ge for the contribution and Masatake Iwasaki for committing the patch.
        Hide
        GeLiXin LiXin Ge added a comment -

        Thank you ,Tsz Wo Nicholas Sze and Masatake Iwasaki.
        It's my pleasure

        Show
        GeLiXin LiXin Ge added a comment - Thank you , Tsz Wo Nicholas Sze and Masatake Iwasaki . It's my pleasure
        Hide
        vinodkv Vinod Kumar Vavilapalli added a comment -

        2.8.1 became a security release. Moving fix-version to 2.8.2 after the fact.

        Show
        vinodkv Vinod Kumar Vavilapalli added a comment - 2.8.1 became a security release. Moving fix-version to 2.8.2 after the fact.

          People

          • Assignee:
            GeLiXin LiXin Ge
            Reporter:
            GeLiXin LiXin Ge
          • Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development