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

Jonathan Hsieh commented on HBASE-7605:
---------------------------------------

tl;dr Test is correct but there is some regression when using hadoop2.  Going 
to reduce the size of the test so that it finishes in a reasonable amount of 
time and passes.  Would like to close with patch that makes it work but will 
file jira to investigate why the big h1 vs h2 perf difference.

On my test runs against hadoop2, I get failures due to timeouts with 
TestMiniClusterLoadParallel and TestMiniClusterLoadSequential.

With hadoop1 runs from the ec2 test trunk on hadoop2 instance [1], each of 
these individual cases take this long to run.

*Sequential
{code}
Test name       Duration   Status   
loadTest[0]     1 min 11 sec    Passed
loadTest[1]     48 sec  Passed
loadTest[2]     22 sec  Passed
loadTest[3]     27 sec  Passed
{code}

*Parallel 
{code}
Test name   Duration   Status   
loadTest[0]     1 min 18 sec    Passed
loadTest[1]     51 sec  Passed
loadTest[2]     19 sec  Passed
loadTest[3]     20 sec  Passed
{code}

I ran then locally on my box with hadoop1 profile an got this:


With hadoop2 I did some experiments on my local machine, bumping up Sequential 
from 180s to 360s timeouts per test.   They passed, but barely before timing 
out.  For some reason they are 2-3x slower.  (Not good)

{code}
  <testcase time="348.761" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[0]"/>
  <testcase time="343.577" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[1]"/>
  <testcase time="46.397" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[2]"/>
  <testcase time="45.845" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[3]"/>
...
  <testcase time="358.088" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[0]"/>
  <testcase time="357.654" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[1]"/>
  <testcase time="61.306" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[2]"/>
  <testcase time="61.263" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[3]"/>
{code}

Instead of bumping timeout up, I'm going to change the tests so that it does an 
order of magnitude less work, and finishes on the order of 10-30s instead of 
100-300s.  

Here are the hadoop2 vs hadoop1 results (bumping down from 10000 keys to 1000 
keys)
{code}
hadoop1:
  <testcase time="14.929" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[0]"/>
  <testcase time="12.747" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[1]"/>
  <testcase time="12.005" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[2]"/>
  <testcase time="11.663" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[3]"/>

  <testcase time="15.956" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[0]"/>
  <testcase time="14.321" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[1]"/>
  <testcase time="11.541" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[2]"/>
  <testcase time="11.588" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[3]"/>

hadoop2:
  <testcase time="43.703" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[0]"/>
  <testcase time="41.542" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[1]"/>
  <testcase time="10.711" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[2]"/>
  <testcase time="8.801" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel" 
name="loadTest[3]"/>
  
  <testcase time="45.986" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[0]"/>
  <testcase time="42.037" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[1]"/>
  <testcase time="12.56" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[2]"/>
  <testcase time="12.01" 
classname="org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential" 
name="loadTest[3]"/>
{code}


[1]http://54.241.6.143/job/HBase-TRUNK-Hadoop-2/org.apache.hbase$hbase-server/53/
                
> TestMiniClusterLoadSequential fails in trunk build on hadoop 2
> --------------------------------------------------------------
>
>                 Key: HBASE-7605
>                 URL: https://issues.apache.org/jira/browse/HBASE-7605
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Ted Yu
>            Priority: Critical
>             Fix For: 0.95.1
>
>
> From HBase-TRUNK-on-Hadoop-2.0.0 #354:
>   loadTest[0](org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential): 
> test timed out after 120000 milliseconds
>   loadTest[1](org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential): 
> test timed out after 120000 milliseconds
>   loadTest[2](org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential): 
> test timed out after 120000 milliseconds
>   loadTest[3](org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential): 
> test timed out after 120000 milliseconds

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to