http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f272b0e8/apidocs/overview-tree.html ---------------------------------------------------------------------- diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html index 32feba1..d21d0ac 100644 --- a/apidocs/overview-tree.html +++ b/apidocs/overview-tree.html @@ -889,33 +889,33 @@ <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) <ul> <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li> -<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li> <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li> +<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li> <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li> <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li> <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li> <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li> <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li> -<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li> -<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li> <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li> +<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li> <li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">DataBlockEncoding</span></a></li> <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li> -<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li> <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li> <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li> -<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li> <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li> <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li> <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li> <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li> +<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li> <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li> -<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li> <li type="circle">org.apache.hadoop.hbase.client.security.<a href="org/apache/hadoop/hbase/client/security/SecurityCapability.html" title="enum in org.apache.hadoop.hbase.client.security"><span class="typeNameLink">SecurityCapability</span></a></li> </ul> </li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f272b0e8/book.html ---------------------------------------------------------------------- diff --git a/book.html b/book.html index 399814c..96d4058 100644 --- a/book.html +++ b/book.html @@ -30927,15 +30927,20 @@ For example, to skip the tests in <code>hbase-server</code> and <code>hbase-comm <div class="sect2"> <h3 id="hbase.unittests"><a class="anchor" href="#hbase.unittests"></a>167.2. Unit Tests</h3> <div class="paragraph"> -<p>Apache HBase test cases are subdivided into four categories: small, medium, large, and -integration with corresponding JUnit <a href="https://github.com/junit-team/junit4/wiki/Categories">categories</a>: <code>SmallTests</code>, <code>MediumTests</code>, <code>LargeTests</code>, <code>IntegrationTests</code>. -JUnit categories are denoted using java annotations and look like this in your unit test code.</p> +<p>Apache HBase unit tests must carry a Category annotation and +as of <code>hbase-2.0.0</code>, must be stamped with the HBase <code>ClassRule</code>. +Here is an example of what a Test Class looks like with a +Category and ClassRule included:</p> </div> <div class="listingblock"> <div class="content"> <pre class="CodeRay highlight"><code data-lang="java">... <span class="annotation">@Category</span>(SmallTests.class) <span class="directive">public</span> <span class="type">class</span> <span class="class">TestHRegionInfo</span> { + <span class="annotation">@ClassRule</span> + <span class="directive">public</span> <span class="directive">static</span> <span class="directive">final</span> HBaseClassTestRule CLASS_RULE = + HBaseClassTestRule.forClass(TestHRegionInfo.class); + <span class="annotation">@Test</span> <span class="directive">public</span> <span class="type">void</span> testCreateHRegionInfoName() <span class="directive">throws</span> <span class="exception">Exception</span> { <span class="comment">// ...</span> @@ -30944,8 +30949,23 @@ JUnit categories are denoted using java annotations and look like this in your u </div> </div> <div class="paragraph"> -<p>The above example shows how to mark a test case as belonging to the <code>small</code> category. -All test cases in HBase should have a categorization.</p> +<p>Here the Test Class is <code>TestHRegionInfo</code>. The <code>CLASS_RULE</code> has +the same form in every test class only the <code>.class</code> you pass +is that of the local test; i.e. in the TestTimeout Test Class, you’d +pass <code>TestTimeout.class</code> to the <code>CLASS_RULE</code> instead of the +<code>TestHRegionInfo.class</code> we have above. The <code>CLASS_RULE</code> +is where we’ll enforce timeouts (currently set at a hard-limit of +ten minutes for all tests) and other cross-unit test facility. +The test is in the <code>SmallTest</code> Category.</p> +</div> +<div class="paragraph"> +<p>Categories can be arbitrary and provided as a list but each test MUST +carry one from the following list of sizings: <code>small</code>, <code>medium</code>, <code>large</code>, and +<code>integration</code>. The test sizing is designated using the JUnit +<a href="https://github.com/junit-team/junit4/wiki/Categories">categories</a>: <code>SmallTests</code>, <code>MediumTests</code>, <code>LargeTests</code>, <code>IntegrationTests</code>. +JUnit Categories are denoted using java annotations (a special unit test looks +for the presence of the @Category annotation in all unit tess and will fail if it +finds a test suite missing a sizing marking).</p> </div> <div class="paragraph"> <p>The first three categories, <code>small</code>, <code>medium</code>, and <code>large</code>, are for test cases which run when you @@ -30956,34 +30976,31 @@ These are run when you invoke <code>$ mvn verify</code>. Integration tests are described in <a href="#integration.tests">integration.tests</a>.</p> </div> <div class="paragraph"> -<p>HBase uses a patched maven surefire plugin and maven profiles to implement its unit test characterizations.</p> -</div> -<div class="paragraph"> -<p>Keep reading to figure which annotation of the set small, medium, and large to put on your new -HBase test case.</p> +<p>Keep reading to figure which annotation of the set <code>small</code>, <code>medium</code>, and <code>large</code> +to put on your new HBase test case.</p> </div> <div class="dlist"> <div class="title">Categorizing Tests</div> <dl> <dt class="hdlist1">Small Tests </dt> <dd> -<p><em>Small</em> test cases are executed in a shared JVM and individual test cases should run in 15 seconds - or less; i.e. a <a href="https://en.wikipedia.org/wiki/JUnit">junit test fixture</a>, a java object made - up of test methods, should finish in under 15 seconds. These test cases can not use mini cluster. - These are run as part of patch pre-commit.</p> +<p><em>Small</em> test cases are executed in a shared JVM and each test suite/test class should + run in 15 seconds or less; i.e. a <a href="https://en.wikipedia.org/wiki/JUnit">junit test fixture</a>, a java object made + up of test methods, should finish in under 15 seconds, no matter how many or how few test methods + it has. These test cases should not use a minicluster.</p> </dd> <dt class="hdlist1">Medium Tests </dt> <dd> -<p><em>Medium</em> test cases are executed in separate JVM and individual test case should run in 50 seconds - or less. Together, they should take less than 30 minutes, and are quite stable in their results. - These test cases can use a mini cluster. These are run as part of patch pre-commit.</p> +<p><em>Medium</em> test cases are executed in separate JVM and individual test suites or test classes or in +junit parlance, <a href="https://en.wikipedia.org/wiki/JUnit">test fixture</a>, should run in 50 seconds + or less. These test cases can use a mini cluster.</p> </dd> <dt class="hdlist1">Large Tests </dt> <dd> -<p><em>Large</em> test cases are everything else. -They are typically large-scale tests, regression tests for specific bugs, timeout tests, performance tests. -They are executed before a commit on the pre-integration machines. -They can be run on the developer machine as well.</p> +<p><em>Large</em> test cases are everything else. They are typically large-scale tests, regression tests +for specific bugs, timeout tests, or performance tests. No large test suite can take longer than +ten minutes. It will be killed as timed out. Cast your test as an Integration Test if it needs +to run longer.</p> </dd> <dt class="hdlist1">Integration Tests </dt> <dd> @@ -30999,18 +31016,14 @@ See <a href="#integration.tests">integration.tests</a> for more info.</p> <h4 id="hbase.unittests.cmds.test"><a class="anchor" href="#hbase.unittests.cmds.test"></a>167.3.1. Default: small and medium category tests</h4> <div class="paragraph"> <p>Running <code>mvn test</code> will execute all small tests in a single JVM (no fork) and then medium tests in a separate JVM for each test instance. -Medium tests are NOT executed if there is an error in a small test. -Large tests are NOT executed. -There is one report for small tests, and one report for medium tests if they are executed.</p> +Medium tests are NOT executed if there is an error in a small test. Large tests are NOT executed.</p> </div> </div> <div class="sect3"> <h4 id="hbase.unittests.cmds.test.runalltests"><a class="anchor" href="#hbase.unittests.cmds.test.runalltests"></a>167.3.2. Running all tests</h4> <div class="paragraph"> <p>Running <code>mvn test -P runAllTests</code> will execute small tests in a single JVM then medium and large tests in a separate JVM for each test. -Medium and large tests are NOT executed if there is an error in a small test. -Large tests are NOT executed if there is an error in a small or medium test. -There is one report for small tests, and one report for medium and large tests if they are executed.</p> +Medium and large tests are NOT executed if there is an error in a small test.</p> </div> </div> <div class="sect3"> @@ -31033,7 +31046,7 @@ There is one report for small tests, and one report for medium and large tests i </div> <div class="paragraph"> <p>When <code>-Dtest</code> is specified, the <code>localTests</code> profile will be used. -It will use the official release of maven surefire, rather than our custom surefire plugin, and the old connector (The HBase build uses a patched version of the maven surefire plugin). Each junit test is executed in a separate JVM (A fork per test class). There is no parallelization when tests are running in this mode. +Each junit test is executed in a separate JVM (A fork per test class). There is no parallelization when tests are running in this mode. You will see a new message at the end of the -report: <code>"[INFO] Tests are skipped"</code>. It’s harmless. However, you need to make sure the sum of <code>Tests run:</code> in the <code>Results:</code> section of test reports matching the number of tests you specified because no error will be reported when a non-existent test case is specified.</p> @@ -31112,7 +31125,35 @@ Running ./dev-support/hbasetests.sh replayFailed will rerun the failed tests a s </div> </div> <div class="sect3"> -<h4 id="hbase.unittests.resource.checker"><a class="anchor" href="#hbase.unittests.resource.checker"></a>167.3.7. Test Resource Checker</h4> +<h4 id="hbase.unittests.timeouts"><a class="anchor" href="#hbase.unittests.timeouts"></a>167.3.7. Test Timeouts</h4> +<div class="paragraph"> +<p>The HBase unit test sizing Categorization timeouts are not strictly enforced.</p> +</div> +<div class="paragraph"> +<p>Any test that runs longer than ten minutes will be timedout/killed.</p> +</div> +<div class="paragraph"> +<p>As of hbase-2.0.0, we have purged all per-test-method timeouts: i.e.</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre class="CodeRay highlight"><code data-lang="java">... + <span class="annotation">@Test</span>(timeout=<span class="integer">30000</span>) + <span class="directive">public</span> <span class="type">void</span> testCreateHRegionInfoName() <span class="directive">throws</span> <span class="exception">Exception</span> { + <span class="comment">// ...</span> + }</code></pre> +</div> +</div> +<div class="paragraph"> +<p>They are discouraged and don’t make much sense given we are timing +base of how long the whole Test Fixture/Class/Suite takes and +that the variance in how long a test method takes varies wildly +dependent upon context (loaded Apache Infrastructure versus +developer machine with nothing else running on it).</p> +</div> +</div> +<div class="sect3"> +<h4 id="hbase.unittests.resource.checker"><a class="anchor" href="#hbase.unittests.resource.checker"></a>167.3.8. Test Resource Checker</h4> <div class="paragraph"> <p>A custom Maven SureFire plugin listener checks a number of resources before and after each HBase unit test runs and logs its findings at the end of the test output files which can be found in <em>target/surefire-reports</em> per Maven module (Tests write test reports named for the test class into this directory. Check the <em>*-out.txt</em> files). The resources counted are the number of threads, the number of file descriptors, etc. @@ -37262,7 +37303,7 @@ The server will return cellblocks compressed using this same compressor as long <div id="footer"> <div id="footer-text"> Version 3.0.0-SNAPSHOT<br> -Last updated 2018-02-12 14:32:58 UTC +Last updated 2018-02-13 14:29:54 UTC </div> </div> </body> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f272b0e8/bulk-loads.html ---------------------------------------------------------------------- diff --git a/bulk-loads.html b/bulk-loads.html index 84d1546..f219a8a 100644 --- a/bulk-loads.html +++ b/bulk-loads.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20180212" /> + <meta name="Date-Revision-yyyymmdd" content="20180213" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase – Bulk Loads in Apache HBase (TM) @@ -311,7 +311,7 @@ under the License. --> <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2018-02-12</li> + <li id="publishDate" class="pull-right">Last Published: 2018-02-13</li> </p> </div>