[ 
https://issues.apache.org/jira/browse/HDFS-6561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Thomas updated HDFS-6561:
-------------------------------

    Attachment: HDFS-6561.patch

Patch attached.

Was finally able to get some perf stat output comparing a 1 GB put operation 
with this change + HDFS-6560 and without. I ran the put against a 
MiniDFSCluster so that everything was in a single process and we could easily 
measure cycle savings across the cluster. We see about a 10% reduction in CPU 
cycles and a 4% reduction in wall clock time. These measurements were taken on 
my personal computer (SSD, quad core i7).

****WITHOUT CHANGES****
james@james-ThinkPad-T530:~/Desktop/hadoop-common$ perf stat -r 20 java 
org.junit.runner.JUnitCore org.apache.hadoop.hdfs.TestRWCycles

 Performance counter stats for 'java org.junit.runner.JUnitCore 
org.apache.hadoop.hdfs.TestWriteCycles' (20 runs):

      14848.579075 task-clock (msec)         #    1.637 CPUs utilized           
 ( +-  0.37% )
            75,748 context-switches          #    0.005 M/sec                   
 ( +-  0.29% )
             3,855 cpu-migrations            #    0.260 K/sec                   
 ( +-  1.66% )
            75,120 page-faults               #    0.005 M/sec                   
 ( +-  2.15% )
    50,376,887,490 cycles                    #    3.393 GHz                     
 ( +-  0.40% )
    31,427,207,136 stalled-cycles-frontend   #   62.38% frontend cycles idle    
 ( +-  0.62% )
   <not supported> stalled-cycles-backend  
    46,918,968,840 instructions              #    0.93  insns per cycle        
                                             #    0.67  stalled cycles per insn 
 ( +-  0.26% )
     6,523,666,030 branches                  #  439.346 M/sec                   
 ( +-  0.39% )
       304,740,080 branch-misses             #    4.67% of all branches         
 ( +-  0.19% )

       9.068159220 seconds time elapsed                                         
 ( +-  0.33% )


****WITH HDFS-6560 and HDFS-6561 (client-side checksum calculation and DN 
checksum verification both nativized)****
james@james-ThinkPad-T530:~/Desktop/hadoop-common$ perf stat -r 20 java 
org.junit.runner.JUnitCore org.apache.hadoop.hdfs.TestWriteCycles

 Performance counter stats for 'java org.junit.runner.JUnitCore 
org.apache.hadoop.hdfs.TestRWCycles' (20 runs):

      13703.187333 task-clock (msec)         #    1.575 CPUs utilized           
 ( +-  0.74% )
            79,256 context-switches          #    0.006 M/sec                   
 ( +-  0.27% )
             3,161 cpu-migrations            #    0.231 K/sec                   
 ( +-  2.45% )
            72,138 page-faults               #    0.005 M/sec                   
 ( +-  2.35% )
    46,553,899,994 cycles                    #    3.397 GHz                     
 ( +-  0.83% )
    30,670,949,579 stalled-cycles-frontend   #   65.88% frontend cycles idle    
 ( +-  1.08% )
   <not supported> stalled-cycles-backend  
    35,616,207,543 instructions              #    0.77  insns per cycle        
                                             #    0.86  stalled cycles per insn 
 ( +-  0.73% )
     6,614,919,487 branches                  #  482.729 M/sec                   
 ( +-  0.73% )
       313,683,166 branch-misses             #    4.74% of all branches         
 ( +-  0.56% )

       8.699152006 seconds time elapsed                                         
 ( +-  0.44% )



> Byte array native checksumming on client side
> ---------------------------------------------
>
>                 Key: HDFS-6561
>                 URL: https://issues.apache.org/jira/browse/HDFS-6561
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, hdfs-client, performance
>            Reporter: James Thomas
>            Assignee: James Thomas
>         Attachments: HDFS-6561.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to