You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/04/07 00:31:06 UTC

[01/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 282e052a8 -> 794df1af8


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.HRegionWithSeqId.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.HRegionWithSeqId.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.HRegionWithSeqId.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.HRegionWithSeqId.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.HRegionWithSeqId.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Incrementer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Incrementer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Incrementer.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Incrementer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Incrementer.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.IsFlushWALMarker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.IsFlushWALMarker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.IsFlushWALMarker.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.IsFlushWALMarker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.IsFlushWALMarker.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.PutThread.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.PutThread.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.PutThread.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.PutThread.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.PutThread.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 


[11/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6

<TRUNCATED>

[02/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 7acd2b0..e9f7c1b 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -46115,6 +46115,8 @@
 <div class="block">Put valueA to a row, make sure put has happened, then create a mutation object to put valueB
  and delete ValueA, then check that the row value is only valueB.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMutateRow_WriteRequestCount--">testMutateRow_WriteRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestHRegion.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegion</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMutateRowsRecovery</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.html#TestMutateRowsRecovery--">TestMutateRowsRecovery()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.html" title="class in org.apache.hadoop.hbase.regionserver">TestMutateRowsRecovery</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 003a060..a51ca61 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -546,15 +546,15 @@
 <ul>
 <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>&lt;E&gt; (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>&lt;T&gt;, 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.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 1850c7d..dbf03f1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -203,8 +203,8 @@
 <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>&lt;E&gt; (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>&lt;T&gt;, 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.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
index 2f3cae1..2b1ed33 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":9,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":
 10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":9,"i127":10};
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":9,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":
 10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":9,"i128":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -716,132 +716,136 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i81" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWAL--">testOpenRegionWrittenToWAL</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMutateRow_WriteRequestCount--">testMutateRow_WriteRequestCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i82" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWALForLogReplay--">testOpenRegionWrittenToWALForLogReplay</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWAL--">testOpenRegionWrittenToWAL</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i83" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWALForLogReplay--">testOpenRegionWrittenToWALForLogReplay</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelAppendWithMemStoreFlush--">testParallelAppendWithMemStoreFlush</a></span>()</code>
 <div class="block">Test case to check append function with memstore flushing</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelIncrementWithMemStoreFlush--">testParallelIncrementWithMemStoreFlush</a></span>()</code>
 <div class="block">Test case to check increment function with memstore flushing</div>
 </td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithLatestTS--">testPutWithLatestTS</a></span>()</code>
 <div class="block">Tests that the special LATEST_TIMESTAMP option for puts gets replaced by
  the actual timestamp</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithMemStoreFlush--">testPutWithMemStoreFlush</a></span>()</code>
 <div class="block">Test case to check put function with memstore flushing for same row, same ts</div>
 </td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithTsSlop--">testPutWithTsSlop</a></span>()</code>
 <div class="block">Tests that there is server-side filtering for invalid timestamp upper
  bound.</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction--">testRecoveredEditsReplayCompaction</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction-boolean-">testRecoveredEditsReplayCompaction</a></span>(boolean&nbsp;mismatchedRegionName)</code>&nbsp;</td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionInfoFileCreation--">testRegionInfoFileCreation</a></span>()</code>
 <div class="block">Verifies that the .regioninfo file is written on region creation and that
  is recreated if missing during region opening.</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondary--">testRegionReplicaSecondary</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondaryIsReadOnly--">testRegionReplicaSecondaryIsReadOnly</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionScanner_Next--">testRegionScanner_Next</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionTooBusy--">testRegionTooBusy</a></span>()</code>
 <div class="block">Test RegionTooBusyException thrown when region is busy</div>
 </td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_FullScan--">testReverseScanner_FromMemStore_SingleCF_FullScan</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_LargerKey--">testReverseScanner_FromMemStore_SingleCF_LargerKey</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_Normal--">testReverseScanner_FromMemStore_SingleCF_Normal</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs1--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs1</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs2--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs2</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_moreRowsMayExistAfter--">testReverseScanner_moreRowsMayExistAfter</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_smaller_blocksize--">testReverseScanner_smaller_blocksize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_StackOverflow--">testReverseScanner_StackOverflow</a></span>()</code>
 <div class="block">Test for HBASE-14497: Reverse Scan threw StackOverflow caused by readPt checking</div>
 </td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanShouldNotScanMemstoreIfReadPtLesser--">testReverseScanShouldNotScanMemstoreIfReadPtLesser</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_DeleteOneFamilyNotAnother--">testScanner_DeleteOneFamilyNotAnother</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions--">testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStore_EnforceVersions--">testScanner_ExplicitColumns_FromMemStore_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions--">testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_JoinedScanners--">testScanner_JoinedScanners</a></span>()</code>
 <div class="block">Added for HBASE-5416
@@ -850,7 +854,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
  conditions.</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_JoinedScannersWithLimits--">testScanner_JoinedScannersWithLimits</a></span>()</code>
 <div class="block">HBASE-5416
@@ -858,82 +862,82 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
  Test case when scan limits amount of KVs returned on each next() call.</div>
 </td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_StopRow1542--">testScanner_StopRow1542</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromFilesOnly_EnforceVersions--">testScanner_Wildcard_FromFilesOnly_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStore_EnforceVersions--">testScanner_Wildcard_FromMemStore_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions--">testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSequenceId--">testSequenceId</a></span>()</code>
 <div class="block">Test that I can use the max flushed sequence id after the close.</div>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplay--">testSkipRecoveredEditsReplay</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplayAllIgnored--">testSkipRecoveredEditsReplayAllIgnored</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplaySomeIgnored--">testSkipRecoveredEditsReplaySomeIgnored</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplayTheLastFileIgnored--">testSkipRecoveredEditsReplayTheLastFileIgnored</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization--">testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization</a></span>()</code>
 <div class="block">Testcase to check state of region initialization task set to ABORTED or not
  if any exceptions during initialization</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testToShowNPEOnRegionScannerReseek--">testToShowNPEOnRegionScannerReseek</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWeirdCacheBehaviour--">testWeirdCacheBehaviour</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWriteRequestsCounter--">testWriteRequestsCounter</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileGetting--">testWritesWhileGetting</a></span>()</code>
 <div class="block">Writes very wide records and gets the latest row every time..</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileRollWriter--">testWritesWhileRollWriter</a></span>()</code>
 <div class="block">HBASE-16429 Make sure no stuck if roll writer when ring buffer is filled with appends</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileScanning--">testWritesWhileScanning</a></span>()</code>
 <div class="block">Writes very wide records and scans for the latest every time..</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>(package private) static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#verifyData-org.apache.hadoop.hbase.regionserver.HRegion-int-int-byte:A-byte:A...-">verifyData</a></span>(org.apache.hadoop.hbase.regionserver.HRegion&nbsp;newReg,
           int&nbsp;startRow,
@@ -941,7 +945,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
           byte[]&nbsp;qf,
           byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#waitForCounter-org.apache.hadoop.hbase.regionserver.wal.MetricsWALSource-java.lang.String-long-">waitForCounter</a></span>(org.apache.hadoop.hbase.regionserver.wal.MetricsWALSource&nbsp;source,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricName,
@@ -3120,7 +3124,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testWritesWhileRollWriter--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testWritesWhileRollWriter</h4>
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html#line.6331">testWritesWhileRollWriter</a>()
@@ -3132,6 +3136,20 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testMutateRow_WriteRequestCount--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testMutateRow_WriteRequestCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.html#line.6396">testMutateRow_WriteRequestCount</a>()
+                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.html
index adb3771..8d1adb0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.html
@@ -214,7 +214,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegion</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#assertGet-org.apache.hadoop.hbase.regionserver.HRegion-byte:A-byte:A-">assertGet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#assertScan-org.apache.hadoop.hbase.regionserver.HRegion-byte:A-byte:A-">assertScan</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#createWALFactory-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path-">createWALFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#doTestDelete_AndPostInsert-org.apache.hadoop.hbase.client.Delete-">doTestDelete_AndPostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-byte:A-byte:A-java.lang.String-org.apache.hadoop.conf.Configuration-boolean-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.
 html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-org.apache.hadoop.conf.Configuration-boolean-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-org.apache.hadoop.conf.Configuration-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initSplit--">initSplit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#putData-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.client.Durability-int-int-byte:A-byte:A...-">putData</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/
 TestHRegion.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testaddFamily_PostInsert--">testaddFamily_PostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAllColumnsWithBloomFilter--">testAllColumnsWithBloomFilter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAppendTimestampsAreMonotonic--">testAppendTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAppendWithReadOnlyTable--">testAppendWithReadOnlyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchMutateWithWrongRegionException--">testBatchMutateWithWrongRegionException</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchPut_whileMultipleRowLocksHeld--">testBatchPut_whileMultipleRowLocksHeld</a>, <a href="../../../../../org/apache/hadoop/hbase/
 regionserver/TestHRegion.html#testBatchPut_whileNoRowLocksHeld--">testBatchPut_whileNoRowLocksHeld</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchPutWithTsSlop--">testBatchPutWithTsSlop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBloomFilterSize--">testBloomFilterSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCellTTLs--">testCellTTLs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndDelete_ThatDeleteWasWritten--">testCheckAndDelete_ThatDeleteWasWritten</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithCorrectValue--">testCheckAndMutate_WithCorrectValue</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithEmptyRowValue--">testCheckAndMutate_WithEmptyRowValue</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithNonEqualCompareOp--">testCheckAndMutate_WithNonEqualCompareOp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithWrongValue--">testCheckAndMutate_WithWrongValue</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutateTimestampsAreMonotonic--">testCheckAndMutateTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndPut_ThatPutWasWritten--">testCheckAndPut_ThatPutWasWritten</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndPut_wrongRowInPut--">testCheckAndPut_wrongRowInPut</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndRowMutateTimestampsAreMonotonic--">testCheckAndRowMutateTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion
 .html#testCloseCarryingSnapshot--">testCloseCarryingSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCloseRegionWrittenToWAL--">testCloseRegionWrittenToWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCloseWithFailingFlush--">testCloseWithFailingFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCompactionAffectedByScanners--">testCompactionAffectedByScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCompactionFromPrimary--">testCompactionFromPrimary</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDataInMemoryWithoutWAL--">testDataInMemoryWithoutWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_CheckFamily--">testDelete_CheckFamily</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_
 CheckTimestampUpdated--">testDelete_CheckTimestampUpdated</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_mixed--">testDelete_mixed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_multiDeleteColumn--">testDelete_multiDeleteColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteColumns_PostInsert--">testDeleteColumns_PostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteRowWithBloomFilter--">testDeleteRowWithBloomFilter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteRowWithFutureTs--">testDeleteRowWithFutureTs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDurability--">testDurability</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFamilyWithAndWithoutColon--">testFamilyWithAnd
 WithoutColon</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushCacheWhileScanning--">testFlushCacheWhileScanning</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushedFileWithNoTags--">testFlushedFileWithNoTags</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushMarkers--">testFlushMarkers</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushMarkersWALFail--">testFlushMarkersWALFail</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushResult--">testFlushResult</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushSizeAccounting--">testFlushSizeAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGet_Basic--">testGet_Basic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#t
 estGet_Empty--">testGet_Empty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGet_FamilyChecker--">testGet_FamilyChecker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testgetHDFSBlocksDistribution--">testgetHDFSBlocksDistribution</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithNoFamilies--">testGetScanner_WithNoFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithNotOkFamilies--">testGetScanner_WithNotOkFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithOkFamilies--">testGetScanner_WithOkFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithRegionClosed--">testGetScanner_WithRegionClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetWhileRe
 gionClose--">testGetWhileRegionClose</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testHolesInMeta--">testHolesInMeta</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIncrementTimestampsAreMonotonic--">testIncrementTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIncrWithReadOnlyTable--">testIncrWithReadOnlyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIndexesScanWithOneDeletedRow--">testIndexesScanWithOneDeletedRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testLongQualifier--">testLongQualifier</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMemstoreSizeAccountingWithFailedPostBatchMutate--">testMemstoreSizeAccountingWithFailedPostBatchMutate</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html
 #testMemstoreSizeWithFlushCanceling--">testMemstoreSizeWithFlushCanceling</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMemstoreSnapshotSize--">testMemstoreSnapshotSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWAL--">testOpenRegionWrittenToWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWALForLogReplay--">testOpenRegionWrittenToWALForLogReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelAppendWithMemStoreFlush--">testParallelAppendWithMemStoreFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelIncrementWithMemStoreFlush--">testParallelIncrementWithMemStoreFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithLatestTS--">testPutWithLatestTS</a>, <a href="../../../../../org/ap
 ache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithMemStoreFlush--">testPutWithMemStoreFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithTsSlop--">testPutWithTsSlop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction--">testRecoveredEditsReplayCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction-boolean-">testRecoveredEditsReplayCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionInfoFileCreation--">testRegionInfoFileCreation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondary--">testRegionReplicaSecondary</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondaryIsReadOnly--">testRegionReplicaSecondaryIsReadOnly</a>, <a href=".
 ./../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionScanner_Next--">testRegionScanner_Next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionTooBusy--">testRegionTooBusy</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_FullScan--">testReverseScanner_FromMemStore_SingleCF_FullScan</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_LargerKey--">testReverseScanner_FromMemStore_SingleCF_LargerKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_Normal--">testReverseScanner_FromMemStore_SingleCF_Normal</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs1--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs1</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs2--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs2</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_moreRowsMayExistAfter--">testReverseScanner_moreRowsMayExistAfter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_smaller_blocksize--">testReverseScanner_smaller_blocksize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_StackOverflow--">testReverseScanner_StackOverflow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanShouldNotScanMemstoreIfReadPtLesser--">testReverseScanShouldNotScanMemstoreIfReadPtLesser</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_DeleteOneFamilyNotAnother--">testScanner_DeleteOneFamilyNotA
 nother</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions--">testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStore_EnforceVersions--">testScanner_ExplicitColumns_FromMemStore_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions--">testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_JoinedScanners--">testScanner_JoinedScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_JoinedScannersWithLimits--">testScanner_JoinedScannersWithLimits</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHR
 egion.html#testScanner_StopRow1542--">testScanner_StopRow1542</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromFilesOnly_EnforceVersions--">testScanner_Wildcard_FromFilesOnly_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStore_EnforceVersions--">testScanner_Wildcard_FromMemStore_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions--">testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSequenceId--">testSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplay--">testSkipRecoveredEditsReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecovere
 dEditsReplayAllIgnored--">testSkipRecoveredEditsReplayAllIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplaySomeIgnored--">testSkipRecoveredEditsReplaySomeIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplayTheLastFileIgnored--">testSkipRecoveredEditsReplayTheLastFileIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization--">testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testToShowNPEOnRegionScannerReseek--">testToShowNPEOnRegionScannerReseek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWeirdCacheBehaviour--">testWeirdCacheBehaviour</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html
 #testWriteRequestsCounter--">testWriteRequestsCounter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileGetting--">testWritesWhileGetting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileRollWriter--">testWritesWhileRollWriter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileScanning--">testWritesWhileScanning</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#verifyData-org.apache.hadoop.hbase.regionserver.HRegion-int-int-byte:A-byte:A...-">verifyData</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#assertGet-org.apache.hadoop.hbase.regionserver.HRegion-byte:A-byte:A-">assertGet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#assertScan-org.apache.hadoop.hbase.regionserver.HRegion-byte:A-byte:A-">assertScan</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#createWALFactory-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path-">createWALFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#doTestDelete_AndPostInsert-org.apache.hadoop.hbase.client.Delete-">doTestDelete_AndPostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-byte:A-byte:A-java.lang.String-org.apache.hadoop.conf.Configuration-boolean-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.
 html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-org.apache.hadoop.conf.Configuration-boolean-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initHRegion-org.apache.hadoop.hbase.TableName-java.lang.String-org.apache.hadoop.conf.Configuration-byte:A...-">initHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#initSplit--">initSplit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#putData-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.client.Durability-int-int-byte:A-byte:A...-">putData</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/
 TestHRegion.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testaddFamily_PostInsert--">testaddFamily_PostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAllColumnsWithBloomFilter--">testAllColumnsWithBloomFilter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAppendTimestampsAreMonotonic--">testAppendTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testAppendWithReadOnlyTable--">testAppendWithReadOnlyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchMutateWithWrongRegionException--">testBatchMutateWithWrongRegionException</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchPut_whileMultipleRowLocksHeld--">testBatchPut_whileMultipleRowLocksHeld</a>, <a href="../../../../../org/apache/hadoop/hbase/
 regionserver/TestHRegion.html#testBatchPut_whileNoRowLocksHeld--">testBatchPut_whileNoRowLocksHeld</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBatchPutWithTsSlop--">testBatchPutWithTsSlop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testBloomFilterSize--">testBloomFilterSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCellTTLs--">testCellTTLs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndDelete_ThatDeleteWasWritten--">testCheckAndDelete_ThatDeleteWasWritten</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithCorrectValue--">testCheckAndMutate_WithCorrectValue</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithEmptyRowValue--">testCheckAndMutate_WithEmptyRowValue</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithNonEqualCompareOp--">testCheckAndMutate_WithNonEqualCompareOp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutate_WithWrongValue--">testCheckAndMutate_WithWrongValue</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndMutateTimestampsAreMonotonic--">testCheckAndMutateTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndPut_ThatPutWasWritten--">testCheckAndPut_ThatPutWasWritten</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndPut_wrongRowInPut--">testCheckAndPut_wrongRowInPut</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCheckAndRowMutateTimestampsAreMonotonic--">testCheckAndRowMutateTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion
 .html#testCloseCarryingSnapshot--">testCloseCarryingSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCloseRegionWrittenToWAL--">testCloseRegionWrittenToWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCloseWithFailingFlush--">testCloseWithFailingFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCompactionAffectedByScanners--">testCompactionAffectedByScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testCompactionFromPrimary--">testCompactionFromPrimary</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDataInMemoryWithoutWAL--">testDataInMemoryWithoutWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_CheckFamily--">testDelete_CheckFamily</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_
 CheckTimestampUpdated--">testDelete_CheckTimestampUpdated</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_mixed--">testDelete_mixed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDelete_multiDeleteColumn--">testDelete_multiDeleteColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteColumns_PostInsert--">testDeleteColumns_PostInsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteRowWithBloomFilter--">testDeleteRowWithBloomFilter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDeleteRowWithFutureTs--">testDeleteRowWithFutureTs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testDurability--">testDurability</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFamilyWithAndWithoutColon--">testFamilyWithAnd
 WithoutColon</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushCacheWhileScanning--">testFlushCacheWhileScanning</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushedFileWithNoTags--">testFlushedFileWithNoTags</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushMarkers--">testFlushMarkers</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushMarkersWALFail--">testFlushMarkersWALFail</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushResult--">testFlushResult</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testFlushSizeAccounting--">testFlushSizeAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGet_Basic--">testGet_Basic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#t
 estGet_Empty--">testGet_Empty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGet_FamilyChecker--">testGet_FamilyChecker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testgetHDFSBlocksDistribution--">testgetHDFSBlocksDistribution</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithNoFamilies--">testGetScanner_WithNoFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithNotOkFamilies--">testGetScanner_WithNotOkFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithOkFamilies--">testGetScanner_WithOkFamilies</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetScanner_WithRegionClosed--">testGetScanner_WithRegionClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testGetWhileRe
 gionClose--">testGetWhileRegionClose</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testHolesInMeta--">testHolesInMeta</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIncrementTimestampsAreMonotonic--">testIncrementTimestampsAreMonotonic</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIncrWithReadOnlyTable--">testIncrWithReadOnlyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testIndexesScanWithOneDeletedRow--">testIndexesScanWithOneDeletedRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testLongQualifier--">testLongQualifier</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMemstoreSizeAccountingWithFailedPostBatchMutate--">testMemstoreSizeAccountingWithFailedPostBatchMutate</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html
 #testMemstoreSizeWithFlushCanceling--">testMemstoreSizeWithFlushCanceling</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMemstoreSnapshotSize--">testMemstoreSnapshotSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testMutateRow_WriteRequestCount--">testMutateRow_WriteRequestCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWAL--">testOpenRegionWrittenToWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testOpenRegionWrittenToWALForLogReplay--">testOpenRegionWrittenToWALForLogReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelAppendWithMemStoreFlush--">testParallelAppendWithMemStoreFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testParallelIncrementWithMemStoreFlush--">testParallelIncrementWithMemStoreFlush</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithLatestTS--">testPutWithLatestTS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithMemStoreFlush--">testPutWithMemStoreFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testPutWithTsSlop--">testPutWithTsSlop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction--">testRecoveredEditsReplayCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRecoveredEditsReplayCompaction-boolean-">testRecoveredEditsReplayCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionInfoFileCreation--">testRegionInfoFileCreation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondary--">testRegionReplicaSecondary</a>, <a href="../../../..
 /../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionReplicaSecondaryIsReadOnly--">testRegionReplicaSecondaryIsReadOnly</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionScanner_Next--">testRegionScanner_Next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testRegionTooBusy--">testRegionTooBusy</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_FullScan--">testReverseScanner_FromMemStore_SingleCF_FullScan</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_LargerKey--">testReverseScanner_FromMemStore_SingleCF_LargerKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStore_SingleCF_Normal--">testReverseScanner_FromMemStore_SingleCF_Normal</a>, <a href="../../../../../org/apache/hadoop/hbase
 /regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs1--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs1</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_FromMemStoreAndHFiles_MultiCFs2--">testReverseScanner_FromMemStoreAndHFiles_MultiCFs2</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_moreRowsMayExistAfter--">testReverseScanner_moreRowsMayExistAfter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_smaller_blocksize--">testReverseScanner_smaller_blocksize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanner_StackOverflow--">testReverseScanner_StackOverflow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testReverseScanShouldNotScanMemstoreIfReadPtLesser--">testReverseScanShouldNotScanMemstoreIfReadPtLesser</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_DeleteOneFamilyNotAnother--">testScanner_DeleteOneFamilyNotAnother</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions--">testScanner_ExplicitColumns_FromFilesOnly_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStore_EnforceVersions--">testScanner_ExplicitColumns_FromMemStore_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions--">testScanner_ExplicitColumns_FromMemStoreAndFiles_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_JoinedScanners--">testScanner_JoinedScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html
 #testScanner_JoinedScannersWithLimits--">testScanner_JoinedScannersWithLimits</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_StopRow1542--">testScanner_StopRow1542</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromFilesOnly_EnforceVersions--">testScanner_Wildcard_FromFilesOnly_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStore_EnforceVersions--">testScanner_Wildcard_FromMemStore_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions--">testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSequenceId--">testSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRe
 coveredEditsReplay--">testSkipRecoveredEditsReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplayAllIgnored--">testSkipRecoveredEditsReplayAllIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplaySomeIgnored--">testSkipRecoveredEditsReplaySomeIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testSkipRecoveredEditsReplayTheLastFileIgnored--">testSkipRecoveredEditsReplayTheLastFileIgnored</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization--">testStatusSettingToAbortIfAnyExceptionDuringRegionInitilization</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testToShowNPEOnRegionScannerReseek--">testToShowNPEOnRegionScannerReseek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/
 TestHRegion.html#testWeirdCacheBehaviour--">testWeirdCacheBehaviour</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWriteRequestsCounter--">testWriteRequestsCounter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileGetting--">testWritesWhileGetting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileRollWriter--">testWritesWhileRollWriter</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#testWritesWhileScanning--">testWritesWhileScanning</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#verifyData-org.apache.hadoop.hbase.regionserver.HRegion-int-int-byte:A-byte:A...-">verifyData</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index a521e56..3f091ab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -586,8 +586,8 @@
 <ul>
 <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>&lt;E&gt; (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>&lt;T&gt;, 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.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index bd3c452..03eda72 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -248,9 +248,9 @@
 <ul>
 <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>&lt;E&gt; (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>&lt;T&gt;, 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.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index d3491cf..78afff3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -139,9 +139,9 @@
 <ul>
 <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>&lt;E&gt; (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>&lt;T&gt;, 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.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Appender.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Appender.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Appender.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Appender.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.Appender.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.FlushThread.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.FlushThread.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.FlushThread.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.FlushThread.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.FlushThread.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html
index 9401f19..d618c2a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html
@@ -6399,7 +6399,31 @@
 <span class="sourceLineNo">6391</span>      this.region = null;<a name="line.6391"></a>
 <span class="sourceLineNo">6392</span>    }<a name="line.6392"></a>
 <span class="sourceLineNo">6393</span>  }<a name="line.6393"></a>
-<span class="sourceLineNo">6394</span>}<a name="line.6394"></a>
+<span class="sourceLineNo">6394</span><a name="line.6394"></a>
+<span class="sourceLineNo">6395</span>  @Test<a name="line.6395"></a>
+<span class="sourceLineNo">6396</span>  public void testMutateRow_WriteRequestCount() throws Exception {<a name="line.6396"></a>
+<span class="sourceLineNo">6397</span>    byte[] row1 = Bytes.toBytes("row1");<a name="line.6397"></a>
+<span class="sourceLineNo">6398</span>    byte[] fam1 = Bytes.toBytes("fam1");<a name="line.6398"></a>
+<span class="sourceLineNo">6399</span>    byte[] qf1 = Bytes.toBytes("qualifier");<a name="line.6399"></a>
+<span class="sourceLineNo">6400</span>    byte[] val1 = Bytes.toBytes("value1");<a name="line.6400"></a>
+<span class="sourceLineNo">6401</span><a name="line.6401"></a>
+<span class="sourceLineNo">6402</span>    RowMutations rm = new RowMutations(row1);<a name="line.6402"></a>
+<span class="sourceLineNo">6403</span>    Put put = new Put(row1);<a name="line.6403"></a>
+<span class="sourceLineNo">6404</span>    put.addColumn(fam1, qf1, val1);<a name="line.6404"></a>
+<span class="sourceLineNo">6405</span>    rm.add(put);<a name="line.6405"></a>
+<span class="sourceLineNo">6406</span><a name="line.6406"></a>
+<span class="sourceLineNo">6407</span>    this.region = initHRegion(tableName, method, CONF, fam1);<a name="line.6407"></a>
+<span class="sourceLineNo">6408</span>    try {<a name="line.6408"></a>
+<span class="sourceLineNo">6409</span>      long wrcBeforeMutate = this.region.writeRequestsCount.longValue();<a name="line.6409"></a>
+<span class="sourceLineNo">6410</span>      this.region.mutateRow(rm);<a name="line.6410"></a>
+<span class="sourceLineNo">6411</span>      long wrcAfterMutate = this.region.writeRequestsCount.longValue();<a name="line.6411"></a>
+<span class="sourceLineNo">6412</span>      Assert.assertEquals(wrcBeforeMutate + rm.getMutations().size(), wrcAfterMutate);<a name="line.6412"></a>
+<span class="sourceLineNo">6413</span>    } finally {<a name="line.6413"></a>
+<span class="sourceLineNo">6414</span>      HBaseTestingUtility.closeRegionAndWAL(this.region);<a name="line.6414"></a>
+<span class="sourceLineNo">6415</span>      this.region = null;<a name="line.6415"></a>
+<span class="sourceLineNo">6416</span>    }<a name="line.6416"></a>
+<span class="sourceLineNo">6417</span>  }<a name="line.6417"></a>
+<span class="sourceLineNo">6418</span>}<a name="line.6418"></a>
 
 
 


[08/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6985">

<TRUNCATED>

[16/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,

<TRUNCATED>

[04/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index 2e478a2..00d39a6 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index 65fd064..4a6c021 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 4dd505e..12d98e1 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index d78ff28..67fb907 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index f06b630..71a544c 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index 55e9a5c..3d18d2a 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index da80bf6..2061879 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 06ee539..10216dc 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index a0a6fb0..3825a07 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependencies.html b/hbase-archetypes/dependencies.html
index 6940866..c9971e5 100644
--- a/hbase-archetypes/dependencies.html
+++ b/hbase-archetypes/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-convergence.html b/hbase-archetypes/dependency-convergence.html
index 07e055b..35c0452 100644
--- a/hbase-archetypes/dependency-convergence.html
+++ b/hbase-archetypes/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-info.html b/hbase-archetypes/dependency-info.html
index 866930e..89ead70 100644
--- a/hbase-archetypes/dependency-info.html
+++ b/hbase-archetypes/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-management.html b/hbase-archetypes/dependency-management.html
index 6ddd28f..1f7cc1c 100644
--- a/hbase-archetypes/dependency-management.html
+++ b/hbase-archetypes/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-archetypes/hbase-archetype-builder/dependencies.html
index d9c5424..9f0405d 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index b3125ec..021edcd 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index 20adb10..8313501 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 9a053b1..c26feed 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-archetypes/hbase-archetype-builder/index.html
index 779d77c..add7cd0 100644
--- a/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-archetypes/hbase-archetype-builder/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-archetypes/hbase-archetype-builder/integration.html
index 62d1764..465d2c8 100644
--- a/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 2410743..6e80ced 100644
--- a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-archetypes/hbase-archetype-builder/license.html
index 343d9de..e91419b 100644
--- a/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-archetypes/hbase-archetype-builder/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 244401a..f071684 100644
--- a/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 172b10d..f32541d 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-archetypes/hbase-archetype-builder/plugins.html
index 5f2889c..93e54f0 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-archetypes/hbase-archetype-builder/project-info.html
index 618437a..dda1160 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-archetypes/hbase-archetype-builder/project-summary.html
index fba5df5..dda9fc3 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-archetypes/hbase-archetype-builder/source-repository.html
index 7aa54a3..414e858 100644
--- a/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-archetypes/hbase-archetype-builder/team-list.html
index f4f15f1..0efa0e9 100644
--- a/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-archetypes/hbase-client-project/checkstyle.html
index e96088a..9ef7ea4 100644
--- a/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-archetypes/hbase-client-project/dependencies.html
index ce8be65..5774ea2 100644
--- a/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 6ad5ea7..7b6a754 100644
--- a/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-archetypes/hbase-client-project/dependency-info.html
index f81d092..a5eaa9f 100644
--- a/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-archetypes/hbase-client-project/dependency-management.html
index 23e1615..3202e75 100644
--- a/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/index.html b/hbase-archetypes/hbase-client-project/index.html
index ad67789..623d419 100644
--- a/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-archetypes/hbase-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/integration.html b/hbase-archetypes/hbase-client-project/integration.html
index 6c338c2..9629a06 100644
--- a/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-archetypes/hbase-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-archetypes/hbase-client-project/issue-tracking.html
index 1f00852..f9d9710 100644
--- a/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/license.html b/hbase-archetypes/hbase-client-project/license.html
index 8cb2988..63ead67 100644
--- a/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-archetypes/hbase-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-archetypes/hbase-client-project/mail-lists.html
index fb0e48f..28fc37e 100644
--- a/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-archetypes/hbase-client-project/plugin-management.html
index ca64d50..235e6dc 100644
--- a/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugins.html b/hbase-archetypes/hbase-client-project/plugins.html
index c6a6909..f2531ec 100644
--- a/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-archetypes/hbase-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-info.html b/hbase-archetypes/hbase-client-project/project-info.html
index 415b661..03ee776 100644
--- a/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-archetypes/hbase-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-archetypes/hbase-client-project/project-reports.html
index 0f24bb8..33b3862 100644
--- a/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-archetypes/hbase-client-project/project-summary.html
index 5c369fa..ee8949c 100644
--- a/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-archetypes/hbase-client-project/source-repository.html
index eb72b5e..4bbebb2 100644
--- a/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/team-list.html b/hbase-archetypes/hbase-client-project/team-list.html
index 2563028..e6b8783 100644
--- a/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-archetypes/hbase-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index c65089f..9a2ec49 100644
--- a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index c9c5663..07ca875 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 97acb73..d54d242 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index a9b8164..403c5c1 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 2cd3285..86ec5f2 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-archetypes/hbase-shaded-client-project/index.html
index 2adecc4..54203e3 100644
--- a/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>


[05/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index 0319c49..205133c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.67"></a>
 <span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,74 +118,74 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 23, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 23, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_servers = servers;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_servers__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public List&lt;ServerName&gt; getServers()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_servers;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private List&lt;ServerName&gt; m_servers;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getServers__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_servers__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_servers__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 21, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 21, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_frags = frags;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_frags__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_frags;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFrags__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_frags__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 23, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_frags__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 23, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_servers = servers;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_servers__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public List&lt;ServerName&gt; getServers()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_servers;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private List&lt;ServerName&gt; m_servers;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getServers__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_servers__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_servers__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 28, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setServerManager(ServerManager serverManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 28, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_serverManager = serverManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_serverManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public ServerManager getServerManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_serverManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private ServerManager m_serverManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getServerManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_serverManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    private boolean m_serverManager__IsNotDefault;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
 <span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
@@ -203,23 +203,23 @@
 <span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
 <span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
+<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
 <span class="sourceLineNo">215</span>    // 24, 1<a name="line.215"></a>
 <span class="sourceLineNo">216</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
@@ -237,40 +237,40 @@
 <span class="sourceLineNo">229</span>      return m_deadServers__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
 <span class="sourceLineNo">231</span>    private boolean m_deadServers__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 28, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setServerManager(ServerManager serverManager)<a name="line.233"></a>
+<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 28, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_serverManager = serverManager;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_serverManager__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public ServerManager getServerManager()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_serverManager;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private ServerManager m_serverManager;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getServerManager__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_serverManager__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_serverManager__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 27, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setFormat(String format)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 27, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_format = format;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_format__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public String getFormat()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_format;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private String m_format;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getFormat__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_format__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_format__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,31 +282,31 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected List&lt;ServerName&gt; servers;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setServers(p_servers);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFrags(p_frags);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected List&lt;ServerName&gt; servers;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setServers(p_servers);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected ServerManager serverManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
@@ -317,10 +317,10 @@
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
@@ -331,17 +331,17 @@
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected ServerManager serverManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected String format;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setFormat(p_format);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 12f2138..5f0e4cf 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -70,15 +70,15 @@
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>{<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  private final HMaster master;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private final String filter;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private final ServerName metaLocation;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private final List&lt;ServerName&gt; servers;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private final String format;<a name="line.68"></a>
+<span class="sourceLineNo">065</span>  private final List&lt;ServerName&gt; servers;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final AssignmentManager assignmentManager;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final ServerManager serverManager;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>  private final boolean catalogJanitorEnabled;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.70"></a>
+<span class="sourceLineNo">070</span>  private final ServerName metaLocation;<a name="line.70"></a>
 <span class="sourceLineNo">071</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private final ServerManager serverManager;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private final AssignmentManager assignmentManager;<a name="line.73"></a>
+<span class="sourceLineNo">072</span>  private final String filter;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private final String format;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  // 69, 1<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  <a name="line.75"></a>
 <span class="sourceLineNo">076</span>  public String formatZKString() {<a name="line.76"></a>
@@ -108,41 +108,41 @@
 <span class="sourceLineNo">100</span><a name="line.100"></a>
 <span class="sourceLineNo">101</span>  protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)<a name="line.101"></a>
 <span class="sourceLineNo">102</span>  {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.103"></a>
+<span class="sourceLineNo">103</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      p_implData.setFilter("general");<a name="line.105"></a>
+<span class="sourceLineNo">105</span>      p_implData.setServers(null);<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.107"></a>
+<span class="sourceLineNo">107</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      p_implData.setMetaLocation(null);<a name="line.109"></a>
+<span class="sourceLineNo">109</span>      p_implData.setFrags(null);<a name="line.109"></a>
 <span class="sourceLineNo">110</span>    }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      p_implData.setServers(null);<a name="line.113"></a>
+<span class="sourceLineNo">113</span>      p_implData.setAssignmentManager(null);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.115"></a>
+<span class="sourceLineNo">115</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      p_implData.setFormat("html");<a name="line.117"></a>
+<span class="sourceLineNo">117</span>      p_implData.setServerManager(null);<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    }<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    {<a name="line.120"></a>
 <span class="sourceLineNo">121</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.123"></a>
+<span class="sourceLineNo">123</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      p_implData.setFrags(null);<a name="line.125"></a>
+<span class="sourceLineNo">125</span>      p_implData.setMetaLocation(null);<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    }<a name="line.126"></a>
 <span class="sourceLineNo">127</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    {<a name="line.128"></a>
 <span class="sourceLineNo">129</span>      p_implData.setDeadServers(null);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.131"></a>
+<span class="sourceLineNo">131</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      p_implData.setServerManager(null);<a name="line.133"></a>
+<span class="sourceLineNo">133</span>      p_implData.setFilter("general");<a name="line.133"></a>
 <span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.135"></a>
+<span class="sourceLineNo">135</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      p_implData.setAssignmentManager(null);<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      p_implData.setFormat("html");<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
 <span class="sourceLineNo">139</span>    return p_implData;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
@@ -150,15 +150,15 @@
 <span class="sourceLineNo">142</span>  {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.143"></a>
 <span class="sourceLineNo">144</span>    master = p_implData.getMaster();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    filter = p_implData.getFilter();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    metaLocation = p_implData.getMetaLocation();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    servers = p_implData.getServers();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    format = p_implData.getFormat();<a name="line.148"></a>
+<span class="sourceLineNo">145</span>    servers = p_implData.getServers();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    frags = p_implData.getFrags();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    serverManager = p_implData.getServerManager();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    frags = p_implData.getFrags();<a name="line.150"></a>
+<span class="sourceLineNo">150</span>    metaLocation = p_implData.getMetaLocation();<a name="line.150"></a>
 <span class="sourceLineNo">151</span>    deadServers = p_implData.getDeadServers();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    serverManager = p_implData.getServerManager();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.153"></a>
+<span class="sourceLineNo">152</span>    filter = p_implData.getFilter();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    format = p_implData.getFormat();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  }<a name="line.154"></a>
 <span class="sourceLineNo">155</span>  <a name="line.155"></a>
 <span class="sourceLineNo">156</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.156"></a>
@@ -172,8 +172,8 @@
 <span class="sourceLineNo">164</span>      // 61, 3<a name="line.164"></a>
 <span class="sourceLineNo">165</span>      {<a name="line.165"></a>
 <span class="sourceLineNo">166</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        __jamon__var_0.setFilter(filter);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        __jamon__var_0.setFormat("json" );<a name="line.168"></a>
+<span class="sourceLineNo">167</span>        __jamon__var_0.setFormat("json" );<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        __jamon__var_0.setFilter(filter);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>        __jamon__var_0.renderNoFlush(jamonWriter);<a name="line.169"></a>
 <span class="sourceLineNo">170</span>      }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>      // 61, 68<a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 9be600e..70efd17 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -34,8 +34,8 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
 <span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
@@ -94,40 +94,40 @@
 <span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 24, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcv(String bcv)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 24, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcv = bcv;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcv__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcv()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcv;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcv;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcv__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcv__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcv__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
@@ -163,17 +163,17 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcv;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcv(p_bcv);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index 9be600e..70efd17 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -34,8 +34,8 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
 <span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
@@ -94,40 +94,40 @@
 <span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 24, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcv(String bcv)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 24, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcv = bcv;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcv__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcv()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcv;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcv;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcv__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcv__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcv__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
@@ -163,17 +163,17 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcv;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcv(p_bcv);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 9be600e..70efd17 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -34,8 +34,8 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
 <span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
@@ -94,40 +94,40 @@
 <span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 24, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcv(String bcv)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 24, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcv = bcv;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcv__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcv()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcv;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcv;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcv__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcv__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcv__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
@@ -163,17 +163,17 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcv;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcv(p_bcv);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 70e1b13..e3dc35e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -35,8 +35,8 @@
 <span class="sourceLineNo">027</span>{<a name="line.27"></a>
 <span class="sourceLineNo">028</span>  private final HRegionServer regionServer;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>  private final String filter;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  private final String format;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>  private final String bcv;<a name="line.31"></a>
+<span class="sourceLineNo">030</span>  private final String bcv;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>  private final String format;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>  private final String bcn;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)<a name="line.33"></a>
 <span class="sourceLineNo">034</span>  {<a name="line.34"></a>
@@ -44,13 +44,13 @@
 <span class="sourceLineNo">036</span>    {<a name="line.36"></a>
 <span class="sourceLineNo">037</span>      p_implData.setFilter("general");<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    }<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.39"></a>
+<span class="sourceLineNo">039</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      p_implData.setFormat("html");<a name="line.41"></a>
+<span class="sourceLineNo">041</span>      p_implData.setBcv("");<a name="line.41"></a>
 <span class="sourceLineNo">042</span>    }<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.43"></a>
+<span class="sourceLineNo">043</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.43"></a>
 <span class="sourceLineNo">044</span>    {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      p_implData.setBcv("");<a name="line.45"></a>
+<span class="sourceLineNo">045</span>      p_implData.setFormat("html");<a name="line.45"></a>
 <span class="sourceLineNo">046</span>    }<a name="line.46"></a>
 <span class="sourceLineNo">047</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.47"></a>
 <span class="sourceLineNo">048</span>    {<a name="line.48"></a>
@@ -63,8 +63,8 @@
 <span class="sourceLineNo">055</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.55"></a>
 <span class="sourceLineNo">056</span>    regionServer = p_implData.getRegionServer();<a name="line.56"></a>
 <span class="sourceLineNo">057</span>    filter = p_implData.getFilter();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    format = p_implData.getFormat();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    bcv = p_implData.getBcv();<a name="line.59"></a>
+<span class="sourceLineNo">058</span>    bcv = p_implData.getBcv();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    format = p_implData.getFormat();<a name="line.59"></a>
 <span class="sourceLineNo">060</span>    bcn = p_implData.getBcn();<a name="line.60"></a>
 <span class="sourceLineNo">061</span>  }<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  <a name="line.62"></a>
@@ -94,8 +94,8 @@
 <span class="sourceLineNo">086</span>      // 41, 3<a name="line.86"></a>
 <span class="sourceLineNo">087</span>      {<a name="line.87"></a>
 <span class="sourceLineNo">088</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_7 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        __jamon__var_7.setFilter(filter);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        __jamon__var_7.setFormat("json" );<a name="line.90"></a>
+<span class="sourceLineNo">089</span>        __jamon__var_7.setFormat("json" );<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        __jamon__var_7.setFilter(filter);<a name="line.90"></a>
 <span class="sourceLineNo">091</span>        __jamon__var_7.renderNoFlush(jamonWriter);<a name="line.91"></a>
 <span class="sourceLineNo">092</span>      }<a name="line.92"></a>
 <span class="sourceLineNo">093</span>      // 41, 68<a name="line.93"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 3e8afde..725c7ba 100644
--- a/export_control.html
+++ b/export_control.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -348,7 +348,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 31dacf1..5673531 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 439bc58..b218f3d 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 2cd7a5d..b74bf64 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index 55caf41..6d85708 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index 0f8bdc3..916344d 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index b16ba94..9bded13 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index 592c7be..fdfc883 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index b5fb95d..9a4abf6 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>


[06/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index 0319c49..205133c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.67"></a>
 <span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,74 +118,74 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 23, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 23, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_servers = servers;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_servers__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public List&lt;ServerName&gt; getServers()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_servers;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private List&lt;ServerName&gt; m_servers;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getServers__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_servers__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_servers__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 21, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 21, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_frags = frags;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_frags__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_frags;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFrags__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_frags__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 23, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_frags__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 23, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_servers = servers;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_servers__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public List&lt;ServerName&gt; getServers()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_servers;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private List&lt;ServerName&gt; m_servers;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getServers__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_servers__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_servers__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 28, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setServerManager(ServerManager serverManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 28, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_serverManager = serverManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_serverManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public ServerManager getServerManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_serverManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private ServerManager m_serverManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getServerManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_serverManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    private boolean m_serverManager__IsNotDefault;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
 <span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
@@ -203,23 +203,23 @@
 <span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
 <span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
+<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
 <span class="sourceLineNo">215</span>    // 24, 1<a name="line.215"></a>
 <span class="sourceLineNo">216</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
@@ -237,40 +237,40 @@
 <span class="sourceLineNo">229</span>      return m_deadServers__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
 <span class="sourceLineNo">231</span>    private boolean m_deadServers__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 28, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setServerManager(ServerManager serverManager)<a name="line.233"></a>
+<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 28, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_serverManager = serverManager;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_serverManager__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public ServerManager getServerManager()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_serverManager;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private ServerManager m_serverManager;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getServerManager__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_serverManager__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_serverManager__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 27, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setFormat(String format)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 27, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_format = format;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_format__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public String getFormat()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_format;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private String m_format;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getFormat__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_format__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_format__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,31 +282,31 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected List&lt;ServerName&gt; servers;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setServers(p_servers);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFrags(p_frags);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected List&lt;ServerName&gt; servers;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setServers(p_servers);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected ServerManager serverManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
@@ -317,10 +317,10 @@
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
@@ -331,17 +331,17 @@
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected ServerManager serverManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected String format;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setFormat(p_format);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
index 0319c49..205133c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.67"></a>
 <span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,74 +118,74 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 23, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 23, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_servers = servers;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_servers__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public List&lt;ServerName&gt; getServers()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_servers;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private List&lt;ServerName&gt; m_servers;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getServers__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_servers__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_servers__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 21, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 21, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_frags = frags;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_frags__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_frags;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFrags__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_frags__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 23, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_frags__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 23, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_servers = servers;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_servers__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public List&lt;ServerName&gt; getServers()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_servers;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private List&lt;ServerName&gt; m_servers;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getServers__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_servers__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_servers__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 28, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setServerManager(ServerManager serverManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 28, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_serverManager = serverManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_serverManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public ServerManager getServerManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_serverManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private ServerManager m_serverManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getServerManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_serverManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    private boolean m_serverManager__IsNotDefault;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
 <span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
@@ -203,23 +203,23 @@
 <span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
 <span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
+<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
 <span class="sourceLineNo">215</span>    // 24, 1<a name="line.215"></a>
 <span class="sourceLineNo">216</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
@@ -237,40 +237,40 @@
 <span class="sourceLineNo">229</span>      return m_deadServers__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
 <span class="sourceLineNo">231</span>    private boolean m_deadServers__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 28, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setServerManager(ServerManager serverManager)<a name="line.233"></a>
+<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 28, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_serverManager = serverManager;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_serverManager__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public ServerManager getServerManager()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_serverManager;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private ServerManager m_serverManager;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getServerManager__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_serverManager__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_serverManager__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 27, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setFormat(String format)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 27, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_format = format;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_format__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public String getFormat()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_format;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private String m_format;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getFormat__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_format__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_format__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,31 +282,31 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected List&lt;ServerName&gt; servers;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setServers(p_servers);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFrags(p_frags);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected List&lt;ServerName&gt; servers;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setServers(p_servers);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected ServerManager serverManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
@@ -317,10 +317,10 @@
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
@@ -331,17 +331,17 @@
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected ServerManager serverManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected String format;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setFormat(p_format);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>


[12/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem 

<TRUNCATED>

[07/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6985"></a>
+<span class="sourceLineNo">6986</span>      // so

<TRUNCATED>

[14/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a na

<TRUNCATED>

[17/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index c4bb78c..5c8cf10 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -393,76 +393,76 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.112">m_master</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_filter</a></pre>
+<h4>m_servers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_servers</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_servers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_filter__IsNotDefault</a></pre>
+<h4>m_servers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_servers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation">
+<a name="m_frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_metaLocation</a></pre>
+<h4>m_frags</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_frags</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation__IsNotDefault">
+<a name="m_frags__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_metaLocation__IsNotDefault</a></pre>
+<h4>m_frags__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_frags__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_servers">
+<a name="m_assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_servers</a></pre>
+<h4>m_assignmentManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_assignmentManager</a></pre>
 </li>
 </ul>
-<a name="m_servers__IsNotDefault">
+<a name="m_assignmentManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_servers__IsNotDefault</a></pre>
+<h4>m_assignmentManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_assignmentManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_format</a></pre>
+<h4>m_serverManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_serverManager</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_serverManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_format__IsNotDefault</a></pre>
+<h4>m_serverManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_serverManager__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_catalogJanitorEnabled">
@@ -483,22 +483,22 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_catalogJanitorEnabled__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_frags">
+<a name="m_metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_frags</a></pre>
+<h4>m_metaLocation</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_metaLocation</a></pre>
 </li>
 </ul>
-<a name="m_frags__IsNotDefault">
+<a name="m_metaLocation__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_frags__IsNotDefault</a></pre>
+<h4>m_metaLocation__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_metaLocation__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_deadServers">
@@ -519,40 +519,40 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_deadServers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_serverManager">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_serverManager</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_serverManager__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_serverManager__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_assignmentManager</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_format</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_assignmentManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_assignmentManager__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -598,112 +598,112 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.108">getMaster</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getFilter</a>()</pre>
+<h4>getServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getServers</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getFilter__IsNotDefault</a>()</pre>
+<h4>getServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
+<h4>setFrags</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
 </li>
 </ul>
-<a name="getMetaLocation--">
+<a name="getFrags--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getMetaLocation</a>()</pre>
+<h4>getFrags</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getFrags</a>()</pre>
 </li>
 </ul>
-<a name="getMetaLocation__IsNotDefault--">
+<a name="getFrags__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getMetaLocation__IsNotDefault</a>()</pre>
+<h4>getFrags__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getFrags__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
 </li>
 </ul>
-<a name="getServers--">
+<a name="getAssignmentManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getServers</a>()</pre>
+<h4>getAssignmentManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getAssignmentManager</a>()</pre>
 </li>
 </ul>
-<a name="getServers__IsNotDefault--">
+<a name="getAssignmentManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getServers__IsNotDefault</a>()</pre>
+<h4>getAssignmentManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getAssignmentManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setServerManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getServerManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getFormat</a>()</pre>
+<h4>getServerManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getServerManager</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getServerManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getFormat__IsNotDefault</a>()</pre>
+<h4>getServerManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getServerManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setCatalogJanitorEnabled-boolean-">
@@ -733,31 +733,31 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
+<h4>setMetaLocation</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
 </li>
 </ul>
-<a name="getFrags--">
+<a name="getMetaLocation--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getFrags</a>()</pre>
+<h4>getMetaLocation</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getMetaLocation</a>()</pre>
 </li>
 </ul>
-<a name="getFrags__IsNotDefault--">
+<a name="getMetaLocation__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getFrags__IsNotDefault</a>()</pre>
+<h4>getMetaLocation__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getMetaLocation__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setDeadServers-java.util.Set-">
@@ -787,58 +787,58 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getDeadServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getServerManager--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getServerManager</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getServerManager__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getServerManager__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getAssignmentManager--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getAssignmentManager</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getAssignmentManager__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getAssignmentManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getAssignmentManager__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index 7a7172b..fed8178 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -337,40 +337,40 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="filter">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">filter</a></pre>
+<h4>servers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">servers</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">metaLocation</a></pre>
+<h4>frags</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">frags</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>servers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">servers</a></pre>
+<h4>assignmentManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">format</a></pre>
+<h4>serverManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">serverManager</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorEnabled">
@@ -382,13 +382,13 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">frags</a></pre>
+<h4>metaLocation</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">metaLocation</a></pre>
 </li>
 </ul>
 <a name="deadServers">
@@ -400,22 +400,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">deadServers</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">serverManager</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">filter</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">assignmentManager</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">format</a></pre>
 </li>
 </ul>
 </li>
@@ -487,40 +487,40 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
+<h4>setFrags</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setServerManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
 </li>
 </ul>
 <a name="setCatalogJanitorEnabled-boolean-">
@@ -532,13 +532,13 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
+<h4>setMetaLocation</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
 </li>
 </ul>
 <a name="setDeadServers-java.util.Set-">
@@ -550,22 +550,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index dad18a4..a5368ec 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -278,40 +278,40 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.64">master</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">filter</a></pre>
+<h4>servers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">servers</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">metaLocation</a></pre>
+<h4>frags</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">frags</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>servers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">servers</a></pre>
+<h4>assignmentManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">format</a></pre>
+<h4>serverManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">serverManager</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorEnabled">
@@ -323,13 +323,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">frags</a></pre>
+<h4>metaLocation</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">metaLocation</a></pre>
 </li>
 </ul>
 <a name="deadServers">
@@ -341,22 +341,22 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">deadServers</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">serverManager</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">filter</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">assignmentManager</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">format</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 2ce5657..302cfb3 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -311,40 +311,40 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_format</a></pre>
+<h4>m_bcv</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_bcv</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_bcv__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_format__IsNotDefault</a></pre>
+<h4>m_bcv__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_bcv__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_bcv">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcv</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_bcv</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_format</a></pre>
 </li>
 </ul>
-<a name="m_bcv__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcv__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_bcv__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_bcn">
@@ -435,58 +435,58 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setBcv</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getBcv--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getFormat</a>()</pre>
+<h4>getBcv</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getBcv</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getBcv__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getFormat__IsNotDefault</a>()</pre>
+<h4>getBcv__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getBcv__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getBcv--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcv</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getBcv</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getBcv__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcv__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getBcv__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setBcn-java.lang.String-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 252b341..b0a9e9e 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -306,22 +306,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">format</a></pre>
+<h4>bcv</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">bcv</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcv</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">format</a></pre>
 </li>
 </ul>
 <a name="bcn">
@@ -411,22 +411,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setBcv</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
 <a name="setBcn-java.lang.String-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 380f04c..f56b0c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -247,22 +247,22 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">format</a></pre>
+<h4>bcv</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">bcv</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcv</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">format</a></pre>
 </li>
 </ul>
 <a name="bcn">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 5f6b5af..a4a8e63 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "2.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "af604f0c0cf3c40c56746150ffa860aad07f128a";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "48b2502a5fcd4d3cd954c3abf6703422da7cdc2f";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Thu Apr  6 23:39:51 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri Apr  7 00:09:46 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "e1adf1e6b711cba5e304b2fd2c449586";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "466787d366bdddbb10aabf477dd1b966";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[10/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,

<TRUNCATED>

[19/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/794df1af
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/794df1af
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/794df1af

Branch: refs/heads/asf-site
Commit: 794df1af8d7eab6ba556595678af254c537438cd
Parents: 282e052
Author: jenkins <bu...@apache.org>
Authored: Fri Apr 7 00:30:54 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Fri Apr 7 00:30:54 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |    4 +-
 apache_hbase_reference_guide.pdfmarks           |    4 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       |   80 +-
 coc.html                                        |    4 +-
 cygwin.html                                     |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/constant-values.html                 |    6 +-
 .../hadoop/hbase/regionserver/HRegion.html      |  124 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |  210 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   84 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |   42 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   60 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   24 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   12 +-
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 .../regionserver/HRegion.BatchOperation.html    | 2359 +++++++++---------
 .../regionserver/HRegion.FlushResultImpl.html   | 2359 +++++++++---------
 .../regionserver/HRegion.MutationBatch.html     | 2359 +++++++++---------
 .../HRegion.PrepareFlushResult.html             | 2359 +++++++++---------
 .../regionserver/HRegion.RegionScannerImpl.html | 2359 +++++++++---------
 .../hbase/regionserver/HRegion.ReplayBatch.html | 2359 +++++++++---------
 .../regionserver/HRegion.RowLockContext.html    | 2359 +++++++++---------
 .../hbase/regionserver/HRegion.RowLockImpl.html | 2359 +++++++++---------
 .../hbase/regionserver/HRegion.WriteState.html  | 2359 +++++++++---------
 .../hadoop/hbase/regionserver/HRegion.html      | 2359 +++++++++---------
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |  210 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |  210 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |  210 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |   60 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   60 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |   60 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   60 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   20 +-
 export_control.html                             |    4 +-
 hbase-annotations/checkstyle.html               |    6 +-
 hbase-annotations/dependencies.html             |    6 +-
 hbase-annotations/dependency-convergence.html   |    6 +-
 hbase-annotations/dependency-info.html          |    6 +-
 hbase-annotations/dependency-management.html    |    6 +-
 hbase-annotations/index.html                    |    6 +-
 hbase-annotations/integration.html              |    6 +-
 hbase-annotations/issue-tracking.html           |    6 +-
 hbase-annotations/license.html                  |    6 +-
 hbase-annotations/mail-lists.html               |    6 +-
 hbase-annotations/plugin-management.html        |    6 +-
 hbase-annotations/plugins.html                  |    6 +-
 hbase-annotations/project-info.html             |    6 +-
 hbase-annotations/project-reports.html          |    6 +-
 hbase-annotations/project-summary.html          |    6 +-
 hbase-annotations/source-repository.html        |    6 +-
 hbase-annotations/team-list.html                |    6 +-
 hbase-archetypes/dependencies.html              |    6 +-
 hbase-archetypes/dependency-convergence.html    |    6 +-
 hbase-archetypes/dependency-info.html           |    6 +-
 hbase-archetypes/dependency-management.html     |    6 +-
 .../hbase-archetype-builder/dependencies.html   |    6 +-
 .../dependency-convergence.html                 |    6 +-
 .../dependency-info.html                        |    6 +-
 .../dependency-management.html                  |    6 +-
 .../hbase-archetype-builder/index.html          |    6 +-
 .../hbase-archetype-builder/integration.html    |    6 +-
 .../hbase-archetype-builder/issue-tracking.html |    6 +-
 .../hbase-archetype-builder/license.html        |    6 +-
 .../hbase-archetype-builder/mail-lists.html     |    6 +-
 .../plugin-management.html                      |    6 +-
 .../hbase-archetype-builder/plugins.html        |    6 +-
 .../hbase-archetype-builder/project-info.html   |    6 +-
 .../project-summary.html                        |    6 +-
 .../source-repository.html                      |    6 +-
 .../hbase-archetype-builder/team-list.html      |    6 +-
 .../hbase-client-project/checkstyle.html        |    6 +-
 .../hbase-client-project/dependencies.html      |    6 +-
 .../dependency-convergence.html                 |    6 +-
 .../hbase-client-project/dependency-info.html   |    6 +-
 .../dependency-management.html                  |    6 +-
 .../hbase-client-project/index.html             |    6 +-
 .../hbase-client-project/integration.html       |    6 +-
 .../hbase-client-project/issue-tracking.html    |    6 +-
 .../hbase-client-project/license.html           |    6 +-
 .../hbase-client-project/mail-lists.html        |    6 +-
 .../hbase-client-project/plugin-management.html |    6 +-
 .../hbase-client-project/plugins.html           |    6 +-
 .../hbase-client-project/project-info.html      |    6 +-
 .../hbase-client-project/project-reports.html   |    6 +-
 .../hbase-client-project/project-summary.html   |    6 +-
 .../hbase-client-project/source-repository.html |    6 +-
 .../hbase-client-project/team-list.html         |    6 +-
 .../hbase-shaded-client-project/checkstyle.html |    6 +-
 .../dependencies.html                           |    6 +-
 .../dependency-convergence.html                 |    6 +-
 .../dependency-info.html                        |    6 +-
 .../dependency-management.html                  |    6 +-
 .../hbase-shaded-client-project/index.html      |    6 +-
 .../integration.html                            |    6 +-
 .../issue-tracking.html                         |    6 +-
 .../hbase-shaded-client-project/license.html    |    6 +-
 .../hbase-shaded-client-project/mail-lists.html |    6 +-
 .../plugin-management.html                      |    6 +-
 .../hbase-shaded-client-project/plugins.html    |    6 +-
 .../project-info.html                           |    6 +-
 .../project-reports.html                        |    6 +-
 .../project-summary.html                        |    6 +-
 .../source-repository.html                      |    6 +-
 .../hbase-shaded-client-project/team-list.html  |    6 +-
 hbase-archetypes/index.html                     |    6 +-
 hbase-archetypes/integration.html               |    6 +-
 hbase-archetypes/issue-tracking.html            |    6 +-
 hbase-archetypes/license.html                   |    6 +-
 hbase-archetypes/mail-lists.html                |    6 +-
 hbase-archetypes/plugin-management.html         |    6 +-
 hbase-archetypes/plugins.html                   |    6 +-
 hbase-archetypes/project-info.html              |    6 +-
 hbase-archetypes/project-summary.html           |    6 +-
 hbase-archetypes/source-repository.html         |    6 +-
 hbase-archetypes/team-list.html                 |    6 +-
 hbase-spark/checkstyle.html                     |    6 +-
 hbase-spark/dependencies.html                   |    8 +-
 hbase-spark/dependency-convergence.html         |    6 +-
 hbase-spark/dependency-info.html                |    6 +-
 hbase-spark/dependency-management.html          |    6 +-
 hbase-spark/index.html                          |    6 +-
 hbase-spark/integration.html                    |    6 +-
 hbase-spark/issue-tracking.html                 |    6 +-
 hbase-spark/license.html                        |    6 +-
 hbase-spark/mail-lists.html                     |    6 +-
 hbase-spark/plugin-management.html              |    6 +-
 hbase-spark/plugins.html                        |    6 +-
 hbase-spark/project-info.html                   |    6 +-
 hbase-spark/project-reports.html                |    6 +-
 hbase-spark/project-summary.html                |    6 +-
 hbase-spark/source-repository.html              |    6 +-
 hbase-spark/team-list.html                      |    6 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |    4 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 testdevapidocs/index-all.html                   |    2 +
 .../org/apache/hadoop/hbase/package-tree.html   |   12 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    2 +-
 .../hadoop/hbase/regionserver/TestHRegion.html  |  114 +-
 .../TestHRegionWithInMemoryFlush.html           |    2 +-
 .../hadoop/hbase/regionserver/package-tree.html |    2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 .../regionserver/TestHRegion.Appender.html      |   26 +-
 .../regionserver/TestHRegion.FlushThread.html   |   26 +-
 .../TestHRegion.GetTillDoneOrException.html     |   26 +-
 .../TestHRegion.HRegionWithSeqId.html           |   26 +-
 .../regionserver/TestHRegion.Incrementer.html   |   26 +-
 .../TestHRegion.IsFlushWALMarker.html           |   26 +-
 .../regionserver/TestHRegion.PutThread.html     |   26 +-
 .../hadoop/hbase/regionserver/TestHRegion.html  |   26 +-
 173 files changed, 13205 insertions(+), 12983 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index ae86adf..75b2aa8 100644
--- a/acid-semantics.html
+++ b/acid-semantics.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -618,7 +618,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index d760920..f5891c6 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20170406234815+00'00')
-/ModDate (D:20170406234815+00'00')
+/CreationDate (D:20170407001809+00'00')
+/ModDate (D:20170407001809+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index d74529c..2406357 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20170406234939)
-  /CreationDate (D:20170406234939)
+  /ModDate (D:20170407001934)
+  /CreationDate (D:20170407001934)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 1c42d0d..f8e2290 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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -323,7 +323,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 1550b3d..1a79ec1 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -55414,229 +55414,229 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7111</td></tr>
+<td>7112</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7273</td></tr>
+<td>7274</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7321</td></tr>
+<td>7322</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7324</td></tr>
+<td>7325</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7333</td></tr>
+<td>7334</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7358</td></tr>
+<td>7359</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7400</td></tr>
+<td>7401</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7401</td></tr>
+<td>7402</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7403</td></tr>
+<td>7404</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>7472</td></tr>
+<td>7473</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>7706</td></tr>
+<td>7707</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>7708</td></tr>
+<td>7709</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>7709</td></tr>
+<td>7710</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>7710</td></tr>
+<td>7711</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>7711</td></tr>
+<td>7712</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>7712</td></tr>
+<td>7713</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>7880</td></tr>
+<td>7881</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7903</td></tr>
+<td>7904</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td>7904</td></tr>
+<td>7905</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7906</td></tr>
+<td>7907</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td>7907</td></tr>
+<td>7908</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>7917</td></tr>
+<td>7918</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td>7918</td></tr>
+<td>7919</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>7986</td></tr>
+<td>7987</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be 10.</td>
-<td>7988</td></tr>
+<td>7989</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be 12.</td>
-<td>7989</td></tr>
+<td>7990</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be 10.</td>
-<td>7990</td></tr>
+<td>7991</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>7991</td></tr>
+<td>7992</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>7992</td></tr>
+<td>7993</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>7994</td></tr>
+<td>7995</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>7995</td></tr>
+<td>7996</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>7997</td></tr>
+<td>7998</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>7998</td></tr>
+<td>7999</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>7999</td></tr>
+<td>8000</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>8001</td></tr>
+<td>8002</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>8002</td></tr>
+<td>8003</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>8003</td></tr>
+<td>8004</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>8004</td></tr></table></div>
+<td>8005</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.HRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java</h3>
 <table border="0" class="table table-striped">
@@ -104711,7 +104711,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index fc41b12..4d13c21 100644
--- a/coc.html
+++ b/coc.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -392,7 +392,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 7c3e9b1..d1a20e4 100644
--- a/cygwin.html
+++ b/cygwin.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -691,7 +691,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 0889c47..08128e4 100644
--- a/dependencies.html
+++ b/dependencies.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -536,7 +536,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index ee9b294..680bbcc 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1883,7 +1883,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index b0dcee2..3296353 100644
--- a/dependency-info.html
+++ b/dependency-info.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 52520ea..d615f00 100644
--- a/dependency-management.html
+++ b/dependency-management.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -918,7 +918,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index bb98e4e..35d7362 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3775,21 +3775,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Thu Apr  6 23:39:51 UTC 2017"</code></td>
+<td class="colLast"><code>"Fri Apr  7 00:09:46 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"af604f0c0cf3c40c56746150ffa860aad07f128a"</code></td>
+<td class="colLast"><code>"48b2502a5fcd4d3cd954c3abf6703422da7cdc2f"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"e1adf1e6b711cba5e304b2fd2c449586"</code></td>
+<td class="colLast"><code>"466787d366bdddbb10aabf477dd1b966"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">


[18/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
index 71778e4..0ca858e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -3173,7 +3173,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FIXED_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7609">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7610">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -3182,7 +3182,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEEP_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7626">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7627">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="MOCKED_LIST">
@@ -3191,7 +3191,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MOCKED_LIST</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8019">MOCKED_LIST</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8020">MOCKED_LIST</a></pre>
 <div class="block">A mocked list implementation - discards all updates.</div>
 </li>
 </ul>
@@ -6895,7 +6895,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadStatistics</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionLoadStats&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6976">getLoadStatistics</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionLoadStats&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6977">getLoadStatistics</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>statistics about the current load of the region</dd>
@@ -6908,7 +6908,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>processRowsWithLocks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6999">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7000">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#processRowsWithLocks-org.apache.hadoop.hbase.regionserver.RowProcessor-">Region</a></code></span></div>
 <div class="block">Performs atomic multiple reads and writes on a given row.</div>
@@ -6928,7 +6928,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>processRowsWithLocks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7005">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7006">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
                                  long&nbsp;nonceGroup,
                                  long&nbsp;nonce)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -6952,7 +6952,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>processRowsWithLocks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7011">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7012">processRowsWithLocks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
                                  long&nbsp;timeout,
                                  long&nbsp;nonceGroup,
                                  long&nbsp;nonce)
@@ -6979,7 +6979,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>preProcess</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7130">preProcess</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7131">preProcess</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;walEdit)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -6994,7 +6994,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>doProcessRowWithTimeout</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7140">doProcessRowWithTimeout</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7141">doProcessRowWithTimeout</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;?,?&gt;&nbsp;processor,
                                      long&nbsp;now,
                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;mutations,
@@ -7013,7 +7013,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7189">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7190">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -7027,7 +7027,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7194">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;mutation,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7195">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;mutation,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -7049,7 +7049,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>increment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7198">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7199">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -7063,7 +7063,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>increment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7203">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;mutation,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7204">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;mutation,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -7085,7 +7085,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>doDelta</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7218">doDelta</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7219">doDelta</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
                        <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                        long&nbsp;nonceGroup,
                        long&nbsp;nonce,
@@ -7111,7 +7111,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>doWALAppend</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7297">doWALAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;walEdit,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7298">doWALAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;walEdit,
                                                               <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability,
                                                               long&nbsp;nonceGroup,
                                                               long&nbsp;nonce)
@@ -7128,7 +7128,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>doWALAppend</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7307">doWALAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;walEdit,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7308">doWALAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;walEdit,
                                                               <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability,
                                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&gt;&nbsp;clusterIds,
                                                               long&nbsp;now,
@@ -7149,7 +7149,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>doCoprocessorPreCall</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7335">doCoprocessorPreCall</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7336">doCoprocessorPreCall</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
                                     <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Do coprocessor pre-increment or pre-append call.</div>
@@ -7168,7 +7168,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reckonDeltas</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7362">reckonDeltas</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7363">reckonDeltas</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
                              <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                              <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;effectiveDurability,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;forMemStore,
@@ -7195,7 +7195,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reckonDeltasByStore</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7405">reckonDeltasByStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7406">reckonDeltasByStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op,
                                        <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                        <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;effectiveDurability,
@@ -7229,7 +7229,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reckonIncrement</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7474">reckonIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;delta,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7475">reckonIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;delta,
                              long&nbsp;deltaAmount,
                              <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentValue,
                              byte[]&nbsp;columnFamily,
@@ -7252,7 +7252,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reckonAppend</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7499">reckonAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;delta,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7500">reckonAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;delta,
                           <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentValue,
                           long&nbsp;now,
                           <a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;mutation)
@@ -7269,7 +7269,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getLongValue</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7550">getLongValue</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7551">getLongValue</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
                           throws <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -7285,7 +7285,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7566">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7567">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;coordinates,
                        <a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolation,
@@ -7310,7 +7310,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>sort</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7591">sort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7592">sort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;comparator)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -7324,7 +7324,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>checkFamily</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7600">checkFamily</a>(byte[]&nbsp;family)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7601">checkFamily</a>(byte[]&nbsp;family)
           throws <a href="../../../../../org/apache/hadoop/hbase/regionserver/NoSuchColumnFamilyException.html" title="class in org.apache.hadoop.hbase.regionserver">NoSuchColumnFamilyException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -7338,7 +7338,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>heapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7642">heapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7643">heapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
@@ -7354,7 +7354,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7652">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7653">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#registerService-com.google.protobuf.Service-">Region</a></code></span></div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to
  be available for handling Region#execService(com.google.protobuf.RpcController,
@@ -7383,7 +7383,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>execService</h4>
-<pre>public&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7675">execService</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7676">execService</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall&nbsp;call)
                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#execService-com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall-">Region</a></code></span></div>
@@ -7414,7 +7414,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldForceSplit</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7726">shouldForceSplit</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7727">shouldForceSplit</a>()</pre>
 </li>
 </ul>
 <a name="getExplicitSplitPoint--">
@@ -7423,7 +7423,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getExplicitSplitPoint</h4>
-<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7730">getExplicitSplitPoint</a>()</pre>
+<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7731">getExplicitSplitPoint</a>()</pre>
 </li>
 </ul>
 <a name="forceSplit-byte:A-">
@@ -7432,7 +7432,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>forceSplit</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7734">forceSplit</a>(byte[]&nbsp;sp)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7735">forceSplit</a>(byte[]&nbsp;sp)</pre>
 </li>
 </ul>
 <a name="clearSplit--">
@@ -7441,7 +7441,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>clearSplit</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7743">clearSplit</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7744">clearSplit</a>()</pre>
 </li>
 </ul>
 <a name="prepareToSplit--">
@@ -7450,7 +7450,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareToSplit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7751">prepareToSplit</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7752">prepareToSplit</a>()</pre>
 <div class="block">Give the region a chance to prepare before it is split.</div>
 </li>
 </ul>
@@ -7460,7 +7460,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>checkSplit</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7761">checkSplit</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7762">checkSplit</a>()</pre>
 <div class="block">Return the splitpoint. null indicates the region isn't splittable
  If the splitpoint isn't explicitly specified, it will go over the stores
  to find the best splitpoint. Currently the criteria of best splitpoint
@@ -7473,7 +7473,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactPriority</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7797">getCompactPriority</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7798">getCompactPriority</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The priority that this region should have in the compaction queue</dd>
@@ -7486,7 +7486,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7808">getCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7809">getCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCoprocessorHost--">getCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -7501,7 +7501,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setCoprocessorHost</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7813">setCoprocessorHost</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;coprocessorHost)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7814">setCoprocessorHost</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;coprocessorHost)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>coprocessorHost</code> - the new coprocessor host</dd>
@@ -7514,7 +7514,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7818">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7819">startRegionOperation</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#startRegionOperation--">Region</a></code></span></div>
 <div class="block">This method needs to be called before any public call that reads or
@@ -7536,7 +7536,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7825">startRegionOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7826">startRegionOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;op)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#startRegionOperation-org.apache.hadoop.hbase.regionserver.Region.Operation-">Region</a></code></span></div>
 <div class="block">This method needs to be called before any public call that reads or
@@ -7560,7 +7560,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7873">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7874">closeRegionOperation</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#closeRegionOperation--">Region</a></code></span></div>
 <div class="block">Closes the region operation lock.</div>
@@ -7578,7 +7578,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7882">closeRegionOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;operation)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7883">closeRegionOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;operation)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Closes the lock. This needs to be called in the finally block corresponding
  to the try block of <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#startRegionOperation-org.apache.hadoop.hbase.regionserver.Region.Operation-"><code>Region.startRegionOperation(Operation)</code></a></div>
@@ -7594,7 +7594,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>startBulkRegionOperation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7898">startBulkRegionOperation</a>(boolean&nbsp;writeLockNeeded)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7899">startBulkRegionOperation</a>(boolean&nbsp;writeLockNeeded)
                                throws <a href="../../../../../org/apache/hadoop/hbase/NotServingRegionException.html" title="class in org.apache.hadoop.hbase">NotServingRegionException</a>,
                                       <a href="../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a>,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
@@ -7616,7 +7616,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>closeBulkRegionOperation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7916">closeBulkRegionOperation</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7917">closeBulkRegionOperation</a>()</pre>
 <div class="block">Closes the lock. This needs to be called in the finally block corresponding
  to the try block of #startRegionOperation</div>
 </li>
@@ -7627,7 +7627,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>recordMutationWithoutWal</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7925">recordMutationWithoutWal</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7926">recordMutationWithoutWal</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap)</pre>
 <div class="block">Update LongAdders for number of puts without wal and the size of possible data loss.
  These information are exposed by the region server metrics.</div>
 </li>
@@ -7638,7 +7638,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7945">lock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7946">lock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock)
            throws <a href="../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a>,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
@@ -7654,7 +7654,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7955">lock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7956">lock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock,
                   int&nbsp;multiplier)
            throws <a href="../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a>,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
@@ -7674,7 +7674,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7981">sync</a>(long&nbsp;txid,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7982">sync</a>(long&nbsp;txid,
                   <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Calls sync with the given transaction ID</div>
@@ -7692,7 +7692,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldSyncWAL</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8012">shouldSyncWAL</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8013">shouldSyncWAL</a>()</pre>
 <div class="block">Check whether we should sync the wal from the table's durability settings</div>
 </li>
 </ul>
@@ -7702,7 +7702,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getOpenSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8043">getOpenSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8044">getOpenSeqNum</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getOpenSeqNum--">getOpenSeqNum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -7717,7 +7717,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxStoreSeqId</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8048">getMaxStoreSeqId</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8049">getMaxStoreSeqId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMaxStoreSeqId--">getMaxStoreSeqId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -7733,7 +7733,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldestSeqIdOfStore</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8053">getOldestSeqIdOfStore</a>(byte[]&nbsp;familyName)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8054">getOldestSeqIdOfStore</a>(byte[]&nbsp;familyName)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getOldestSeqIdOfStore-byte:A-">getOldestSeqIdOfStore</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -7750,7 +7750,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8058">getCompactionState</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8059">getCompactionState</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCompactionState--">getCompactionState</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -7765,7 +7765,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reportCompactionRequestStart</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8064">reportCompactionRequestStart</a>(boolean&nbsp;isMajor)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8065">reportCompactionRequestStart</a>(boolean&nbsp;isMajor)</pre>
 </li>
 </ul>
 <a name="reportCompactionRequestEnd-boolean-int-long-">
@@ -7774,7 +7774,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reportCompactionRequestEnd</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8068">reportCompactionRequestEnd</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8069">reportCompactionRequestEnd</a>(boolean&nbsp;isMajor,
                                        int&nbsp;numFiles,
                                        long&nbsp;filesSizeCompacted)</pre>
 </li>
@@ -7785,7 +7785,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reportCompactionRequestFailure</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8079">reportCompactionRequestFailure</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8080">reportCompactionRequestFailure</a>()</pre>
 </li>
 </ul>
 <a name="getReadPoint--">
@@ -7794,7 +7794,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8084">getReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8085">getReadPoint</a>()</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -7803,7 +7803,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8092">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8093">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
 <dl>
@@ -7818,7 +7818,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>registerChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8100">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8101">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to register the children to the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -7834,7 +7834,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>deregisterChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8111">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8112">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to deregister the children from the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -7850,7 +7850,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellComparator</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8118">getCellComparator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8119">getCellComparator</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCellComparator--">Region</a></code></span></div>
 <div class="block">The comparator to be used with the region</div>
 <dl>
@@ -7865,7 +7865,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemstoreFlushSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8123">getMemstoreFlushSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8124">getMemstoreFlushSize</a>()</pre>
 </li>
 </ul>
 <a name="throwException-java.lang.String-java.lang.String-">
@@ -7874,7 +7874,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>throwException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8128">throwException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8129">throwException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</pre>
 </li>
 </ul>


[09/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6

<TRUNCATED>

[03/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-archetypes/hbase-shaded-client-project/integration.html
index dad868f..0a673bf 100644
--- a/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 9d25d10..a695d4c 100644
--- a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-archetypes/hbase-shaded-client-project/license.html
index 6941a0b..5396403 100644
--- a/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index 9645a10..5a0610c 100644
--- a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 825e259..9119384 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 99dd223..4181d5d 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-archetypes/hbase-shaded-client-project/project-info.html
index e0f021e..8c9c19c 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index c760512..f51fc03 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index 54d9e18..cc4682a 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index fdeda48..ba56811 100644
--- a/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-archetypes/hbase-shaded-client-project/team-list.html
index 0cde3eb..9c60c18 100644
--- a/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/index.html b/hbase-archetypes/index.html
index 0f2d1b9..8c6c668 100644
--- a/hbase-archetypes/index.html
+++ b/hbase-archetypes/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/integration.html b/hbase-archetypes/integration.html
index 6ebce84..ec8fe52 100644
--- a/hbase-archetypes/integration.html
+++ b/hbase-archetypes/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/issue-tracking.html b/hbase-archetypes/issue-tracking.html
index 0b49fb0..d5df311 100644
--- a/hbase-archetypes/issue-tracking.html
+++ b/hbase-archetypes/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/license.html b/hbase-archetypes/license.html
index c78421f..2de565f 100644
--- a/hbase-archetypes/license.html
+++ b/hbase-archetypes/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/mail-lists.html b/hbase-archetypes/mail-lists.html
index b5c32a7..085699c 100644
--- a/hbase-archetypes/mail-lists.html
+++ b/hbase-archetypes/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugin-management.html b/hbase-archetypes/plugin-management.html
index 0c6a233..81e42a0 100644
--- a/hbase-archetypes/plugin-management.html
+++ b/hbase-archetypes/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugins.html b/hbase-archetypes/plugins.html
index 944fec9..d4a8128 100644
--- a/hbase-archetypes/plugins.html
+++ b/hbase-archetypes/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-info.html b/hbase-archetypes/project-info.html
index b6fb90b..bac0952 100644
--- a/hbase-archetypes/project-info.html
+++ b/hbase-archetypes/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-summary.html b/hbase-archetypes/project-summary.html
index eb35142..2848885 100644
--- a/hbase-archetypes/project-summary.html
+++ b/hbase-archetypes/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/source-repository.html b/hbase-archetypes/source-repository.html
index 180d128..2676c48 100644
--- a/hbase-archetypes/source-repository.html
+++ b/hbase-archetypes/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/team-list.html b/hbase-archetypes/team-list.html
index f67d3c7..5625157 100644
--- a/hbase-archetypes/team-list.html
+++ b/hbase-archetypes/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-spark/checkstyle.html b/hbase-spark/checkstyle.html
index 8ceda74..641483c 100644
--- a/hbase-spark/checkstyle.html
+++ b/hbase-spark/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index 85f4611..d44fb7f 100644
--- a/hbase-spark/dependencies.html
+++ b/hbase-spark/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>
@@ -5656,7 +5656,7 @@ The following provides more details on the included cryptographic software:
 <th>Sealed</th></tr>
 <tr class="b">
 <td>207</td>
-<td>131.40 MB</td>
+<td>131.41 MB</td>
 <td>76,544</td>
 <td>70,972</td>
 <td>2,237</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-convergence.html b/hbase-spark/dependency-convergence.html
index 7a56b4f..ce4de4a 100644
--- a/hbase-spark/dependency-convergence.html
+++ b/hbase-spark/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-info.html b/hbase-spark/dependency-info.html
index 61114fc..bc64170 100644
--- a/hbase-spark/dependency-info.html
+++ b/hbase-spark/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-management.html b/hbase-spark/dependency-management.html
index f12817f..d366b65 100644
--- a/hbase-spark/dependency-management.html
+++ b/hbase-spark/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/index.html b/hbase-spark/index.html
index f777443..db42f59 100644
--- a/hbase-spark/index.html
+++ b/hbase-spark/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-spark/integration.html b/hbase-spark/integration.html
index 36358c5..99994e3 100644
--- a/hbase-spark/integration.html
+++ b/hbase-spark/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-spark/issue-tracking.html b/hbase-spark/issue-tracking.html
index a0e7b97..0a32e37 100644
--- a/hbase-spark/issue-tracking.html
+++ b/hbase-spark/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-spark/license.html b/hbase-spark/license.html
index 8abdbdc..f472104 100644
--- a/hbase-spark/license.html
+++ b/hbase-spark/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-spark/mail-lists.html b/hbase-spark/mail-lists.html
index fe466a6..b64fe81 100644
--- a/hbase-spark/mail-lists.html
+++ b/hbase-spark/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugin-management.html b/hbase-spark/plugin-management.html
index 77d72e8..01907cc 100644
--- a/hbase-spark/plugin-management.html
+++ b/hbase-spark/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugins.html b/hbase-spark/plugins.html
index e8dd8f1..c5c0ad6 100644
--- a/hbase-spark/plugins.html
+++ b/hbase-spark/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-info.html b/hbase-spark/project-info.html
index 1971506..ff27495 100644
--- a/hbase-spark/project-info.html
+++ b/hbase-spark/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-reports.html b/hbase-spark/project-reports.html
index ebc4128..91d7794 100644
--- a/hbase-spark/project-reports.html
+++ b/hbase-spark/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-summary.html b/hbase-spark/project-summary.html
index d2dd5b1..a91b22d 100644
--- a/hbase-spark/project-summary.html
+++ b/hbase-spark/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-spark/source-repository.html b/hbase-spark/source-repository.html
index 9d2b6d9..13511c2 100644
--- a/hbase-spark/source-repository.html
+++ b/hbase-spark/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-spark/team-list.html b/hbase-spark/team-list.html
index b4bc5f1..e71b4e8 100644
--- a/hbase-spark/team-list.html
+++ b/hbase-spark/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-06 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-04-07 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-04-06</span>
+        <span id="publishDate">Last Published: 2017-04-07</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 8b91a39..73076c2 100644
--- a/index.html
+++ b/index.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase\u2122 Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -446,7 +446,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 4417a90..1e840a1 100644
--- a/integration.html
+++ b/integration.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Continuous Integration</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -308,7 +308,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 37bbd31..8c281ba 100644
--- a/issue-tracking.html
+++ b/issue-tracking.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -305,7 +305,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 6decf7f..4ad698b 100644
--- a/license.html
+++ b/license.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -508,7 +508,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index f7a4711..2d544db 100644
--- a/mail-lists.html
+++ b/mail-lists.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -358,7 +358,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 2df50ad..0e2d800 100644
--- a/metrics.html
+++ b/metrics.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -476,7 +476,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index a2b08a5..1d8a9f4 100644
--- a/old_news.html
+++ b/old_news.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -431,7 +431,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 0cc67b7..3106f08 100644
--- a/plugin-management.html
+++ b/plugin-management.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -453,7 +453,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 1796ce2..d5a956b 100644
--- a/plugins.html
+++ b/plugins.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -388,7 +388,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 4a6f371..96fef56 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase�</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -786,7 +786,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index d70aae8..16170d3 100644
--- a/project-info.html
+++ b/project-info.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -352,7 +352,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index bfdbcd8..1fb95d6 100644
--- a/project-reports.html
+++ b/project-reports.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -322,7 +322,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 08052c1..b006989 100644
--- a/project-summary.html
+++ b/project-summary.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -348,7 +348,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 1fe3308..59b950a 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -325,7 +325,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 85ade55..9a1ee8c 100644
--- a/replication.html
+++ b/replication.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -320,7 +320,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index e02150f..542c73d 100644
--- a/resources.html
+++ b/resources.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -348,7 +348,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index fb65ecb..74d1737 100644
--- a/source-repository.html
+++ b/source-repository.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -316,7 +316,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 1c17105..14ba6f5 100644
--- a/sponsors.html
+++ b/sponsors.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase� Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -350,7 +350,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index d778258..62ced7d 100644
--- a/supportingprojects.html
+++ b/supportingprojects.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -537,7 +537,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: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index f17d3a8..bd65826 100644
--- a/team-list.html
+++ b/team-list.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="20170406" />
+    <meta name="Date-Revision-yyyymmdd" content="20170407" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -811,7 +811,7 @@ window.onLoad = init();
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-06</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-07</li>
             </p>
                 </div>
 


[13/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a pro

<TRUNCATED>

[15/19] hbase-site git commit: Published site at 48b2502a5fcd4d3cd954c3abf6703422da7cdc2f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/794df1af/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
index 690d0b7..2e312a0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
@@ -6974,1186 +6974,1187 @@
 <span class="sourceLineNo">6966</span>  @Override<a name="line.6966"></a>
 <span class="sourceLineNo">6967</span>  public void mutateRowsWithLocks(Collection&lt;Mutation&gt; mutations,<a name="line.6967"></a>
 <span class="sourceLineNo">6968</span>      Collection&lt;byte[]&gt; rowsToLock, long nonceGroup, long nonce) throws IOException {<a name="line.6968"></a>
-<span class="sourceLineNo">6969</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6969"></a>
-<span class="sourceLineNo">6970</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6970"></a>
-<span class="sourceLineNo">6971</span>  }<a name="line.6971"></a>
-<span class="sourceLineNo">6972</span><a name="line.6972"></a>
-<span class="sourceLineNo">6973</span>  /**<a name="line.6973"></a>
-<span class="sourceLineNo">6974</span>   * @return statistics about the current load of the region<a name="line.6974"></a>
-<span class="sourceLineNo">6975</span>   */<a name="line.6975"></a>
-<span class="sourceLineNo">6976</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6976"></a>
-<span class="sourceLineNo">6977</span>    if (!regionStatsEnabled) {<a name="line.6977"></a>
-<span class="sourceLineNo">6978</span>      return null;<a name="line.6978"></a>
-<span class="sourceLineNo">6979</span>    }<a name="line.6979"></a>
-<span class="sourceLineNo">6980</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6980"></a>
-<span class="sourceLineNo">6981</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6981"></a>
-<span class="sourceLineNo">6982</span>        .memstoreFlushSize)));<a name="line.6982"></a>
-<span class="sourceLineNo">6983</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6983"></a>
-<span class="sourceLineNo">6984</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the JVM,<a name="line.6984"></a>
-<span class="sourceLineNo">6985</span>      // so we could just do the calculation below and we'll get a 0.<a name="line.6985"></a>
-<span class="sourceLineNo">6986</span>      // treating it as a special case analogous to no HMM instead so that it can be<a name="line.6986"></a>
-<span class="sourceLineNo">6987</span>      // programatically treated different from using &lt;1% of heap.<a name="line.6987"></a>
-<span class="sourceLineNo">6988</span>      final float occupancy = rsServices.getHeapMemoryManager().getHeapOccupancyPercent();<a name="line.6988"></a>
-<span class="sourceLineNo">6989</span>      if (occupancy != HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE) {<a name="line.6989"></a>
-<span class="sourceLineNo">6990</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.6990"></a>
-<span class="sourceLineNo">6991</span>      }<a name="line.6991"></a>
-<span class="sourceLineNo">6992</span>    }<a name="line.6992"></a>
-<span class="sourceLineNo">6993</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.6993"></a>
-<span class="sourceLineNo">6994</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.6994"></a>
-<span class="sourceLineNo">6995</span>    return stats.build();<a name="line.6995"></a>
-<span class="sourceLineNo">6996</span>  }<a name="line.6996"></a>
-<span class="sourceLineNo">6997</span><a name="line.6997"></a>
-<span class="sourceLineNo">6998</span>  @Override<a name="line.6998"></a>
-<span class="sourceLineNo">6999</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor) throws IOException {<a name="line.6999"></a>
-<span class="sourceLineNo">7000</span>    processRowsWithLocks(processor, rowProcessorTimeout, HConstants.NO_NONCE,<a name="line.7000"></a>
-<span class="sourceLineNo">7001</span>      HConstants.NO_NONCE);<a name="line.7001"></a>
-<span class="sourceLineNo">7002</span>  }<a name="line.7002"></a>
-<span class="sourceLineNo">7003</span><a name="line.7003"></a>
-<span class="sourceLineNo">7004</span>  @Override<a name="line.7004"></a>
-<span class="sourceLineNo">7005</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long nonceGroup, long nonce)<a name="line.7005"></a>
-<span class="sourceLineNo">7006</span>      throws IOException {<a name="line.7006"></a>
-<span class="sourceLineNo">7007</span>    processRowsWithLocks(processor, rowProcessorTimeout, nonceGroup, nonce);<a name="line.7007"></a>
-<span class="sourceLineNo">7008</span>  }<a name="line.7008"></a>
-<span class="sourceLineNo">7009</span><a name="line.7009"></a>
-<span class="sourceLineNo">7010</span>  @Override<a name="line.7010"></a>
-<span class="sourceLineNo">7011</span>  public void processRowsWithLocks(RowProcessor&lt;?,?&gt; processor, long timeout,<a name="line.7011"></a>
-<span class="sourceLineNo">7012</span>      long nonceGroup, long nonce) throws IOException {<a name="line.7012"></a>
-<span class="sourceLineNo">7013</span>    for (byte[] row : processor.getRowsToLock()) {<a name="line.7013"></a>
-<span class="sourceLineNo">7014</span>      checkRow(row, "processRowsWithLocks");<a name="line.7014"></a>
-<span class="sourceLineNo">7015</span>    }<a name="line.7015"></a>
-<span class="sourceLineNo">7016</span>    if (!processor.readOnly()) {<a name="line.7016"></a>
-<span class="sourceLineNo">7017</span>      checkReadOnly();<a name="line.7017"></a>
-<span class="sourceLineNo">7018</span>    }<a name="line.7018"></a>
-<span class="sourceLineNo">7019</span>    checkResources();<a name="line.7019"></a>
-<span class="sourceLineNo">7020</span>    startRegionOperation();<a name="line.7020"></a>
-<span class="sourceLineNo">7021</span>    WALEdit walEdit = new WALEdit();<a name="line.7021"></a>
-<span class="sourceLineNo">7022</span><a name="line.7022"></a>
-<span class="sourceLineNo">7023</span>    // STEP 1. Run pre-process hook<a name="line.7023"></a>
-<span class="sourceLineNo">7024</span>    preProcess(processor, walEdit);<a name="line.7024"></a>
-<span class="sourceLineNo">7025</span>    // Short circuit the read only case<a name="line.7025"></a>
-<span class="sourceLineNo">7026</span>    if (processor.readOnly()) {<a name="line.7026"></a>
-<span class="sourceLineNo">7027</span>      try {<a name="line.7027"></a>
-<span class="sourceLineNo">7028</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7028"></a>
-<span class="sourceLineNo">7029</span>        doProcessRowWithTimeout(processor, now, this, null, null, timeout);<a name="line.7029"></a>
-<span class="sourceLineNo">7030</span>        processor.postProcess(this, walEdit, true);<a name="line.7030"></a>
-<span class="sourceLineNo">7031</span>      } finally {<a name="line.7031"></a>
-<span class="sourceLineNo">7032</span>        closeRegionOperation();<a name="line.7032"></a>
-<span class="sourceLineNo">7033</span>      }<a name="line.7033"></a>
-<span class="sourceLineNo">7034</span>      return;<a name="line.7034"></a>
-<span class="sourceLineNo">7035</span>    }<a name="line.7035"></a>
-<span class="sourceLineNo">7036</span><a name="line.7036"></a>
-<span class="sourceLineNo">7037</span>    boolean locked = false;<a name="line.7037"></a>
-<span class="sourceLineNo">7038</span>    List&lt;RowLock&gt; acquiredRowLocks = null;<a name="line.7038"></a>
-<span class="sourceLineNo">7039</span>    List&lt;Mutation&gt; mutations = new ArrayList&lt;&gt;();<a name="line.7039"></a>
-<span class="sourceLineNo">7040</span>    Collection&lt;byte[]&gt; rowsToLock = processor.getRowsToLock();<a name="line.7040"></a>
-<span class="sourceLineNo">7041</span>    // This is assigned by mvcc either explicity in the below or in the guts of the WAL append<a name="line.7041"></a>
-<span class="sourceLineNo">7042</span>    // when it assigns the edit a sequencedid (A.K.A the mvcc write number).<a name="line.7042"></a>
-<span class="sourceLineNo">7043</span>    WriteEntry writeEntry = null;<a name="line.7043"></a>
-<span class="sourceLineNo">7044</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7044"></a>
-<span class="sourceLineNo">7045</span>    try {<a name="line.7045"></a>
-<span class="sourceLineNo">7046</span>      boolean success = false;<a name="line.7046"></a>
-<span class="sourceLineNo">7047</span>      try {<a name="line.7047"></a>
-<span class="sourceLineNo">7048</span>        // STEP 2. Acquire the row lock(s)<a name="line.7048"></a>
-<span class="sourceLineNo">7049</span>        acquiredRowLocks = new ArrayList&lt;&gt;(rowsToLock.size());<a name="line.7049"></a>
-<span class="sourceLineNo">7050</span>        for (byte[] row : rowsToLock) {<a name="line.7050"></a>
-<span class="sourceLineNo">7051</span>          // Attempt to lock all involved rows, throw if any lock times out<a name="line.7051"></a>
-<span class="sourceLineNo">7052</span>          // use a writer lock for mixed reads and writes<a name="line.7052"></a>
-<span class="sourceLineNo">7053</span>          acquiredRowLocks.add(getRowLockInternal(row, false));<a name="line.7053"></a>
-<span class="sourceLineNo">7054</span>        }<a name="line.7054"></a>
-<span class="sourceLineNo">7055</span>        // STEP 3. Region lock<a name="line.7055"></a>
-<span class="sourceLineNo">7056</span>        lock(this.updatesLock.readLock(), acquiredRowLocks.isEmpty() ? 1 : acquiredRowLocks.size());<a name="line.7056"></a>
-<span class="sourceLineNo">7057</span>        locked = true;<a name="line.7057"></a>
-<span class="sourceLineNo">7058</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.7058"></a>
-<span class="sourceLineNo">7059</span>        // STEP 4. Let the processor scan the rows, generate mutations and add waledits<a name="line.7059"></a>
-<span class="sourceLineNo">7060</span>        doProcessRowWithTimeout(processor, now, this, mutations, walEdit, timeout);<a name="line.7060"></a>
-<span class="sourceLineNo">7061</span>        if (!mutations.isEmpty()) {<a name="line.7061"></a>
-<span class="sourceLineNo">7062</span>          // STEP 5. Call the preBatchMutate hook<a name="line.7062"></a>
-<span class="sourceLineNo">7063</span>          processor.preBatchMutate(this, walEdit);<a name="line.7063"></a>
-<span class="sourceLineNo">7064</span><a name="line.7064"></a>
-<span class="sourceLineNo">7065</span>          // STEP 6. Append and sync if walEdit has data to write out.<a name="line.7065"></a>
-<span class="sourceLineNo">7066</span>          if (!walEdit.isEmpty()) {<a name="line.7066"></a>
-<span class="sourceLineNo">7067</span>            writeEntry = doWALAppend(walEdit, getEffectiveDurability(processor.useDurability()),<a name="line.7067"></a>
-<span class="sourceLineNo">7068</span>                processor.getClusterIds(), now, nonceGroup, nonce);<a name="line.7068"></a>
-<span class="sourceLineNo">7069</span>          } else {<a name="line.7069"></a>
-<span class="sourceLineNo">7070</span>            // We are here if WAL is being skipped.<a name="line.7070"></a>
-<span class="sourceLineNo">7071</span>            writeEntry = this.mvcc.begin();<a name="line.7071"></a>
-<span class="sourceLineNo">7072</span>          }<a name="line.7072"></a>
-<span class="sourceLineNo">7073</span><a name="line.7073"></a>
-<span class="sourceLineNo">7074</span>          // STEP 7. Apply to memstore<a name="line.7074"></a>
-<span class="sourceLineNo">7075</span>          long sequenceId = writeEntry.getWriteNumber();<a name="line.7075"></a>
-<span class="sourceLineNo">7076</span>          for (Mutation m : mutations) {<a name="line.7076"></a>
-<span class="sourceLineNo">7077</span>            // Handle any tag based cell features.<a name="line.7077"></a>
-<span class="sourceLineNo">7078</span>            // TODO: Do we need to call rewriteCellTags down in applyToMemstore()? Why not before<a name="line.7078"></a>
-<span class="sourceLineNo">7079</span>            // so tags go into WAL?<a name="line.7079"></a>
-<span class="sourceLineNo">7080</span>            rewriteCellTags(m.getFamilyCellMap(), m);<a name="line.7080"></a>
-<span class="sourceLineNo">7081</span>            for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.7081"></a>
-<span class="sourceLineNo">7082</span>              Cell cell = cellScanner.current();<a name="line.7082"></a>
-<span class="sourceLineNo">7083</span>              if (walEdit.isEmpty()) {<a name="line.7083"></a>
-<span class="sourceLineNo">7084</span>                // If walEdit is empty, we put nothing in WAL. WAL stamps Cells with sequence id.<a name="line.7084"></a>
-<span class="sourceLineNo">7085</span>                // If no WAL, need to stamp it here.<a name="line.7085"></a>
-<span class="sourceLineNo">7086</span>                CellUtil.setSequenceId(cell, sequenceId);<a name="line.7086"></a>
-<span class="sourceLineNo">7087</span>              }<a name="line.7087"></a>
-<span class="sourceLineNo">7088</span>              applyToMemstore(getHStore(cell), cell, memstoreSize);<a name="line.7088"></a>
-<span class="sourceLineNo">7089</span>            }<a name="line.7089"></a>
-<span class="sourceLineNo">7090</span>          }<a name="line.7090"></a>
-<span class="sourceLineNo">7091</span><a name="line.7091"></a>
-<span class="sourceLineNo">7092</span>          // STEP 8. call postBatchMutate hook<a name="line.7092"></a>
-<span class="sourceLineNo">7093</span>          processor.postBatchMutate(this);<a name="line.7093"></a>
-<span class="sourceLineNo">7094</span><a name="line.7094"></a>
-<span class="sourceLineNo">7095</span>          // STEP 9. Complete mvcc.<a name="line.7095"></a>
-<span class="sourceLineNo">7096</span>          mvcc.completeAndWait(writeEntry);<a name="line.7096"></a>
-<span class="sourceLineNo">7097</span>          writeEntry = null;<a name="line.7097"></a>
-<span class="sourceLineNo">7098</span><a name="line.7098"></a>
-<span class="sourceLineNo">7099</span>          // STEP 10. Release region lock<a name="line.7099"></a>
-<span class="sourceLineNo">7100</span>          if (locked) {<a name="line.7100"></a>
-<span class="sourceLineNo">7101</span>            this.updatesLock.readLock().unlock();<a name="line.7101"></a>
-<span class="sourceLineNo">7102</span>            locked = false;<a name="line.7102"></a>
-<span class="sourceLineNo">7103</span>          }<a name="line.7103"></a>
-<span class="sourceLineNo">7104</span><a name="line.7104"></a>
-<span class="sourceLineNo">7105</span>          // STEP 11. Release row lock(s)<a name="line.7105"></a>
-<span class="sourceLineNo">7106</span>          releaseRowLocks(acquiredRowLocks);<a name="line.7106"></a>
-<span class="sourceLineNo">7107</span>        }<a name="line.7107"></a>
-<span class="sourceLineNo">7108</span>        success = true;<a name="line.7108"></a>
-<span class="sourceLineNo">7109</span>      } finally {<a name="line.7109"></a>
-<span class="sourceLineNo">7110</span>        // Call complete rather than completeAndWait because we probably had error if walKey != null<a name="line.7110"></a>
-<span class="sourceLineNo">7111</span>        if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7111"></a>
-<span class="sourceLineNo">7112</span>        if (locked) {<a name="line.7112"></a>
-<span class="sourceLineNo">7113</span>          this.updatesLock.readLock().unlock();<a name="line.7113"></a>
-<span class="sourceLineNo">7114</span>        }<a name="line.7114"></a>
-<span class="sourceLineNo">7115</span>        // release locks if some were acquired but another timed out<a name="line.7115"></a>
-<span class="sourceLineNo">7116</span>        releaseRowLocks(acquiredRowLocks);<a name="line.7116"></a>
-<span class="sourceLineNo">7117</span>      }<a name="line.7117"></a>
-<span class="sourceLineNo">7118</span><a name="line.7118"></a>
-<span class="sourceLineNo">7119</span>      // 12. Run post-process hook<a name="line.7119"></a>
-<span class="sourceLineNo">7120</span>      processor.postProcess(this, walEdit, success);<a name="line.7120"></a>
-<span class="sourceLineNo">7121</span>    } finally {<a name="line.7121"></a>
-<span class="sourceLineNo">7122</span>      closeRegionOperation();<a name="line.7122"></a>
-<span class="sourceLineNo">7123</span>      if (!mutations.isEmpty()) {<a name="line.7123"></a>
-<span class="sourceLineNo">7124</span>        long newSize = this.addAndGetMemstoreSize(memstoreSize);<a name="line.7124"></a>
-<span class="sourceLineNo">7125</span>        requestFlushIfNeeded(newSize);<a name="line.7125"></a>
-<span class="sourceLineNo">7126</span>      }<a name="line.7126"></a>
-<span class="sourceLineNo">7127</span>    }<a name="line.7127"></a>
-<span class="sourceLineNo">7128</span>  }<a name="line.7128"></a>
-<span class="sourceLineNo">7129</span><a name="line.7129"></a>
-<span class="sourceLineNo">7130</span>  private void preProcess(final RowProcessor&lt;?,?&gt; processor, final WALEdit walEdit)<a name="line.7130"></a>
-<span class="sourceLineNo">7131</span>  throws IOException {<a name="line.7131"></a>
-<span class="sourceLineNo">7132</span>    try {<a name="line.7132"></a>
-<span class="sourceLineNo">7133</span>      processor.preProcess(this, walEdit);<a name="line.7133"></a>
-<span class="sourceLineNo">7134</span>    } catch (IOException e) {<a name="line.7134"></a>
-<span class="sourceLineNo">7135</span>      closeRegionOperation();<a name="line.7135"></a>
-<span class="sourceLineNo">7136</span>      throw e;<a name="line.7136"></a>
-<span class="sourceLineNo">7137</span>    }<a name="line.7137"></a>
-<span class="sourceLineNo">7138</span>  }<a name="line.7138"></a>
-<span class="sourceLineNo">7139</span><a name="line.7139"></a>
-<span class="sourceLineNo">7140</span>  private void doProcessRowWithTimeout(final RowProcessor&lt;?,?&gt; processor,<a name="line.7140"></a>
-<span class="sourceLineNo">7141</span>                                       final long now,<a name="line.7141"></a>
-<span class="sourceLineNo">7142</span>                                       final HRegion region,<a name="line.7142"></a>
-<span class="sourceLineNo">7143</span>                                       final List&lt;Mutation&gt; mutations,<a name="line.7143"></a>
-<span class="sourceLineNo">7144</span>                                       final WALEdit walEdit,<a name="line.7144"></a>
-<span class="sourceLineNo">7145</span>                                       final long timeout) throws IOException {<a name="line.7145"></a>
-<span class="sourceLineNo">7146</span>    // Short circuit the no time bound case.<a name="line.7146"></a>
-<span class="sourceLineNo">7147</span>    if (timeout &lt; 0) {<a name="line.7147"></a>
-<span class="sourceLineNo">7148</span>      try {<a name="line.7148"></a>
-<span class="sourceLineNo">7149</span>        processor.process(now, region, mutations, walEdit);<a name="line.7149"></a>
-<span class="sourceLineNo">7150</span>      } catch (IOException e) {<a name="line.7150"></a>
-<span class="sourceLineNo">7151</span>        LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7151"></a>
-<span class="sourceLineNo">7152</span>            " throws Exception on row(s):" +<a name="line.7152"></a>
-<span class="sourceLineNo">7153</span>            Bytes.toStringBinary(<a name="line.7153"></a>
-<span class="sourceLineNo">7154</span>              processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7154"></a>
-<span class="sourceLineNo">7155</span>        throw e;<a name="line.7155"></a>
-<span class="sourceLineNo">7156</span>      }<a name="line.7156"></a>
-<span class="sourceLineNo">7157</span>      return;<a name="line.7157"></a>
-<span class="sourceLineNo">7158</span>    }<a name="line.7158"></a>
-<span class="sourceLineNo">7159</span><a name="line.7159"></a>
-<span class="sourceLineNo">7160</span>    // Case with time bound<a name="line.7160"></a>
-<span class="sourceLineNo">7161</span>    FutureTask&lt;Void&gt; task = new FutureTask&lt;&gt;(new Callable&lt;Void&gt;() {<a name="line.7161"></a>
-<span class="sourceLineNo">7162</span>        @Override<a name="line.7162"></a>
-<span class="sourceLineNo">7163</span>        public Void call() throws IOException {<a name="line.7163"></a>
-<span class="sourceLineNo">7164</span>          try {<a name="line.7164"></a>
-<span class="sourceLineNo">7165</span>            processor.process(now, region, mutations, walEdit);<a name="line.7165"></a>
-<span class="sourceLineNo">7166</span>            return null;<a name="line.7166"></a>
-<span class="sourceLineNo">7167</span>          } catch (IOException e) {<a name="line.7167"></a>
-<span class="sourceLineNo">7168</span>            LOG.warn("RowProcessor:" + processor.getClass().getName() +<a name="line.7168"></a>
-<span class="sourceLineNo">7169</span>                " throws Exception on row(s):" +<a name="line.7169"></a>
-<span class="sourceLineNo">7170</span>                Bytes.toStringBinary(<a name="line.7170"></a>
-<span class="sourceLineNo">7171</span>                    processor.getRowsToLock().iterator().next()) + "...", e);<a name="line.7171"></a>
-<span class="sourceLineNo">7172</span>            throw e;<a name="line.7172"></a>
-<span class="sourceLineNo">7173</span>          }<a name="line.7173"></a>
-<span class="sourceLineNo">7174</span>        }<a name="line.7174"></a>
-<span class="sourceLineNo">7175</span>      });<a name="line.7175"></a>
-<span class="sourceLineNo">7176</span>    rowProcessorExecutor.execute(task);<a name="line.7176"></a>
-<span class="sourceLineNo">7177</span>    try {<a name="line.7177"></a>
-<span class="sourceLineNo">7178</span>      task.get(timeout, TimeUnit.MILLISECONDS);<a name="line.7178"></a>
-<span class="sourceLineNo">7179</span>    } catch (TimeoutException te) {<a name="line.7179"></a>
-<span class="sourceLineNo">7180</span>      LOG.error("RowProcessor timeout:" + timeout + " ms on row(s):" +<a name="line.7180"></a>
-<span class="sourceLineNo">7181</span>          Bytes.toStringBinary(processor.getRowsToLock().iterator().next()) +<a name="line.7181"></a>
-<span class="sourceLineNo">7182</span>          "...");<a name="line.7182"></a>
-<span class="sourceLineNo">7183</span>      throw new IOException(te);<a name="line.7183"></a>
-<span class="sourceLineNo">7184</span>    } catch (Exception e) {<a name="line.7184"></a>
-<span class="sourceLineNo">7185</span>      throw new IOException(e);<a name="line.7185"></a>
-<span class="sourceLineNo">7186</span>    }<a name="line.7186"></a>
-<span class="sourceLineNo">7187</span>  }<a name="line.7187"></a>
-<span class="sourceLineNo">7188</span><a name="line.7188"></a>
-<span class="sourceLineNo">7189</span>  public Result append(Append append) throws IOException {<a name="line.7189"></a>
-<span class="sourceLineNo">7190</span>    return append(append, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7190"></a>
-<span class="sourceLineNo">7191</span>  }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span><a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>  @Override<a name="line.7193"></a>
-<span class="sourceLineNo">7194</span>  public Result append(Append mutation, long nonceGroup, long nonce) throws IOException {<a name="line.7194"></a>
-<span class="sourceLineNo">7195</span>    return doDelta(Operation.APPEND, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7195"></a>
-<span class="sourceLineNo">7196</span>  }<a name="line.7196"></a>
-<span class="sourceLineNo">7197</span><a name="line.7197"></a>
-<span class="sourceLineNo">7198</span>  public Result increment(Increment increment) throws IOException {<a name="line.7198"></a>
-<span class="sourceLineNo">7199</span>    return increment(increment, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.7199"></a>
-<span class="sourceLineNo">7200</span>  }<a name="line.7200"></a>
-<span class="sourceLineNo">7201</span><a name="line.7201"></a>
-<span class="sourceLineNo">7202</span>  @Override<a name="line.7202"></a>
-<span class="sourceLineNo">7203</span>  public Result increment(Increment mutation, long nonceGroup, long nonce)<a name="line.7203"></a>
-<span class="sourceLineNo">7204</span>  throws IOException {<a name="line.7204"></a>
-<span class="sourceLineNo">7205</span>    return doDelta(Operation.INCREMENT, mutation, nonceGroup, nonce, mutation.isReturnResults());<a name="line.7205"></a>
-<span class="sourceLineNo">7206</span>  }<a name="line.7206"></a>
-<span class="sourceLineNo">7207</span><a name="line.7207"></a>
-<span class="sourceLineNo">7208</span>  /**<a name="line.7208"></a>
-<span class="sourceLineNo">7209</span>   * Add "deltas" to Cells. Deltas are increments or appends. Switch on &lt;code&gt;op&lt;/code&gt;.<a name="line.7209"></a>
-<span class="sourceLineNo">7210</span>   *<a name="line.7210"></a>
-<span class="sourceLineNo">7211</span>   * &lt;p&gt;If increment, add deltas to current values or if an append, then<a name="line.7211"></a>
-<span class="sourceLineNo">7212</span>   * append the deltas to the current Cell values.<a name="line.7212"></a>
-<span class="sourceLineNo">7213</span>   *<a name="line.7213"></a>
-<span class="sourceLineNo">7214</span>   * &lt;p&gt;Append and Increment code paths are mostly the same. They differ in just a few places.<a name="line.7214"></a>
-<span class="sourceLineNo">7215</span>   * This method does the code path for increment and append and then in key spots, switches<a name="line.7215"></a>
-<span class="sourceLineNo">7216</span>   * on the passed in &lt;code&gt;op&lt;/code&gt; to do increment or append specific paths.<a name="line.7216"></a>
-<span class="sourceLineNo">7217</span>   */<a name="line.7217"></a>
-<span class="sourceLineNo">7218</span>  private Result doDelta(Operation op, Mutation mutation, long nonceGroup, long nonce,<a name="line.7218"></a>
-<span class="sourceLineNo">7219</span>      boolean returnResults) throws IOException {<a name="line.7219"></a>
-<span class="sourceLineNo">7220</span>    checkReadOnly();<a name="line.7220"></a>
-<span class="sourceLineNo">7221</span>    checkResources();<a name="line.7221"></a>
-<span class="sourceLineNo">7222</span>    checkRow(mutation.getRow(), op.toString());<a name="line.7222"></a>
-<span class="sourceLineNo">7223</span>    checkFamilies(mutation.getFamilyCellMap().keySet());<a name="line.7223"></a>
-<span class="sourceLineNo">7224</span>    this.writeRequestsCount.increment();<a name="line.7224"></a>
-<span class="sourceLineNo">7225</span>    WriteEntry writeEntry = null;<a name="line.7225"></a>
-<span class="sourceLineNo">7226</span>    startRegionOperation(op);<a name="line.7226"></a>
-<span class="sourceLineNo">7227</span>    List&lt;Cell&gt; results = returnResults? new ArrayList&lt;&gt;(mutation.size()): null;<a name="line.7227"></a>
-<span class="sourceLineNo">7228</span>    RowLock rowLock = null;<a name="line.7228"></a>
-<span class="sourceLineNo">7229</span>    MemstoreSize memstoreSize = new MemstoreSize();<a name="line.7229"></a>
-<span class="sourceLineNo">7230</span>    try {<a name="line.7230"></a>
-<span class="sourceLineNo">7231</span>      rowLock = getRowLockInternal(mutation.getRow(), false);<a name="line.7231"></a>
-<span class="sourceLineNo">7232</span>      lock(this.updatesLock.readLock());<a name="line.7232"></a>
-<span class="sourceLineNo">7233</span>      try {<a name="line.7233"></a>
-<span class="sourceLineNo">7234</span>        Result cpResult = doCoprocessorPreCall(op, mutation);<a name="line.7234"></a>
-<span class="sourceLineNo">7235</span>        if (cpResult != null) {<a name="line.7235"></a>
-<span class="sourceLineNo">7236</span>          return returnResults? cpResult: null;<a name="line.7236"></a>
-<span class="sourceLineNo">7237</span>        }<a name="line.7237"></a>
-<span class="sourceLineNo">7238</span>        Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());<a name="line.7238"></a>
-<span class="sourceLineNo">7239</span>        Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore = new HashMap&lt;&gt;(mutation.getFamilyCellMap().size());<a name="line.7239"></a>
-<span class="sourceLineNo">7240</span>        // Reckon Cells to apply to WAL --  in returned walEdit -- and what to add to memstore and<a name="line.7240"></a>
-<span class="sourceLineNo">7241</span>        // what to return back to the client (in 'forMemStore' and 'results' respectively).<a name="line.7241"></a>
-<span class="sourceLineNo">7242</span>        WALEdit walEdit = reckonDeltas(op, mutation, effectiveDurability, forMemStore, results);<a name="line.7242"></a>
-<span class="sourceLineNo">7243</span>        // Actually write to WAL now if a walEdit to apply.<a name="line.7243"></a>
-<span class="sourceLineNo">7244</span>        if (walEdit != null &amp;&amp; !walEdit.isEmpty()) {<a name="line.7244"></a>
-<span class="sourceLineNo">7245</span>          writeEntry = doWALAppend(walEdit, effectiveDurability, nonceGroup, nonce);<a name="line.7245"></a>
-<span class="sourceLineNo">7246</span>        } else {<a name="line.7246"></a>
-<span class="sourceLineNo">7247</span>          // If walEdits is empty, it means we skipped the WAL; update LongAdders and start an mvcc<a name="line.7247"></a>
-<span class="sourceLineNo">7248</span>          // transaction.<a name="line.7248"></a>
-<span class="sourceLineNo">7249</span>          recordMutationWithoutWal(mutation.getFamilyCellMap());<a name="line.7249"></a>
-<span class="sourceLineNo">7250</span>          writeEntry = mvcc.begin();<a name="line.7250"></a>
-<span class="sourceLineNo">7251</span>          updateSequenceId(forMemStore.values(), writeEntry.getWriteNumber());<a name="line.7251"></a>
-<span class="sourceLineNo">7252</span>        }<a name="line.7252"></a>
-<span class="sourceLineNo">7253</span>        // Now write to MemStore. Do it a column family at a time.<a name="line.7253"></a>
-<span class="sourceLineNo">7254</span>        for (Map.Entry&lt;Store, List&lt;Cell&gt;&gt; e : forMemStore.entrySet()) {<a name="line.7254"></a>
-<span class="sourceLineNo">7255</span>          applyToMemstore(e.getKey(), e.getValue(), true, memstoreSize);<a name="line.7255"></a>
-<span class="sourceLineNo">7256</span>        }<a name="line.7256"></a>
-<span class="sourceLineNo">7257</span>        mvcc.completeAndWait(writeEntry);<a name="line.7257"></a>
-<span class="sourceLineNo">7258</span>        if (rsServices != null &amp;&amp; rsServices.getNonceManager() != null) {<a name="line.7258"></a>
-<span class="sourceLineNo">7259</span>          rsServices.getNonceManager().addMvccToOperationContext(nonceGroup, nonce,<a name="line.7259"></a>
-<span class="sourceLineNo">7260</span>            writeEntry.getWriteNumber());<a name="line.7260"></a>
-<span class="sourceLineNo">7261</span>        }<a name="line.7261"></a>
-<span class="sourceLineNo">7262</span>        writeEntry = null;<a name="line.7262"></a>
-<span class="sourceLineNo">7263</span>      } finally {<a name="line.7263"></a>
-<span class="sourceLineNo">7264</span>        this.updatesLock.readLock().unlock();<a name="line.7264"></a>
-<span class="sourceLineNo">7265</span>      }<a name="line.7265"></a>
-<span class="sourceLineNo">7266</span>      // If results is null, then client asked that we not return the calculated results.<a name="line.7266"></a>
-<span class="sourceLineNo">7267</span>      return results != null &amp;&amp; returnResults? Result.create(results): Result.EMPTY_RESULT;<a name="line.7267"></a>
-<span class="sourceLineNo">7268</span>    } finally {<a name="line.7268"></a>
-<span class="sourceLineNo">7269</span>      // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes<a name="line.7269"></a>
-<span class="sourceLineNo">7270</span>      // to get current value under an exclusive lock so no need so no need to wait to return to<a name="line.7270"></a>
-<span class="sourceLineNo">7271</span>      // the client. Means only way to read-your-own-increment or append is to come in with an<a name="line.7271"></a>
-<span class="sourceLineNo">7272</span>      // a 0 increment.<a name="line.7272"></a>
-<span class="sourceLineNo">7273</span>      if (writeEntry != null) mvcc.complete(writeEntry);<a name="line.7273"></a>
-<span class="sourceLineNo">7274</span>      if (rowLock != null) {<a name="line.7274"></a>
-<span class="sourceLineNo">7275</span>        rowLock.release();<a name="line.7275"></a>
-<span class="sourceLineNo">7276</span>      }<a name="line.7276"></a>
-<span class="sourceLineNo">7277</span>      // Request a cache flush if over the limit.  Do it outside update lock.<a name="line.7277"></a>
-<span class="sourceLineNo">7278</span>      if (isFlushSize(addAndGetMemstoreSize(memstoreSize))) {<a name="line.7278"></a>
-<span class="sourceLineNo">7279</span>        requestFlush();<a name="line.7279"></a>
-<span class="sourceLineNo">7280</span>      }<a name="line.7280"></a>
-<span class="sourceLineNo">7281</span>      closeRegionOperation(op);<a name="line.7281"></a>
-<span class="sourceLineNo">7282</span>      if (this.metricsRegion != null) {<a name="line.7282"></a>
-<span class="sourceLineNo">7283</span>        switch (op) {<a name="line.7283"></a>
-<span class="sourceLineNo">7284</span>          case INCREMENT:<a name="line.7284"></a>
-<span class="sourceLineNo">7285</span>            this.metricsRegion.updateIncrement();<a name="line.7285"></a>
-<span class="sourceLineNo">7286</span>            break;<a name="line.7286"></a>
-<span class="sourceLineNo">7287</span>          case APPEND:<a name="line.7287"></a>
-<span class="sourceLineNo">7288</span>            this.metricsRegion.updateAppend();<a name="line.7288"></a>
-<span class="sourceLineNo">7289</span>            break;<a name="line.7289"></a>
-<span class="sourceLineNo">7290</span>          default:<a name="line.7290"></a>
-<span class="sourceLineNo">7291</span>            break;<a name="line.7291"></a>
-<span class="sourceLineNo">7292</span>        }<a name="line.7292"></a>
-<span class="sourceLineNo">7293</span>      }<a name="line.7293"></a>
-<span class="sourceLineNo">7294</span>    }<a name="line.7294"></a>
-<span class="sourceLineNo">7295</span>  }<a name="line.7295"></a>
-<span class="sourceLineNo">7296</span><a name="line.7296"></a>
-<span class="sourceLineNo">7297</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, long nonceGroup,<a name="line.7297"></a>
-<span class="sourceLineNo">7298</span>      long nonce)<a name="line.7298"></a>
-<span class="sourceLineNo">7299</span>  throws IOException {<a name="line.7299"></a>
-<span class="sourceLineNo">7300</span>    return doWALAppend(walEdit, durability, WALKey.EMPTY_UUIDS, System.currentTimeMillis(),<a name="line.7300"></a>
-<span class="sourceLineNo">7301</span>      nonceGroup, nonce);<a name="line.7301"></a>
-<span class="sourceLineNo">7302</span>  }<a name="line.7302"></a>
-<span class="sourceLineNo">7303</span><a name="line.7303"></a>
-<span class="sourceLineNo">7304</span>  /**<a name="line.7304"></a>
-<span class="sourceLineNo">7305</span>   * @return writeEntry associated with this append<a name="line.7305"></a>
-<span class="sourceLineNo">7306</span>   */<a name="line.7306"></a>
-<span class="sourceLineNo">7307</span>  private WriteEntry doWALAppend(WALEdit walEdit, Durability durability, List&lt;UUID&gt; clusterIds,<a name="line.7307"></a>
-<span class="sourceLineNo">7308</span>      long now, long nonceGroup, long nonce)<a name="line.7308"></a>
-<span class="sourceLineNo">7309</span>  throws IOException {<a name="line.7309"></a>
-<span class="sourceLineNo">7310</span>    WriteEntry writeEntry = null;<a name="line.7310"></a>
-<span class="sourceLineNo">7311</span>    // Using default cluster id, as this can only happen in the originating cluster.<a name="line.7311"></a>
-<span class="sourceLineNo">7312</span>    // A slave cluster receives the final value (not the delta) as a Put. We use HLogKey<a name="line.7312"></a>
-<span class="sourceLineNo">7313</span>    // here instead of WALKey directly to support legacy coprocessors.<a name="line.7313"></a>
-<span class="sourceLineNo">7314</span>    WALKey walKey = new WALKey(this.getRegionInfo().getEncodedNameAsBytes(),<a name="line.7314"></a>
-<span class="sourceLineNo">7315</span>      this.htableDescriptor.getTableName(), WALKey.NO_SEQUENCE_ID, now, clusterIds,<a name="line.7315"></a>
-<span class="sourceLineNo">7316</span>      nonceGroup, nonce, mvcc, this.getReplicationScope());<a name="line.7316"></a>
-<span class="sourceLineNo">7317</span>    try {<a name="line.7317"></a>
-<span class="sourceLineNo">7318</span>      long txid =<a name="line.7318"></a>
-<span class="sourceLineNo">7319</span>        this.wal.append(this.getRegionInfo(), walKey, walEdit, true);<a name="line.7319"></a>
-<span class="sourceLineNo">7320</span>      // Call sync on our edit.<a name="line.7320"></a>
-<span class="sourceLineNo">7321</span>      if (txid != 0) sync(txid, durability);<a name="line.7321"></a>
-<span class="sourceLineNo">7322</span>      writeEntry = walKey.getWriteEntry();<a name="line.7322"></a>
-<span class="sourceLineNo">7323</span>    } catch (IOException ioe) {<a name="line.7323"></a>
-<span class="sourceLineNo">7324</span>      if (walKey != null) mvcc.complete(walKey.getWriteEntry());<a name="line.7324"></a>
-<span class="sourceLineNo">7325</span>      throw ioe;<a name="line.7325"></a>
-<span class="sourceLineNo">7326</span>    }<a name="line.7326"></a>
-<span class="sourceLineNo">7327</span>    return writeEntry;<a name="line.7327"></a>
-<span class="sourceLineNo">7328</span>  }<a name="line.7328"></a>
-<span class="sourceLineNo">7329</span><a name="line.7329"></a>
-<span class="sourceLineNo">7330</span>  /**<a name="line.7330"></a>
-<span class="sourceLineNo">7331</span>   * Do coprocessor pre-increment or pre-append call.<a name="line.7331"></a>
-<span class="sourceLineNo">7332</span>   * @return Result returned out of the coprocessor, which means bypass all further processing and<a name="line.7332"></a>
-<span class="sourceLineNo">7333</span>   *  return the proffered Result instead, or null which means proceed.<a name="line.7333"></a>
-<span class="sourceLineNo">7334</span>   */<a name="line.7334"></a>
-<span class="sourceLineNo">7335</span>  private Result doCoprocessorPreCall(final Operation op, final Mutation mutation)<a name="line.7335"></a>
-<span class="sourceLineNo">7336</span>  throws IOException {<a name="line.7336"></a>
-<span class="sourceLineNo">7337</span>    Result result = null;<a name="line.7337"></a>
-<span class="sourceLineNo">7338</span>    if (this.coprocessorHost != null) {<a name="line.7338"></a>
-<span class="sourceLineNo">7339</span>      switch(op) {<a name="line.7339"></a>
-<span class="sourceLineNo">7340</span>        case INCREMENT:<a name="line.7340"></a>
-<span class="sourceLineNo">7341</span>          result = this.coprocessorHost.preIncrementAfterRowLock((Increment)mutation);<a name="line.7341"></a>
-<span class="sourceLineNo">7342</span>          break;<a name="line.7342"></a>
-<span class="sourceLineNo">7343</span>        case APPEND:<a name="line.7343"></a>
-<span class="sourceLineNo">7344</span>          result = this.coprocessorHost.preAppendAfterRowLock((Append)mutation);<a name="line.7344"></a>
-<span class="sourceLineNo">7345</span>          break;<a name="line.7345"></a>
-<span class="sourceLineNo">7346</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7346"></a>
-<span class="sourceLineNo">7347</span>      }<a name="line.7347"></a>
-<span class="sourceLineNo">7348</span>    }<a name="line.7348"></a>
-<span class="sourceLineNo">7349</span>    return result;<a name="line.7349"></a>
-<span class="sourceLineNo">7350</span>  }<a name="line.7350"></a>
-<span class="sourceLineNo">7351</span><a name="line.7351"></a>
-<span class="sourceLineNo">7352</span>  /**<a name="line.7352"></a>
-<span class="sourceLineNo">7353</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client; these Sets are not<a name="line.7353"></a>
-<span class="sourceLineNo">7354</span>   * always the same dependent on whether to write WAL or if the amount to increment is zero (in<a name="line.7354"></a>
-<span class="sourceLineNo">7355</span>   * this case we write back nothing, just return latest Cell value to the client).<a name="line.7355"></a>
-<span class="sourceLineNo">7356</span>   *<a name="line.7356"></a>
-<span class="sourceLineNo">7357</span>   * @param results Fill in here what goes back to the Client if it is non-null (if null, client<a name="line.7357"></a>
-<span class="sourceLineNo">7358</span>   *  doesn't want results).<a name="line.7358"></a>
-<span class="sourceLineNo">7359</span>   * @param forMemStore Fill in here what to apply to the MemStore (by Store).<a name="line.7359"></a>
-<span class="sourceLineNo">7360</span>   * @return A WALEdit to apply to WAL or null if we are to skip the WAL.<a name="line.7360"></a>
-<span class="sourceLineNo">7361</span>   */<a name="line.7361"></a>
-<span class="sourceLineNo">7362</span>  private WALEdit reckonDeltas(final Operation op, final Mutation mutation,<a name="line.7362"></a>
-<span class="sourceLineNo">7363</span>      final Durability effectiveDurability, final Map&lt;Store, List&lt;Cell&gt;&gt; forMemStore,<a name="line.7363"></a>
-<span class="sourceLineNo">7364</span>      final List&lt;Cell&gt; results)<a name="line.7364"></a>
-<span class="sourceLineNo">7365</span>  throws IOException {<a name="line.7365"></a>
-<span class="sourceLineNo">7366</span>    WALEdit walEdit = null;<a name="line.7366"></a>
-<span class="sourceLineNo">7367</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.7367"></a>
-<span class="sourceLineNo">7368</span>    final boolean writeToWAL = effectiveDurability != Durability.SKIP_WAL;<a name="line.7368"></a>
-<span class="sourceLineNo">7369</span>    // Process a Store/family at a time.<a name="line.7369"></a>
-<span class="sourceLineNo">7370</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry: mutation.getFamilyCellMap().entrySet()) {<a name="line.7370"></a>
-<span class="sourceLineNo">7371</span>      final byte [] columnFamilyName = entry.getKey();<a name="line.7371"></a>
-<span class="sourceLineNo">7372</span>      List&lt;Cell&gt; deltas = entry.getValue();<a name="line.7372"></a>
-<span class="sourceLineNo">7373</span>      Store store = this.stores.get(columnFamilyName);<a name="line.7373"></a>
-<span class="sourceLineNo">7374</span>      // Reckon for the Store what to apply to WAL and MemStore.<a name="line.7374"></a>
-<span class="sourceLineNo">7375</span>      List&lt;Cell&gt; toApply =<a name="line.7375"></a>
-<span class="sourceLineNo">7376</span>        reckonDeltasByStore(store, op, mutation, effectiveDurability, now, deltas, results);<a name="line.7376"></a>
-<span class="sourceLineNo">7377</span>      if (!toApply.isEmpty()) {<a name="line.7377"></a>
-<span class="sourceLineNo">7378</span>        forMemStore.put(store, toApply);<a name="line.7378"></a>
-<span class="sourceLineNo">7379</span>        if (writeToWAL) {<a name="line.7379"></a>
-<span class="sourceLineNo">7380</span>          if (walEdit == null) {<a name="line.7380"></a>
-<span class="sourceLineNo">7381</span>            walEdit = new WALEdit();<a name="line.7381"></a>
-<span class="sourceLineNo">7382</span>          }<a name="line.7382"></a>
-<span class="sourceLineNo">7383</span>          walEdit.getCells().addAll(toApply);<a name="line.7383"></a>
-<span class="sourceLineNo">7384</span>        }<a name="line.7384"></a>
-<span class="sourceLineNo">7385</span>      }<a name="line.7385"></a>
-<span class="sourceLineNo">7386</span>    }<a name="line.7386"></a>
-<span class="sourceLineNo">7387</span>    return walEdit;<a name="line.7387"></a>
-<span class="sourceLineNo">7388</span>  }<a name="line.7388"></a>
-<span class="sourceLineNo">7389</span><a name="line.7389"></a>
-<span class="sourceLineNo">7390</span>  /**<a name="line.7390"></a>
-<span class="sourceLineNo">7391</span>   * Reckon the Cells to apply to WAL, memstore, and to return to the Client in passed<a name="line.7391"></a>
-<span class="sourceLineNo">7392</span>   * column family/Store.<a name="line.7392"></a>
-<span class="sourceLineNo">7393</span>   *<a name="line.7393"></a>
-<span class="sourceLineNo">7394</span>   * Does Get of current value and then adds passed in deltas for this Store returning the result.<a name="line.7394"></a>
-<span class="sourceLineNo">7395</span>   *<a name="line.7395"></a>
-<span class="sourceLineNo">7396</span>   * @param op Whether Increment or Append<a name="line.7396"></a>
-<span class="sourceLineNo">7397</span>   * @param mutation The encompassing Mutation object<a name="line.7397"></a>
-<span class="sourceLineNo">7398</span>   * @param deltas Changes to apply to this Store; either increment amount or data to append<a name="line.7398"></a>
-<span class="sourceLineNo">7399</span>   * @param results In here we accumulate all the Cells we are to return to the client; this List<a name="line.7399"></a>
-<span class="sourceLineNo">7400</span>   *  can be larger than what we return in case where delta is zero; i.e. don't write<a name="line.7400"></a>
-<span class="sourceLineNo">7401</span>   *  out new values, just return current value. If null, client doesn't want results returned.<a name="line.7401"></a>
-<span class="sourceLineNo">7402</span>   * @return Resulting Cells after &lt;code&gt;deltas&lt;/code&gt; have been applied to current<a name="line.7402"></a>
-<span class="sourceLineNo">7403</span>   *  values. Side effect is our filling out of the &lt;code&gt;results&lt;/code&gt; List.<a name="line.7403"></a>
-<span class="sourceLineNo">7404</span>   */<a name="line.7404"></a>
-<span class="sourceLineNo">7405</span>  private List&lt;Cell&gt; reckonDeltasByStore(final Store store, final Operation op,<a name="line.7405"></a>
-<span class="sourceLineNo">7406</span>      final Mutation mutation, final Durability effectiveDurability, final long now,<a name="line.7406"></a>
-<span class="sourceLineNo">7407</span>      final List&lt;Cell&gt; deltas, final List&lt;Cell&gt; results)<a name="line.7407"></a>
-<span class="sourceLineNo">7408</span>  throws IOException {<a name="line.7408"></a>
-<span class="sourceLineNo">7409</span>    byte [] columnFamily = store.getFamily().getName();<a name="line.7409"></a>
-<span class="sourceLineNo">7410</span>    List&lt;Cell&gt; toApply = new ArrayList&lt;&gt;(deltas.size());<a name="line.7410"></a>
-<span class="sourceLineNo">7411</span>    // Get previous values for all columns in this family.<a name="line.7411"></a>
-<span class="sourceLineNo">7412</span>    List&lt;Cell&gt; currentValues = get(mutation, store, deltas,<a name="line.7412"></a>
-<span class="sourceLineNo">7413</span>        null/*Default IsolationLevel*/,<a name="line.7413"></a>
-<span class="sourceLineNo">7414</span>        op == Operation.INCREMENT? ((Increment)mutation).getTimeRange(): null);<a name="line.7414"></a>
-<span class="sourceLineNo">7415</span>    // Iterate the input columns and update existing values if they were found, otherwise<a name="line.7415"></a>
-<span class="sourceLineNo">7416</span>    // add new column initialized to the delta amount<a name="line.7416"></a>
-<span class="sourceLineNo">7417</span>    int currentValuesIndex = 0;<a name="line.7417"></a>
-<span class="sourceLineNo">7418</span>    for (int i = 0; i &lt; deltas.size(); i++) {<a name="line.7418"></a>
-<span class="sourceLineNo">7419</span>      Cell delta = deltas.get(i);<a name="line.7419"></a>
-<span class="sourceLineNo">7420</span>      Cell currentValue = null;<a name="line.7420"></a>
-<span class="sourceLineNo">7421</span>      boolean firstWrite = false;<a name="line.7421"></a>
-<span class="sourceLineNo">7422</span>      if (currentValuesIndex &lt; currentValues.size() &amp;&amp;<a name="line.7422"></a>
-<span class="sourceLineNo">7423</span>          CellUtil.matchingQualifier(currentValues.get(currentValuesIndex), delta)) {<a name="line.7423"></a>
-<span class="sourceLineNo">7424</span>        currentValue = currentValues.get(currentValuesIndex);<a name="line.7424"></a>
-<span class="sourceLineNo">7425</span>        if (i &lt; (deltas.size() - 1) &amp;&amp; !CellUtil.matchingQualifier(delta, deltas.get(i + 1))) {<a name="line.7425"></a>
-<span class="sourceLineNo">7426</span>          currentValuesIndex++;<a name="line.7426"></a>
-<span class="sourceLineNo">7427</span>        }<a name="line.7427"></a>
-<span class="sourceLineNo">7428</span>      } else {<a name="line.7428"></a>
-<span class="sourceLineNo">7429</span>        firstWrite = true;<a name="line.7429"></a>
-<span class="sourceLineNo">7430</span>      }<a name="line.7430"></a>
-<span class="sourceLineNo">7431</span>      // Switch on whether this an increment or an append building the new Cell to apply.<a name="line.7431"></a>
-<span class="sourceLineNo">7432</span>      Cell newCell = null;<a name="line.7432"></a>
-<span class="sourceLineNo">7433</span>      MutationType mutationType = null;<a name="line.7433"></a>
-<span class="sourceLineNo">7434</span>      boolean apply = true;<a name="line.7434"></a>
-<span class="sourceLineNo">7435</span>      switch (op) {<a name="line.7435"></a>
-<span class="sourceLineNo">7436</span>        case INCREMENT:<a name="line.7436"></a>
-<span class="sourceLineNo">7437</span>          mutationType = MutationType.INCREMENT;<a name="line.7437"></a>
-<span class="sourceLineNo">7438</span>          // If delta amount to apply is 0, don't write WAL or MemStore.<a name="line.7438"></a>
-<span class="sourceLineNo">7439</span>          long deltaAmount = getLongValue(delta);<a name="line.7439"></a>
-<span class="sourceLineNo">7440</span>          apply = deltaAmount != 0;<a name="line.7440"></a>
-<span class="sourceLineNo">7441</span>          newCell = reckonIncrement(delta, deltaAmount, currentValue, columnFamily, now,<a name="line.7441"></a>
-<span class="sourceLineNo">7442</span>            (Increment)mutation);<a name="line.7442"></a>
-<span class="sourceLineNo">7443</span>          break;<a name="line.7443"></a>
-<span class="sourceLineNo">7444</span>        case APPEND:<a name="line.7444"></a>
-<span class="sourceLineNo">7445</span>          mutationType = MutationType.APPEND;<a name="line.7445"></a>
-<span class="sourceLineNo">7446</span>          // Always apply Append. TODO: Does empty delta value mean reset Cell? It seems to.<a name="line.7446"></a>
-<span class="sourceLineNo">7447</span>          newCell = reckonAppend(delta, currentValue, now, (Append)mutation);<a name="line.7447"></a>
-<span class="sourceLineNo">7448</span>          break;<a name="line.7448"></a>
-<span class="sourceLineNo">7449</span>        default: throw new UnsupportedOperationException(op.toString());<a name="line.7449"></a>
-<span class="sourceLineNo">7450</span>      }<a name="line.7450"></a>
-<span class="sourceLineNo">7451</span><a name="line.7451"></a>
-<span class="sourceLineNo">7452</span>      // Give coprocessors a chance to update the new cell<a name="line.7452"></a>
-<span class="sourceLineNo">7453</span>      if (coprocessorHost != null) {<a name="line.7453"></a>
-<span class="sourceLineNo">7454</span>        newCell =<a name="line.7454"></a>
-<span class="sourceLineNo">7455</span>            coprocessorHost.postMutationBeforeWAL(mutationType, mutation, currentValue, newCell);<a name="line.7455"></a>
-<span class="sourceLineNo">7456</span>      }<a name="line.7456"></a>
-<span class="sourceLineNo">7457</span>      // If apply, we need to update memstore/WAL with new value; add it toApply.<a name="line.7457"></a>
-<span class="sourceLineNo">7458</span>      if (apply || firstWrite) {<a name="line.7458"></a>
-<span class="sourceLineNo">7459</span>        toApply.add(newCell);<a name="line.7459"></a>
-<span class="sourceLineNo">7460</span>      }<a name="line.7460"></a>
-<span class="sourceLineNo">7461</span>      // Add to results to get returned to the Client. If null, cilent does not want results.<a name="line.7461"></a>
-<span class="sourceLineNo">7462</span>      if (results != null) {<a name="line.7462"></a>
-<span class="sourceLineNo">7463</span>        results.add(newCell);<a name="line.7463"></a>
-<span class="sourceLineNo">7464</span>      }<a name="line.7464"></a>
-<span class="sourceLineNo">7465</span>    }<a name="line.7465"></a>
-<span class="sourceLineNo">7466</span>    return toApply;<a name="line.7466"></a>
-<span class="sourceLineNo">7467</span>  }<a name="line.7467"></a>
-<span class="sourceLineNo">7468</span><a name="line.7468"></a>
-<span class="sourceLineNo">7469</span>  /**<a name="line.7469"></a>
-<span class="sourceLineNo">7470</span>   * Calculate new Increment Cell.<a name="line.7470"></a>
-<span class="sourceLineNo">7471</span>   * @return New Increment Cell with delta applied to currentValue if currentValue is not null;<a name="line.7471"></a>
-<span class="sourceLineNo">7472</span>   *  otherwise, a new Cell with the delta set as its value.<a name="line.7472"></a>
-<span class="sourceLineNo">7473</span>   */<a name="line.7473"></a>
-<span class="sourceLineNo">7474</span>  private Cell reckonIncrement(final Cell delta, final long deltaAmount, final Cell currentValue,<a name="line.7474"></a>
-<span class="sourceLineNo">7475</span>      byte [] columnFamily, final long now, Mutation mutation)<a name="line.7475"></a>
-<span class="sourceLineNo">7476</span>  throws IOException {<a name="line.7476"></a>
-<span class="sourceLineNo">7477</span>    // Forward any tags found on the delta.<a name="line.7477"></a>
-<span class="sourceLineNo">7478</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7478"></a>
-<span class="sourceLineNo">7479</span>    long newValue = deltaAmount;<a name="line.7479"></a>
-<span class="sourceLineNo">7480</span>    long ts = now;<a name="line.7480"></a>
-<span class="sourceLineNo">7481</span>    if (currentValue != null) {<a name="line.7481"></a>
-<span class="sourceLineNo">7482</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7482"></a>
-<span class="sourceLineNo">7483</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7483"></a>
-<span class="sourceLineNo">7484</span>      newValue += getLongValue(currentValue);<a name="line.7484"></a>
-<span class="sourceLineNo">7485</span>    }<a name="line.7485"></a>
-<span class="sourceLineNo">7486</span>    // Now make up the new Cell. TODO: FIX. This is carnel knowledge of how KeyValues are made...<a name="line.7486"></a>
-<span class="sourceLineNo">7487</span>    // doesn't work well with offheaping or if we are doing a different Cell type.<a name="line.7487"></a>
-<span class="sourceLineNo">7488</span>    byte [] incrementAmountInBytes = Bytes.toBytes(newValue);<a name="line.7488"></a>
-<span class="sourceLineNo">7489</span>    tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7489"></a>
-<span class="sourceLineNo">7490</span>    byte [] row = mutation.getRow();<a name="line.7490"></a>
-<span class="sourceLineNo">7491</span>    return new KeyValue(row, 0, row.length,<a name="line.7491"></a>
-<span class="sourceLineNo">7492</span>      columnFamily, 0, columnFamily.length,<a name="line.7492"></a>
-<span class="sourceLineNo">7493</span>      delta.getQualifierArray(), delta.getQualifierOffset(), delta.getQualifierLength(),<a name="line.7493"></a>
-<span class="sourceLineNo">7494</span>      ts, KeyValue.Type.Put,<a name="line.7494"></a>
-<span class="sourceLineNo">7495</span>      incrementAmountInBytes, 0, incrementAmountInBytes.length,<a name="line.7495"></a>
-<span class="sourceLineNo">7496</span>      tags);<a name="line.7496"></a>
-<span class="sourceLineNo">7497</span>  }<a name="line.7497"></a>
-<span class="sourceLineNo">7498</span><a name="line.7498"></a>
-<span class="sourceLineNo">7499</span>  private Cell reckonAppend(final Cell delta, final Cell currentValue, final long now,<a name="line.7499"></a>
-<span class="sourceLineNo">7500</span>      Append mutation)<a name="line.7500"></a>
-<span class="sourceLineNo">7501</span>  throws IOException {<a name="line.7501"></a>
-<span class="sourceLineNo">7502</span>    // Forward any tags found on the delta.<a name="line.7502"></a>
-<span class="sourceLineNo">7503</span>    List&lt;Tag&gt; tags = TagUtil.carryForwardTags(delta);<a name="line.7503"></a>
-<span class="sourceLineNo">7504</span>    long ts = now;<a name="line.7504"></a>
-<span class="sourceLineNo">7505</span>    Cell newCell = null;<a name="line.7505"></a>
-<span class="sourceLineNo">7506</span>    byte [] row = mutation.getRow();<a name="line.7506"></a>
-<span class="sourceLineNo">7507</span>    if (currentValue != null) {<a name="line.7507"></a>
-<span class="sourceLineNo">7508</span>      tags = TagUtil.carryForwardTags(tags, currentValue);<a name="line.7508"></a>
-<span class="sourceLineNo">7509</span>      ts = Math.max(now, currentValue.getTimestamp() + 1);<a name="line.7509"></a>
-<span class="sourceLineNo">7510</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7510"></a>
-<span class="sourceLineNo">7511</span>      byte[] tagBytes = TagUtil.fromList(tags);<a name="line.7511"></a>
-<span class="sourceLineNo">7512</span>      // Allocate an empty cell and copy in all parts.<a name="line.7512"></a>
-<span class="sourceLineNo">7513</span>      // TODO: This is intimate knowledge of how a KeyValue is made. Undo!!! Prevents our doing<a name="line.7513"></a>
-<span class="sourceLineNo">7514</span>      // other Cell types. Copying on-heap too if an off-heap Cell.<a name="line.7514"></a>
-<span class="sourceLineNo">7515</span>      newCell = new KeyValue(row.length, delta.getFamilyLength(),<a name="line.7515"></a>
-<span class="sourceLineNo">7516</span>        delta.getQualifierLength(), ts, KeyValue.Type.Put,<a name="line.7516"></a>
-<span class="sourceLineNo">7517</span>        delta.getValueLength() + currentValue.getValueLength(),<a name="line.7517"></a>
-<span class="sourceLineNo">7518</span>        tagBytes == null? 0: tagBytes.length);<a name="line.7518"></a>
-<span class="sourceLineNo">7519</span>      // Copy in row, family, and qualifier<a name="line.7519"></a>
-<span class="sourceLineNo">7520</span>      System.arraycopy(row, 0, newCell.getRowArray(), newCell.getRowOffset(), row.length);<a name="line.7520"></a>
-<span class="sourceLineNo">7521</span>      System.arraycopy(delta.getFamilyArray(), delta.getFamilyOffset(),<a name="line.7521"></a>
-<span class="sourceLineNo">7522</span>          newCell.getFamilyArray(), newCell.getFamilyOffset(), delta.getFamilyLength());<a name="line.7522"></a>
-<span class="sourceLineNo">7523</span>      System.arraycopy(delta.getQualifierArray(), delta.getQualifierOffset(),<a name="line.7523"></a>
-<span class="sourceLineNo">7524</span>          newCell.getQualifierArray(), newCell.getQualifierOffset(), delta.getQualifierLength());<a name="line.7524"></a>
-<span class="sourceLineNo">7525</span>      // Copy in the value<a name="line.7525"></a>
-<span class="sourceLineNo">7526</span>      CellUtil.copyValueTo(currentValue, newCell.getValueArray(), newCell.getValueOffset());<a name="line.7526"></a>
-<span class="sourceLineNo">7527</span>      System.arraycopy(delta.getValueArray(), delta.getValueOffset(),<a name="line.7527"></a>
-<span class="sourceLineNo">7528</span>          newCell.getValueArray(), newCell.getValueOffset() + currentValue.getValueLength(),<a name="line.7528"></a>
-<span class="sourceLineNo">7529</span>          delta.getValueLength());<a name="line.7529"></a>
-<span class="sourceLineNo">7530</span>      // Copy in tag data<a name="line.7530"></a>
-<span class="sourceLineNo">7531</span>      if (tagBytes != null) {<a name="line.7531"></a>
-<span class="sourceLineNo">7532</span>        System.arraycopy(tagBytes, 0,<a name="line.7532"></a>
-<span class="sourceLineNo">7533</span>            newCell.getTagsArray(), newCell.getTagsOffset(), tagBytes.length);<a name="line.7533"></a>
-<span class="sourceLineNo">7534</span>      }<a name="line.7534"></a>
-<span class="sourceLineNo">7535</span>    } else {<a name="line.7535"></a>
-<span class="sourceLineNo">7536</span>      // Append's KeyValue.Type==Put and ts==HConstants.LATEST_TIMESTAMP<a name="line.7536"></a>
-<span class="sourceLineNo">7537</span>      CellUtil.updateLatestStamp(delta, now);<a name="line.7537"></a>
-<span class="sourceLineNo">7538</span>      newCell = delta;<a name="line.7538"></a>
-<span class="sourceLineNo">7539</span>      tags = TagUtil.carryForwardTTLTag(tags, mutation.getTTL());<a name="line.7539"></a>
-<span class="sourceLineNo">7540</span>      if (tags != null) {<a name="line.7540"></a>
-<span class="sourceLineNo">7541</span>        newCell = CellUtil.createCell(delta, tags);<a name="line.7541"></a>
-<span class="sourceLineNo">7542</span>      }<a name="line.7542"></a>
-<span class="sourceLineNo">7543</span>    }<a name="line.7543"></a>
-<span class="sourceLineNo">7544</span>    return newCell;<a name="line.7544"></a>
-<span class="sourceLineNo">7545</span>  }<a name="line.7545"></a>
-<span class="sourceLineNo">7546</span><a name="line.7546"></a>
-<span class="sourceLineNo">7547</span>  /**<a name="line.7547"></a>
-<span class="sourceLineNo">7548</span>   * @return Get the long out of the passed in Cell<a name="line.7548"></a>
-<span class="sourceLineNo">7549</span>   */<a name="line.7549"></a>
-<span class="sourceLineNo">7550</span>  private static long getLongValue(final Cell cell) throws DoNotRetryIOException {<a name="line.7550"></a>
-<span class="sourceLineNo">7551</span>    int len = cell.getValueLength();<a name="line.7551"></a>
-<span class="sourceLineNo">7552</span>    if (len != Bytes.SIZEOF_LONG) {<a name="line.7552"></a>
-<span class="sourceLineNo">7553</span>      // throw DoNotRetryIOException instead of IllegalArgumentException<a name="line.7553"></a>
-<span class="sourceLineNo">7554</span>      throw new DoNotRetryIOException("Field is not a long, it's " + len + " bytes wide");<a name="line.7554"></a>
-<span class="sourceLineNo">7555</span>    }<a name="line.7555"></a>
-<span class="sourceLineNo">7556</span>    return CellUtil.getValueAsLong(cell);<a name="line.7556"></a>
-<span class="sourceLineNo">7557</span>  }<a name="line.7557"></a>
-<span class="sourceLineNo">7558</span><a name="line.7558"></a>
-<span class="sourceLineNo">7559</span>  /**<a name="line.7559"></a>
-<span class="sourceLineNo">7560</span>   * Do a specific Get on passed &lt;code&gt;columnFamily&lt;/code&gt; and column qualifiers.<a name="line.7560"></a>
-<span class="sourceLineNo">7561</span>   * @param mutation Mutation we are doing this Get for.<a name="line.7561"></a>
-<span class="sourceLineNo">7562</span>   * @param store Which column family on row (TODO: Go all Gets in one go)<a name="line.7562"></a>
-<span class="sourceLineNo">7563</span>   * @param coordinates Cells from &lt;code&gt;mutation&lt;/code&gt; used as coordinates applied to Get.<a name="line.7563"></a>
-<span class="sourceLineNo">7564</span>   * @return Return list of Cells found.<a name="line.7564"></a>
-<span class="sourceLineNo">7565</span>   */<a name="line.7565"></a>
-<span class="sourceLineNo">7566</span>  private List&lt;Cell&gt; get(final Mutation mutation, final Store store,<a name="line.7566"></a>
-<span class="sourceLineNo">7567</span>          final List&lt;Cell&gt; coordinates, final IsolationLevel isolation, final TimeRange tr)<a name="line.7567"></a>
-<span class="sourceLineNo">7568</span>  throws IOException {<a name="line.7568"></a>
-<span class="sourceLineNo">7569</span>    // Sort the cells so that they match the order that they appear in the Get results. Otherwise,<a name="line.7569"></a>
-<span class="sourceLineNo">7570</span>    // we won't be able to find the existing values if the cells are not specified in order by the<a name="line.7570"></a>
-<span class="sourceLineNo">7571</span>    // client since cells are in an array list.<a name="line.7571"></a>
-<span class="sourceLineNo">7572</span>    // TODO: I don't get why we are sorting. St.Ack 20150107<a name="line.7572"></a>
-<span class="sourceLineNo">7573</span>    sort(coordinates, store.getComparator());<a name="line.7573"></a>
-<span class="sourceLineNo">7574</span>    Get get = new Get(mutation.getRow());<a name="line.7574"></a>
-<span class="sourceLineNo">7575</span>    if (isolation != null) {<a name="line.7575"></a>
-<span class="sourceLineNo">7576</span>      get.setIsolationLevel(isolation);<a name="line.7576"></a>
-<span class="sourceLineNo">7577</span>    }<a name="line.7577"></a>
-<span class="sourceLineNo">7578</span>    for (Cell cell: coordinates) {<a name="line.7578"></a>
-<span class="sourceLineNo">7579</span>      get.addColumn(store.getFamily().getName(), CellUtil.cloneQualifier(cell));<a name="line.7579"></a>
-<span class="sourceLineNo">7580</span>    }<a name="line.7580"></a>
-<span class="sourceLineNo">7581</span>    // Increments carry time range. If an Increment instance, put it on the Get.<a name="line.7581"></a>
-<span class="sourceLineNo">7582</span>    if (tr != null) {<a name="line.7582"></a>
-<span class="sourceLineNo">7583</span>      get.setTimeRange(tr.getMin(), tr.getMax());<a name="line.7583"></a>
-<span class="sourceLineNo">7584</span>    }<a name="line.7584"></a>
-<span class="sourceLineNo">7585</span>    return get(get, false);<a name="line.7585"></a>
-<span class="sourceLineNo">7586</span>  }<a name="line.7586"></a>
-<span class="sourceLineNo">7587</span><a name="line.7587"></a>
-<span class="sourceLineNo">7588</span>  /**<a name="line.7588"></a>
-<span class="sourceLineNo">7589</span>   * @return Sorted list of &lt;code&gt;cells&lt;/code&gt; using &lt;code&gt;comparator&lt;/code&gt;<a name="line.7589"></a>
-<span class="sourceLineNo">7590</span>   */<a name="line.7590"></a>
-<span class="sourceLineNo">7591</span>  private static List&lt;Cell&gt; sort(List&lt;Cell&gt; cells, final Comparator&lt;Cell&gt; comparator) {<a name="line.7591"></a>
-<span class="sourceLineNo">7592</span>    Collections.sort(cells, comparator);<a name="line.7592"></a>
-<span class="sourceLineNo">7593</span>    return cells;<a name="line.7593"></a>
-<span class="sourceLineNo">7594</span>  }<a name="line.7594"></a>
-<span class="sourceLineNo">7595</span><a name="line.7595"></a>
-<span class="sourceLineNo">7596</span>  //<a name="line.7596"></a>
-<span class="sourceLineNo">7597</span>  // New HBASE-880 Helpers<a name="line.7597"></a>
-<span class="sourceLineNo">7598</span>  //<a name="line.7598"></a>
-<span class="sourceLineNo">7599</span><a name="line.7599"></a>
-<span class="sourceLineNo">7600</span>  void checkFamily(final byte [] family)<a name="line.7600"></a>
-<span class="sourceLineNo">7601</span>  throws NoSuchColumnFamilyException {<a name="line.7601"></a>
-<span class="sourceLineNo">7602</span>    if (!this.htableDescriptor.hasFamily(family)) {<a name="line.7602"></a>
-<span class="sourceLineNo">7603</span>      throw new NoSuchColumnFamilyException("Column family " +<a name="line.7603"></a>
-<span class="sourceLineNo">7604</span>          Bytes.toString(family) + " does not exist in region " + this<a name="line.7604"></a>
-<span class="sourceLineNo">7605</span>          + " in table " + this.htableDescriptor);<a name="line.7605"></a>
-<span class="sourceLineNo">7606</span>    }<a name="line.7606"></a>
-<span class="sourceLineNo">7607</span>  }<a name="line.7607"></a>
-<span class="sourceLineNo">7608</span><a name="line.7608"></a>
-<span class="sourceLineNo">7609</span>  public static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.7609"></a>
-<span class="sourceLineNo">7610</span>      ClassSize.OBJECT +<a name="line.7610"></a>
-<span class="sourceLineNo">7611</span>      ClassSize.ARRAY +<a name="line.7611"></a>
-<span class="sourceLineNo">7612</span>      49 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +<a name="line.7612"></a>
-<span class="sourceLineNo">7613</span>      (14 * Bytes.SIZEOF_LONG) +<a name="line.7613"></a>
-<span class="sourceLineNo">7614</span>      6 * Bytes.SIZEOF_BOOLEAN);<a name="line.7614"></a>
-<span class="sourceLineNo">7615</span><a name="line.7615"></a>
-<span class="sourceLineNo">7616</span>  // woefully out of date - currently missing:<a name="line.7616"></a>
-<span class="sourceLineNo">7617</span>  // 1 x HashMap - coprocessorServiceHandlers<a name="line.7617"></a>
-<span class="sourceLineNo">7618</span>  // 6 x LongAdder - numMutationsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7618"></a>
-<span class="sourceLineNo">7619</span>  //   checkAndMutateChecksPassed, checkAndMutateChecksFailed, readRequestsCount,<a name="line.7619"></a>
-<span class="sourceLineNo">7620</span>  //   writeRequestsCount<a name="line.7620"></a>
-<span class="sourceLineNo">7621</span>  // 1 x HRegion$WriteState - writestate<a name="line.7621"></a>
-<span class="sourceLineNo">7622</span>  // 1 x RegionCoprocessorHost - coprocessorHost<a name="line.7622"></a>
-<span class="sourceLineNo">7623</span>  // 1 x RegionSplitPolicy - splitPolicy<a name="line.7623"></a>
-<span class="sourceLineNo">7624</span>  // 1 x MetricsRegion - metricsRegion<a name="line.7624"></a>
-<span class="sourceLineNo">7625</span>  // 1 x MetricsRegionWrapperImpl - metricsRegionWrapper<a name="line.7625"></a>
-<span class="sourceLineNo">7626</span>  public static final long DEEP_OVERHEAD = FIXED_OVERHEAD +<a name="line.7626"></a>
-<span class="sourceLineNo">7627</span>      ClassSize.OBJECT + // closeLock<a name="line.7627"></a>
-<span class="sourceLineNo">7628</span>      (2 * ClassSize.ATOMIC_BOOLEAN) + // closed, closing<a name="line.7628"></a>
-<span class="sourceLineNo">7629</span>      (4 * ClassSize.ATOMIC_LONG) + // memStoreSize, numPutsWithoutWAL, dataInMemoryWithoutWAL,<a name="line.7629"></a>
-<span class="sourceLineNo">7630</span>                                    // compactionsFailed<a name="line.7630"></a>
-<span class="sourceLineNo">7631</span>      (2 * ClassSize.CONCURRENT_HASHMAP) +  // lockedRows, scannerReadPoints<a name="line.7631"></a>
-<span class="sourceLineNo">7632</span>      WriteState.HEAP_SIZE + // writestate<a name="line.7632"></a>
-<span class="sourceLineNo">7633</span>      ClassSize.CONCURRENT_SKIPLISTMAP + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + // stores<a name="line.7633"></a>
-<span class="sourceLineNo">7634</span>      (2 * ClassSize.REENTRANT_LOCK) + // lock, updatesLock<a name="line.7634"></a>
-<span class="sourceLineNo">7635</span>      MultiVersionConcurrencyControl.FIXED_SIZE // mvcc<a name="line.7635"></a>
-<span class="sourceLineNo">7636</span>      + 2 * ClassSize.TREEMAP // maxSeqIdInStores, replicationScopes<a name="line.7636"></a>
-<span class="sourceLineNo">7637</span>      + 2 * ClassSize.ATOMIC_INTEGER // majorInProgress, minorInProgress<a name="line.7637"></a>
-<span class="sourceLineNo">7638</span>      + ClassSize.STORE_SERVICES // store services<a name="line.7638"></a>
-<span class="sourceLineNo">7639</span>      ;<a name="line.7639"></a>
-<span class="sourceLineNo">7640</span><a name="line.7640"></a>
-<span class="sourceLineNo">7641</span>  @Override<a name="line.7641"></a>
-<span class="sourceLineNo">7642</span>  public long heapSize() {<a name="line.7642"></a>
-<span class="sourceLineNo">7643</span>    long heapSize = DEEP_OVERHEAD;<a name="line.7643"></a>
-<span class="sourceLineNo">7644</span>    for (Store store : this.stores.values()) {<a name="line.7644"></a>
-<span class="sourceLineNo">7645</span>      heapSize += store.heapSize();<a name="line.7645"></a>
-<span class="sourceLineNo">7646</span>    }<a name="line.7646"></a>
-<span class="sourceLineNo">7647</span>    // this does not take into account row locks, recent flushes, mvcc entries, and more<a name="line.7647"></a>
-<span class="sourceLineNo">7648</span>    return heapSize;<a name="line.7648"></a>
-<span class="sourceLineNo">7649</span>  }<a name="line.7649"></a>
-<span class="sourceLineNo">7650</span><a name="line.7650"></a>
-<span class="sourceLineNo">7651</span>  @Override<a name="line.7651"></a>
-<span class="sourceLineNo">7652</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.7652"></a>
-<span class="sourceLineNo">7653</span>    /*<a name="line.7653"></a>
-<span class="sourceLineNo">7654</span>     * No stacking of instances is allowed for a single service name<a name="line.7654"></a>
-<span class="sourceLineNo">7655</span>     */<a name="line.7655"></a>
-<span class="sourceLineNo">7656</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.7656"></a>
-<span class="sourceLineNo">7657</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.7657"></a>
-<span class="sourceLineNo">7658</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.7658"></a>
-<span class="sourceLineNo">7659</span>      LOG.error("Coprocessor service " + serviceName +<a name="line.7659"></a>
-<span class="sourceLineNo">7660</span>              " already registered, rejecting request from " + instance<a name="line.7660"></a>
-<span class="sourceLineNo">7661</span>      );<a name="line.7661"></a>
-<span class="sourceLineNo">7662</span>      return false;<a name="line.7662"></a>
-<span class="sourceLineNo">7663</span>    }<a name="line.7663"></a>
-<span class="sourceLineNo">7664</span><a name="line.7664"></a>
-<span class="sourceLineNo">7665</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.7665"></a>
-<span class="sourceLineNo">7666</span>    if (LOG.isDebugEnabled()) {<a name="line.7666"></a>
-<span class="sourceLineNo">7667</span>      LOG.debug("Registered coprocessor service: region=" +<a name="line.7667"></a>
-<span class="sourceLineNo">7668</span>          Bytes.toStringBinary(getRegionInfo().getRegionName()) +<a name="line.7668"></a>
-<span class="sourceLineNo">7669</span>          " service=" + serviceName);<a name="line.7669"></a>
-<span class="sourceLineNo">7670</span>    }<a name="line.7670"></a>
-<span class="sourceLineNo">7671</span>    return true;<a name="line.7671"></a>
-<span class="sourceLineNo">7672</span>  }<a name="line.7672"></a>
-<span class="sourceLineNo">7673</span><a name="line.7673"></a>
-<span class="sourceLineNo">7674</span>  @Override<a name="line.7674"></a>
-<span class="sourceLineNo">7675</span>  public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,<a name="line.7675"></a>
-<span class="sourceLineNo">7676</span>      CoprocessorServiceCall call)<a name="line.7676"></a>
-<span class="sourceLineNo">7677</span>  throws IOException {<a name="line.7677"></a>
-<span class="sourceLineNo">7678</span>    String serviceName = call.getServiceName();<a name="line.7678"></a>
-<span class="sourceLineNo">7679</span>    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);<a name="line.7679"></a>
-<span class="sourceLineNo">7680</span>    if (service == null) {<a name="line.7680"></a>
-<span class="sourceLineNo">7681</span>      throw new UnknownProtocolException(null, "No registered coprocessor service found for " +<a name="line.7681"></a>
-<span class="sourceLineNo">7682</span>          serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.7682"></a>
-<span class="sourceLineNo">7683</span>    }<a name="line.7683"></a>
-<span class="sourceLineNo">7684</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.7684"></a>
-<span class="sourceLineNo">7685</span><a name="line.7685"></a>
-<span class="sourceLineNo">7686</span>    String methodName = call.getMethodName();<a name="line.7686"></a>
-<span class="sourceLineNo">7687</span>    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.7687"></a>
-<span class="sourceLineNo">7688</span>        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.7688"></a>
-<span class="sourceLineNo">7689</span><a name="line.7689"></a>
-<span class="sourceLineNo">7690</span>    com.google.protobuf.Message.Builder builder =<a name="line.7690"></a>
-<span class="sourceLineNo">7691</span>        service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.7691"></a>
-<span class="sourceLineNo">7692</span><a name="line.7692"></a>
-<span class="sourceLineNo">7693</span>    org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,<a name="line.7693"></a>
-<span class="sourceLineNo">7694</span>        call.getRequest().toByteArray());<a name="line.7694"></a>
-<span class="sourceLineNo">7695</span>    com.google.protobuf.Message request =<a name="line.7695"></a>
-<span class="sourceLineNo">7696</span>        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.7696"></a>
-<span class="sourceLineNo">7697</span><a name="line.7697"></a>
-<span class="sourceLineNo">7698</span>    if (coprocessorHost != null) {<a name="line.7698"></a>
-<span class="sourceLineNo">7699</span>      request = coprocessorHost.preEndpointInvocation(service, methodName, request);<a name="line.7699"></a>
-<span class="sourceLineNo">7700</span>    }<a name="line.7700"></a>
-<span class="sourceLineNo">7701</span><a name="line.7701"></a>
-<span class="sourceLineNo">7702</span>    final com.google.protobuf.Message.Builder responseBuilder =<a name="line.7702"></a>
-<span class="sourceLineNo">7703</span>        service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.7703"></a>
-<span class="sourceLineNo">7704</span>    service.callMethod(methodDesc, controller, request,<a name="line.7704"></a>
-<span class="sourceLineNo">7705</span>        new com.google.protobuf.RpcCallback&lt;com.google.protobuf.Message&gt;() {<a name="line.7705"></a>
-<span class="sourceLineNo">7706</span>      @Override<a name="line.7706"></a>
-<span class="sourceLineNo">7707</span>      public void run(com.google.protobuf.Message message) {<a name="line.7707"></a>
-<span class="sourceLineNo">7708</span>        if (message != null) {<a name="line.7708"></a>
-<span class="sourceLineNo">7709</span>          responseBuilder.mergeFrom(message);<a name="line.7709"></a>
-<span class="sourceLineNo">7710</span>        }<a name="line.7710"></a>
-<span class="sourceLineNo">7711</span>      }<a name="line.7711"></a>
-<span class="sourceLineNo">7712</span>    });<a name="line.7712"></a>
-<span class="sourceLineNo">7713</span><a name="line.7713"></a>
-<span class="sourceLineNo">7714</span>    if (coprocessorHost != null) {<a name="line.7714"></a>
-<span class="sourceLineNo">7715</span>      coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);<a name="line.7715"></a>
-<span class="sourceLineNo">7716</span>    }<a name="line.7716"></a>
-<span class="sourceLineNo">7717</span>    IOException exception =<a name="line.7717"></a>
-<span class="sourceLineNo">7718</span>        org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);<a name="line.7718"></a>
-<span class="sourceLineNo">7719</span>    if (exception != null) {<a name="line.7719"></a>
-<span class="sourceLineNo">7720</span>      throw exception;<a name="line.7720"></a>
-<span class="sourceLineNo">7721</span>    }<a name="line.7721"></a>
-<span class="sourceLineNo">7722</span><a name="line.7722"></a>
-<span class="sourceLineNo">7723</span>    return responseBuilder.build();<a name="line.7723"></a>
-<span class="sourceLineNo">7724</span>  }<a name="line.7724"></a>
-<span class="sourceLineNo">7725</span><a name="line.7725"></a>
-<span class="sourceLineNo">7726</span>  boolean shouldForceSplit() {<a name="line.7726"></a>
-<span class="sourceLineNo">7727</span>    return this.splitRequest;<a name="line.7727"></a>
-<span class="sourceLineNo">7728</span>  }<a name="line.7728"></a>
-<span class="sourceLineNo">7729</span><a name="line.7729"></a>
-<span class="sourceLineNo">7730</span>  byte[] getExplicitSplitPoint() {<a name="line.7730"></a>
-<span class="sourceLineNo">7731</span>    return this.explicitSplitPoint;<a name="line.7731"></a>
-<span class="sourceLineNo">7732</span>  }<a name="line.7732"></a>
-<span class="sourceLineNo">7733</span><a name="line.7733"></a>
-<span class="sourceLineNo">7734</span>  void forceSplit(byte[] sp) {<a name="line.7734"></a>
-<span class="sourceLineNo">7735</span>    // This HRegion will go away after the forced split is successful<a name="line.7735"></a>
-<span class="sourceLineNo">7736</span>    // But if a forced split fails, we need to clear forced split.<a name="line.7736"></a>
-<span class="sourceLineNo">7737</span>    this.splitRequest = true;<a name="line.7737"></a>
-<span class="sourceLineNo">7738</span>    if (sp != null) {<a name="line.7738"></a>
-<span class="sourceLineNo">7739</span>      this.explicitSplitPoint = sp;<a name="line.7739"></a>
-<span class="sourceLineNo">7740</span>    }<a name="line.7740"></a>
-<span class="sourceLineNo">7741</span>  }<a name="line.7741"></a>
-<span class="sourceLineNo">7742</span><a name="line.7742"></a>
-<span class="sourceLineNo">7743</span>  void clearSplit() {<a name="line.7743"></a>
-<span class="sourceLineNo">7744</span>    this.splitRequest = false;<a name="line.7744"></a>
-<span class="sourceLineNo">7745</span>    this.explicitSplitPoint = null;<a name="line.7745"></a>
-<span class="sourceLineNo">7746</span>  }<a name="line.7746"></a>
-<span class="sourceLineNo">7747</span><a name="line.7747"></a>
-<span class="sourceLineNo">7748</span>  /**<a name="line.7748"></a>
-<span class="sourceLineNo">7749</span>   * Give the region a chance to prepare before it is split.<a name="line.7749"></a>
-<span class="sourceLineNo">7750</span>   */<a name="line.7750"></a>
-<span class="sourceLineNo">7751</span>  protected void prepareToSplit() {<a name="line.7751"></a>
-<span class="sourceLineNo">7752</span>    // nothing<a name="line.7752"></a>
-<span class="sourceLineNo">7753</span>  }<a name="line.7753"></a>
-<span class="sourceLineNo">7754</span><a name="line.7754"></a>
-<span class="sourceLineNo">7755</span>  /**<a name="line.7755"></a>
-<span class="sourceLineNo">7756</span>   * Return the splitpoint. null indicates the region isn't splittable<a name="line.7756"></a>
-<span class="sourceLineNo">7757</span>   * If the splitpoint isn't explicitly specified, it will go over the stores<a name="line.7757"></a>
-<span class="sourceLineNo">7758</span>   * to find the best splitpoint. Currently the criteria of best splitpoint<a name="line.7758"></a>
-<span class="sourceLineNo">7759</span>   * is based on the size of the store.<a name="line.7759"></a>
-<span class="sourceLineNo">7760</span>   */<a name="line.7760"></a>
-<span class="sourceLineNo">7761</span>  public byte[] checkSplit() {<a name="line.7761"></a>
-<span class="sourceLineNo">7762</span>    // Can't split META<a name="line.7762"></a>
-<span class="sourceLineNo">7763</span>    if (this.getRegionInfo().isMetaTable() ||<a name="line.7763"></a>
-<span class="sourceLineNo">7764</span>        TableName.NAMESPACE_TABLE_NAME.equals(this.getRegionInfo().getTable())) {<a name="line.7764"></a>
-<span class="sourceLineNo">7765</span>      if (shouldForceSplit()) {<a name="line.7765"></a>
-<span class="sourceLineNo">7766</span>        LOG.warn("Cannot split meta region in HBase 0.20 and above");<a name="line.7766"></a>
-<span class="sourceLineNo">7767</span>      }<a name="line.7767"></a>
-<span class="sourceLineNo">7768</span>      return null;<a name="line.7768"></a>
-<span class="sourceLineNo">7769</span>    }<a name="line.7769"></a>
-<span class="sourceLineNo">7770</span><a name="line.7770"></a>
-<span class="sourceLineNo">7771</span>    // Can't split region which is in recovering state<a name="line.7771"></a>
-<span class="sourceLineNo">7772</span>    if (this.isRecovering()) {<a name="line.7772"></a>
-<span class="sourceLineNo">7773</span>      LOG.info("Cannot split region " + this.getRegionInfo().getEncodedName() + " in recovery.");<a name="line.7773"></a>
-<span class="sourceLineNo">7774</span>      return null;<a name="line.7774"></a>
-<span class="sourceLineNo">7775</span>    }<a name="line.7775"></a>
-<span class="sourceLineNo">7776</span><a name="line.7776"></a>
-<span class="sourceLineNo">7777</span>    if (!splitPolicy.shouldSplit()) {<a name="line.7777"></a>
-<span class="sourceLineNo">7778</span>      return null;<a name="line.7778"></a>
-<span class="sourceLineNo">7779</span>    }<a name="line.7779"></a>
-<span class="sourceLineNo">7780</span><a name="line.7780"></a>
-<span class="sourceLineNo">7781</span>    byte[] ret = splitPolicy.getSplitPoint();<a name="line.7781"></a>
-<span class="sourceLineNo">7782</span><a name="line.7782"></a>
-<span class="sourceLineNo">7783</span>    if (ret != null) {<a name="line.7783"></a>
-<span class="sourceLineNo">7784</span>      try {<a name="line.7784"></a>
-<span class="sourceLineNo">7785</span>        checkRow(ret, "calculated split");<a name="line.7785"></a>
-<span class="sourceLineNo">7786</span>      } catch (IOException e) {<a name="line.7786"></a>
-<span class="sourceLineNo">7787</span>        LOG.error("Ignoring invalid split", e);<a name="line.7787"></a>
-<span class="sourceLineNo">7788</span>        return null;<a name="line.7788"></a>
-<span class="sourceLineNo">7789</span>      }<a name="line.7789"></a>
-<span class="sourceLineNo">7790</span>    }<a name="line.7790"></a>
-<span class="sourceLineNo">7791</span>    return ret;<a name="line.7791"></a>
-<span class="sourceLineNo">7792</span>  }<a name="line.7792"></a>
-<span class="sourceLineNo">7793</span><a name="line.7793"></a>
-<span class="sourceLineNo">7794</span>  /**<a name="line.7794"></a>
-<span class="sourceLineNo">7795</span>   * @return The priority that this region should have in the compaction queue<a name="line.7795"></a>
-<span class="sourceLineNo">7796</span>   */<a name="line.7796"></a>
-<span class="sourceLineNo">7797</span>  public int getCompactPriority() {<a name="line.7797"></a>
-<span class="sourceLineNo">7798</span>    int count = Integer.MAX_VALUE;<a name="line.7798"></a>
-<span class="sourceLineNo">7799</span>    for (Store store : stores.values()) {<a name="line.7799"></a>
-<span class="sourceLineNo">7800</span>      count = Math.min(count, store.getCompactPriority());<a name="line.7800"></a>
-<span class="sourceLineNo">7801</span>    }<a name="line.7801"></a>
-<span class="sourceLineNo">7802</span>    return count;<a name="line.7802"></a>
-<span class="sourceLineNo">7803</span>  }<a name="line.7803"></a>
-<span class="sourceLineNo">7804</span><a name="line.7804"></a>
+<span class="sourceLineNo">6969</span>    writeRequestsCount.add(mutations.size());<a name="line.6969"></a>
+<span class="sourceLineNo">6970</span>    MultiRowMutationProcessor proc = new MultiRowMutationProcessor(mutations, rowsToLock);<a name="line.6970"></a>
+<span class="sourceLineNo">6971</span>    processRowsWithLocks(proc, -1, nonceGroup, nonce);<a name="line.6971"></a>
+<span class="sourceLineNo">6972</span>  }<a name="line.6972"></a>
+<span class="sourceLineNo">6973</span><a name="line.6973"></a>
+<span class="sourceLineNo">6974</span>  /**<a name="line.6974"></a>
+<span class="sourceLineNo">6975</span>   * @return statistics about the current load of the region<a name="line.6975"></a>
+<span class="sourceLineNo">6976</span>   */<a name="line.6976"></a>
+<span class="sourceLineNo">6977</span>  public ClientProtos.RegionLoadStats getLoadStatistics() {<a name="line.6977"></a>
+<span class="sourceLineNo">6978</span>    if (!regionStatsEnabled) {<a name="line.6978"></a>
+<span class="sourceLineNo">6979</span>      return null;<a name="line.6979"></a>
+<span class="sourceLineNo">6980</span>    }<a name="line.6980"></a>
+<span class="sourceLineNo">6981</span>    ClientProtos.RegionLoadStats.Builder stats = ClientProtos.RegionLoadStats.newBuilder();<a name="line.6981"></a>
+<span class="sourceLineNo">6982</span>    stats.setMemstoreLoad((int) (Math.min(100, (this.memstoreDataSize.get() * 100) / this<a name="line.6982"></a>
+<span class="sourceLineNo">6983</span>        .memstoreFlushSize)));<a name="line.6983"></a>
+<span class="sourceLineNo">6984</span>    if (rsServices.getHeapMemoryManager() != null) {<a name="line.6984"></a>
+<span class="sourceLineNo">6985</span>      // the HeapMemoryManager uses -0.0 to signal a problem asking the

<TRUNCATED>