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 2018/08/31 14:47:31 UTC

[01/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 424d7e416 -> 74f60271d


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index a8cb7c4..8ec6dad 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -2831,5851 +2831,5852 @@
 <span class="sourceLineNo">2823</span>    status.setStatus(msg);<a name="line.2823"></a>
 <span class="sourceLineNo">2824</span><a name="line.2824"></a>
 <span class="sourceLineNo">2825</span>    if (rsServices != null &amp;&amp; rsServices.getMetrics() != null) {<a name="line.2825"></a>
-<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(time - startTime,<a name="line.2826"></a>
-<span class="sourceLineNo">2827</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2827"></a>
-<span class="sourceLineNo">2828</span>    }<a name="line.2828"></a>
-<span class="sourceLineNo">2829</span><a name="line.2829"></a>
-<span class="sourceLineNo">2830</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2830"></a>
-<span class="sourceLineNo">2831</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2831"></a>
-<span class="sourceLineNo">2832</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2832"></a>
-<span class="sourceLineNo">2833</span>  }<a name="line.2833"></a>
-<span class="sourceLineNo">2834</span><a name="line.2834"></a>
-<span class="sourceLineNo">2835</span>  /**<a name="line.2835"></a>
-<span class="sourceLineNo">2836</span>   * Method to safely get the next sequence number.<a name="line.2836"></a>
-<span class="sourceLineNo">2837</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2837"></a>
-<span class="sourceLineNo">2838</span>   * @throws IOException<a name="line.2838"></a>
-<span class="sourceLineNo">2839</span>   */<a name="line.2839"></a>
-<span class="sourceLineNo">2840</span>  @VisibleForTesting<a name="line.2840"></a>
-<span class="sourceLineNo">2841</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2841"></a>
-<span class="sourceLineNo">2842</span>    WriteEntry we = mvcc.begin();<a name="line.2842"></a>
-<span class="sourceLineNo">2843</span>    mvcc.completeAndWait(we);<a name="line.2843"></a>
-<span class="sourceLineNo">2844</span>    return we.getWriteNumber();<a name="line.2844"></a>
-<span class="sourceLineNo">2845</span>  }<a name="line.2845"></a>
-<span class="sourceLineNo">2846</span><a name="line.2846"></a>
-<span class="sourceLineNo">2847</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2847"></a>
-<span class="sourceLineNo">2848</span>  // get() methods for client use.<a name="line.2848"></a>
-<span class="sourceLineNo">2849</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2849"></a>
-<span class="sourceLineNo">2850</span><a name="line.2850"></a>
-<span class="sourceLineNo">2851</span>  @Override<a name="line.2851"></a>
-<span class="sourceLineNo">2852</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2852"></a>
-<span class="sourceLineNo">2853</span>   return getScanner(scan, null);<a name="line.2853"></a>
-<span class="sourceLineNo">2854</span>  }<a name="line.2854"></a>
-<span class="sourceLineNo">2855</span><a name="line.2855"></a>
-<span class="sourceLineNo">2856</span>  @Override<a name="line.2856"></a>
-<span class="sourceLineNo">2857</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2857"></a>
-<span class="sourceLineNo">2858</span>      throws IOException {<a name="line.2858"></a>
-<span class="sourceLineNo">2859</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2859"></a>
-<span class="sourceLineNo">2860</span>  }<a name="line.2860"></a>
-<span class="sourceLineNo">2861</span><a name="line.2861"></a>
-<span class="sourceLineNo">2862</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2862"></a>
-<span class="sourceLineNo">2863</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2863"></a>
-<span class="sourceLineNo">2864</span>    startRegionOperation(Operation.SCAN);<a name="line.2864"></a>
-<span class="sourceLineNo">2865</span>    try {<a name="line.2865"></a>
-<span class="sourceLineNo">2866</span>      // Verify families are all valid<a name="line.2866"></a>
-<span class="sourceLineNo">2867</span>      if (!scan.hasFamilies()) {<a name="line.2867"></a>
-<span class="sourceLineNo">2868</span>        // Adding all families to scanner<a name="line.2868"></a>
-<span class="sourceLineNo">2869</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2869"></a>
-<span class="sourceLineNo">2870</span>          scan.addFamily(family);<a name="line.2870"></a>
-<span class="sourceLineNo">2871</span>        }<a name="line.2871"></a>
-<span class="sourceLineNo">2872</span>      } else {<a name="line.2872"></a>
-<span class="sourceLineNo">2873</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2873"></a>
-<span class="sourceLineNo">2874</span>          checkFamily(family);<a name="line.2874"></a>
-<span class="sourceLineNo">2875</span>        }<a name="line.2875"></a>
-<span class="sourceLineNo">2876</span>      }<a name="line.2876"></a>
-<span class="sourceLineNo">2877</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2877"></a>
-<span class="sourceLineNo">2878</span>    } finally {<a name="line.2878"></a>
-<span class="sourceLineNo">2879</span>      closeRegionOperation(Operation.SCAN);<a name="line.2879"></a>
-<span class="sourceLineNo">2880</span>    }<a name="line.2880"></a>
-<span class="sourceLineNo">2881</span>  }<a name="line.2881"></a>
-<span class="sourceLineNo">2882</span><a name="line.2882"></a>
-<span class="sourceLineNo">2883</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2883"></a>
-<span class="sourceLineNo">2884</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2884"></a>
-<span class="sourceLineNo">2885</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2885"></a>
-<span class="sourceLineNo">2886</span>      HConstants.NO_NONCE);<a name="line.2886"></a>
-<span class="sourceLineNo">2887</span>  }<a name="line.2887"></a>
-<span class="sourceLineNo">2888</span><a name="line.2888"></a>
-<span class="sourceLineNo">2889</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2889"></a>
-<span class="sourceLineNo">2890</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2890"></a>
-<span class="sourceLineNo">2891</span>    if (scan.isReversed()) {<a name="line.2891"></a>
-<span class="sourceLineNo">2892</span>      if (scan.getFilter() != null) {<a name="line.2892"></a>
-<span class="sourceLineNo">2893</span>        scan.getFilter().setReversed(true);<a name="line.2893"></a>
-<span class="sourceLineNo">2894</span>      }<a name="line.2894"></a>
-<span class="sourceLineNo">2895</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2895"></a>
-<span class="sourceLineNo">2896</span>    }<a name="line.2896"></a>
-<span class="sourceLineNo">2897</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2897"></a>
-<span class="sourceLineNo">2898</span>  }<a name="line.2898"></a>
-<span class="sourceLineNo">2899</span><a name="line.2899"></a>
-<span class="sourceLineNo">2900</span>  /**<a name="line.2900"></a>
-<span class="sourceLineNo">2901</span>   * Prepare a delete for a row mutation processor<a name="line.2901"></a>
-<span class="sourceLineNo">2902</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2902"></a>
-<span class="sourceLineNo">2903</span>   * @throws IOException<a name="line.2903"></a>
-<span class="sourceLineNo">2904</span>   */<a name="line.2904"></a>
-<span class="sourceLineNo">2905</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2905"></a>
-<span class="sourceLineNo">2906</span>    // Check to see if this is a deleteRow insert<a name="line.2906"></a>
-<span class="sourceLineNo">2907</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2907"></a>
-<span class="sourceLineNo">2908</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2908"></a>
-<span class="sourceLineNo">2909</span>        // Don't eat the timestamp<a name="line.2909"></a>
-<span class="sourceLineNo">2910</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2910"></a>
-<span class="sourceLineNo">2911</span>      }<a name="line.2911"></a>
-<span class="sourceLineNo">2912</span>    } else {<a name="line.2912"></a>
-<span class="sourceLineNo">2913</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2913"></a>
-<span class="sourceLineNo">2914</span>        if(family == null) {<a name="line.2914"></a>
-<span class="sourceLineNo">2915</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2915"></a>
-<span class="sourceLineNo">2916</span>        }<a name="line.2916"></a>
-<span class="sourceLineNo">2917</span>        checkFamily(family);<a name="line.2917"></a>
-<span class="sourceLineNo">2918</span>      }<a name="line.2918"></a>
-<span class="sourceLineNo">2919</span>    }<a name="line.2919"></a>
-<span class="sourceLineNo">2920</span>  }<a name="line.2920"></a>
-<span class="sourceLineNo">2921</span><a name="line.2921"></a>
-<span class="sourceLineNo">2922</span>  @Override<a name="line.2922"></a>
-<span class="sourceLineNo">2923</span>  public void delete(Delete delete) throws IOException {<a name="line.2923"></a>
-<span class="sourceLineNo">2924</span>    checkReadOnly();<a name="line.2924"></a>
-<span class="sourceLineNo">2925</span>    checkResources();<a name="line.2925"></a>
-<span class="sourceLineNo">2926</span>    startRegionOperation(Operation.DELETE);<a name="line.2926"></a>
-<span class="sourceLineNo">2927</span>    try {<a name="line.2927"></a>
-<span class="sourceLineNo">2928</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2928"></a>
-<span class="sourceLineNo">2929</span>      doBatchMutate(delete);<a name="line.2929"></a>
-<span class="sourceLineNo">2930</span>    } finally {<a name="line.2930"></a>
-<span class="sourceLineNo">2931</span>      closeRegionOperation(Operation.DELETE);<a name="line.2931"></a>
-<span class="sourceLineNo">2932</span>    }<a name="line.2932"></a>
-<span class="sourceLineNo">2933</span>  }<a name="line.2933"></a>
-<span class="sourceLineNo">2934</span><a name="line.2934"></a>
-<span class="sourceLineNo">2935</span>  /**<a name="line.2935"></a>
-<span class="sourceLineNo">2936</span>   * Row needed by below method.<a name="line.2936"></a>
-<span class="sourceLineNo">2937</span>   */<a name="line.2937"></a>
-<span class="sourceLineNo">2938</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2938"></a>
-<span class="sourceLineNo">2939</span><a name="line.2939"></a>
-<span class="sourceLineNo">2940</span>  /**<a name="line.2940"></a>
-<span class="sourceLineNo">2941</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2941"></a>
-<span class="sourceLineNo">2942</span>   * @param familyMap map of family to edits for the given family.<a name="line.2942"></a>
-<span class="sourceLineNo">2943</span>   * @throws IOException<a name="line.2943"></a>
-<span class="sourceLineNo">2944</span>   */<a name="line.2944"></a>
-<span class="sourceLineNo">2945</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2945"></a>
-<span class="sourceLineNo">2946</span>      Durability durability) throws IOException {<a name="line.2946"></a>
-<span class="sourceLineNo">2947</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2947"></a>
-<span class="sourceLineNo">2948</span>    delete.setFamilyCellMap(familyMap);<a name="line.2948"></a>
-<span class="sourceLineNo">2949</span>    delete.setDurability(durability);<a name="line.2949"></a>
-<span class="sourceLineNo">2950</span>    doBatchMutate(delete);<a name="line.2950"></a>
-<span class="sourceLineNo">2951</span>  }<a name="line.2951"></a>
-<span class="sourceLineNo">2952</span><a name="line.2952"></a>
-<span class="sourceLineNo">2953</span>  /**<a name="line.2953"></a>
-<span class="sourceLineNo">2954</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2954"></a>
-<span class="sourceLineNo">2955</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2955"></a>
-<span class="sourceLineNo">2956</span>   * @param mutation<a name="line.2956"></a>
-<span class="sourceLineNo">2957</span>   * @param familyMap<a name="line.2957"></a>
-<span class="sourceLineNo">2958</span>   * @param byteNow<a name="line.2958"></a>
-<span class="sourceLineNo">2959</span>   * @throws IOException<a name="line.2959"></a>
-<span class="sourceLineNo">2960</span>   */<a name="line.2960"></a>
-<span class="sourceLineNo">2961</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2961"></a>
-<span class="sourceLineNo">2962</span>      byte[] byteNow) throws IOException {<a name="line.2962"></a>
-<span class="sourceLineNo">2963</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2963"></a>
-<span class="sourceLineNo">2964</span><a name="line.2964"></a>
-<span class="sourceLineNo">2965</span>      byte[] family = e.getKey();<a name="line.2965"></a>
-<span class="sourceLineNo">2966</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2966"></a>
-<span class="sourceLineNo">2967</span>      assert cells instanceof RandomAccess;<a name="line.2967"></a>
-<span class="sourceLineNo">2968</span><a name="line.2968"></a>
-<span class="sourceLineNo">2969</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2969"></a>
-<span class="sourceLineNo">2970</span>      int listSize = cells.size();<a name="line.2970"></a>
-<span class="sourceLineNo">2971</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2971"></a>
-<span class="sourceLineNo">2972</span>        Cell cell = cells.get(i);<a name="line.2972"></a>
-<span class="sourceLineNo">2973</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2973"></a>
-<span class="sourceLineNo">2974</span>        //  This is expensive.<a name="line.2974"></a>
-<span class="sourceLineNo">2975</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2975"></a>
-<span class="sourceLineNo">2976</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2976"></a>
-<span class="sourceLineNo">2977</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2977"></a>
-<span class="sourceLineNo">2978</span><a name="line.2978"></a>
-<span class="sourceLineNo">2979</span>          Integer count = kvCount.get(qual);<a name="line.2979"></a>
-<span class="sourceLineNo">2980</span>          if (count == null) {<a name="line.2980"></a>
-<span class="sourceLineNo">2981</span>            kvCount.put(qual, 1);<a name="line.2981"></a>
-<span class="sourceLineNo">2982</span>          } else {<a name="line.2982"></a>
-<span class="sourceLineNo">2983</span>            kvCount.put(qual, count + 1);<a name="line.2983"></a>
-<span class="sourceLineNo">2984</span>          }<a name="line.2984"></a>
-<span class="sourceLineNo">2985</span>          count = kvCount.get(qual);<a name="line.2985"></a>
-<span class="sourceLineNo">2986</span><a name="line.2986"></a>
-<span class="sourceLineNo">2987</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2987"></a>
-<span class="sourceLineNo">2988</span>          get.setMaxVersions(count);<a name="line.2988"></a>
-<span class="sourceLineNo">2989</span>          get.addColumn(family, qual);<a name="line.2989"></a>
-<span class="sourceLineNo">2990</span>          if (coprocessorHost != null) {<a name="line.2990"></a>
-<span class="sourceLineNo">2991</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2991"></a>
-<span class="sourceLineNo">2992</span>                byteNow, get)) {<a name="line.2992"></a>
-<span class="sourceLineNo">2993</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2993"></a>
-<span class="sourceLineNo">2994</span>            }<a name="line.2994"></a>
-<span class="sourceLineNo">2995</span>          } else {<a name="line.2995"></a>
-<span class="sourceLineNo">2996</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2996"></a>
-<span class="sourceLineNo">2997</span>          }<a name="line.2997"></a>
-<span class="sourceLineNo">2998</span>        } else {<a name="line.2998"></a>
-<span class="sourceLineNo">2999</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.2999"></a>
-<span class="sourceLineNo">3000</span>        }<a name="line.3000"></a>
-<span class="sourceLineNo">3001</span>      }<a name="line.3001"></a>
-<span class="sourceLineNo">3002</span>    }<a name="line.3002"></a>
-<span class="sourceLineNo">3003</span>  }<a name="line.3003"></a>
-<span class="sourceLineNo">3004</span><a name="line.3004"></a>
-<span class="sourceLineNo">3005</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3005"></a>
-<span class="sourceLineNo">3006</span>      throws IOException {<a name="line.3006"></a>
-<span class="sourceLineNo">3007</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3007"></a>
-<span class="sourceLineNo">3008</span><a name="line.3008"></a>
-<span class="sourceLineNo">3009</span>    if (result.size() &lt; count) {<a name="line.3009"></a>
-<span class="sourceLineNo">3010</span>      // Nothing to delete<a name="line.3010"></a>
-<span class="sourceLineNo">3011</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3011"></a>
-<span class="sourceLineNo">3012</span>      return;<a name="line.3012"></a>
-<span class="sourceLineNo">3013</span>    }<a name="line.3013"></a>
-<span class="sourceLineNo">3014</span>    if (result.size() &gt; count) {<a name="line.3014"></a>
-<span class="sourceLineNo">3015</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3015"></a>
-<span class="sourceLineNo">3016</span>    }<a name="line.3016"></a>
-<span class="sourceLineNo">3017</span>    Cell getCell = result.get(count - 1);<a name="line.3017"></a>
-<span class="sourceLineNo">3018</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3018"></a>
-<span class="sourceLineNo">3019</span>  }<a name="line.3019"></a>
-<span class="sourceLineNo">3020</span><a name="line.3020"></a>
-<span class="sourceLineNo">3021</span>  @Override<a name="line.3021"></a>
-<span class="sourceLineNo">3022</span>  public void put(Put put) throws IOException {<a name="line.3022"></a>
-<span class="sourceLineNo">3023</span>    checkReadOnly();<a name="line.3023"></a>
-<span class="sourceLineNo">3024</span><a name="line.3024"></a>
-<span class="sourceLineNo">3025</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3025"></a>
-<span class="sourceLineNo">3026</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3026"></a>
-<span class="sourceLineNo">3027</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3027"></a>
-<span class="sourceLineNo">3028</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3028"></a>
-<span class="sourceLineNo">3029</span>    checkResources();<a name="line.3029"></a>
-<span class="sourceLineNo">3030</span>    startRegionOperation(Operation.PUT);<a name="line.3030"></a>
-<span class="sourceLineNo">3031</span>    try {<a name="line.3031"></a>
-<span class="sourceLineNo">3032</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3032"></a>
-<span class="sourceLineNo">3033</span>      doBatchMutate(put);<a name="line.3033"></a>
-<span class="sourceLineNo">3034</span>    } finally {<a name="line.3034"></a>
-<span class="sourceLineNo">3035</span>      closeRegionOperation(Operation.PUT);<a name="line.3035"></a>
-<span class="sourceLineNo">3036</span>    }<a name="line.3036"></a>
-<span class="sourceLineNo">3037</span>  }<a name="line.3037"></a>
-<span class="sourceLineNo">3038</span><a name="line.3038"></a>
-<span class="sourceLineNo">3039</span>  /**<a name="line.3039"></a>
-<span class="sourceLineNo">3040</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3040"></a>
-<span class="sourceLineNo">3041</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3041"></a>
-<span class="sourceLineNo">3042</span>   * mini-batches for processing.<a name="line.3042"></a>
-<span class="sourceLineNo">3043</span>   */<a name="line.3043"></a>
-<span class="sourceLineNo">3044</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3044"></a>
-<span class="sourceLineNo">3045</span>    protected final T[] operations;<a name="line.3045"></a>
-<span class="sourceLineNo">3046</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3046"></a>
-<span class="sourceLineNo">3047</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3047"></a>
-<span class="sourceLineNo">3048</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3048"></a>
-<span class="sourceLineNo">3049</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3049"></a>
-<span class="sourceLineNo">3050</span><a name="line.3050"></a>
-<span class="sourceLineNo">3051</span>    protected final HRegion region;<a name="line.3051"></a>
-<span class="sourceLineNo">3052</span>    protected int nextIndexToProcess = 0;<a name="line.3052"></a>
-<span class="sourceLineNo">3053</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3053"></a>
-<span class="sourceLineNo">3054</span>    //Durability of the batch (highest durability of all operations)<a name="line.3054"></a>
-<span class="sourceLineNo">3055</span>    protected Durability durability;<a name="line.3055"></a>
-<span class="sourceLineNo">3056</span>    protected boolean atomic = false;<a name="line.3056"></a>
-<span class="sourceLineNo">3057</span><a name="line.3057"></a>
-<span class="sourceLineNo">3058</span>    public BatchOperation(final HRegion region, T[] operations) {<a name="line.3058"></a>
-<span class="sourceLineNo">3059</span>      this.operations = operations;<a name="line.3059"></a>
-<span class="sourceLineNo">3060</span>      this.retCodeDetails = new OperationStatus[operations.length];<a name="line.3060"></a>
-<span class="sourceLineNo">3061</span>      Arrays.fill(this.retCodeDetails, OperationStatus.NOT_RUN);<a name="line.3061"></a>
-<span class="sourceLineNo">3062</span>      this.walEditsFromCoprocessors = new WALEdit[operations.length];<a name="line.3062"></a>
-<span class="sourceLineNo">3063</span>      familyCellMaps = new Map[operations.length];<a name="line.3063"></a>
-<span class="sourceLineNo">3064</span><a name="line.3064"></a>
-<span class="sourceLineNo">3065</span>      this.region = region;<a name="line.3065"></a>
-<span class="sourceLineNo">3066</span>      observedExceptions = new ObservedExceptionsInBatch();<a name="line.3066"></a>
-<span class="sourceLineNo">3067</span>      durability = Durability.USE_DEFAULT;<a name="line.3067"></a>
-<span class="sourceLineNo">3068</span>    }<a name="line.3068"></a>
-<span class="sourceLineNo">3069</span><a name="line.3069"></a>
-<span class="sourceLineNo">3070</span>    /**<a name="line.3070"></a>
-<span class="sourceLineNo">3071</span>     * Visitor interface for batch operations<a name="line.3071"></a>
-<span class="sourceLineNo">3072</span>     */<a name="line.3072"></a>
-<span class="sourceLineNo">3073</span>    @FunctionalInterface<a name="line.3073"></a>
-<span class="sourceLineNo">3074</span>    public interface Visitor {<a name="line.3074"></a>
-<span class="sourceLineNo">3075</span>      /**<a name="line.3075"></a>
-<span class="sourceLineNo">3076</span>       * @param index operation index<a name="line.3076"></a>
-<span class="sourceLineNo">3077</span>       * @return If true continue visiting remaining entries, break otherwise<a name="line.3077"></a>
-<span class="sourceLineNo">3078</span>       */<a name="line.3078"></a>
-<span class="sourceLineNo">3079</span>      boolean visit(int index) throws IOException;<a name="line.3079"></a>
-<span class="sourceLineNo">3080</span>    }<a name="line.3080"></a>
-<span class="sourceLineNo">3081</span><a name="line.3081"></a>
-<span class="sourceLineNo">3082</span>    /**<a name="line.3082"></a>
-<span class="sourceLineNo">3083</span>     * Helper method for visiting pending/ all batch operations<a name="line.3083"></a>
-<span class="sourceLineNo">3084</span>     */<a name="line.3084"></a>
-<span class="sourceLineNo">3085</span>    public void visitBatchOperations(boolean pendingOnly, int lastIndexExclusive, Visitor visitor)<a name="line.3085"></a>
-<span class="sourceLineNo">3086</span>        throws IOException {<a name="line.3086"></a>
-<span class="sourceLineNo">3087</span>      assert lastIndexExclusive &lt;= this.size();<a name="line.3087"></a>
-<span class="sourceLineNo">3088</span>      for (int i = nextIndexToProcess; i &lt; lastIndexExclusive; i++) {<a name="line.3088"></a>
-<span class="sourceLineNo">3089</span>        if (!pendingOnly || isOperationPending(i)) {<a name="line.3089"></a>
-<span class="sourceLineNo">3090</span>          if (!visitor.visit(i)) {<a name="line.3090"></a>
-<span class="sourceLineNo">3091</span>            break;<a name="line.3091"></a>
-<span class="sourceLineNo">3092</span>          }<a name="line.3092"></a>
-<span class="sourceLineNo">3093</span>        }<a name="line.3093"></a>
-<span class="sourceLineNo">3094</span>      }<a name="line.3094"></a>
-<span class="sourceLineNo">3095</span>    }<a name="line.3095"></a>
-<span class="sourceLineNo">3096</span><a name="line.3096"></a>
-<span class="sourceLineNo">3097</span>    public abstract Mutation getMutation(int index);<a name="line.3097"></a>
-<span class="sourceLineNo">3098</span><a name="line.3098"></a>
-<span class="sourceLineNo">3099</span>    public abstract long getNonceGroup(int index);<a name="line.3099"></a>
-<span class="sourceLineNo">3100</span><a name="line.3100"></a>
-<span class="sourceLineNo">3101</span>    public abstract long getNonce(int index);<a name="line.3101"></a>
-<span class="sourceLineNo">3102</span><a name="line.3102"></a>
-<span class="sourceLineNo">3103</span>    /**<a name="line.3103"></a>
-<span class="sourceLineNo">3104</span>     * This method is potentially expensive and useful mostly for non-replay CP path.<a name="line.3104"></a>
-<span class="sourceLineNo">3105</span>     */<a name="line.3105"></a>
-<span class="sourceLineNo">3106</span>    public abstract Mutation[] getMutationsForCoprocs();<a name="line.3106"></a>
-<span class="sourceLineNo">3107</span><a name="line.3107"></a>
-<span class="sourceLineNo">3108</span>    public abstract boolean isInReplay();<a name="line.3108"></a>
-<span class="sourceLineNo">3109</span><a name="line.3109"></a>
-<span class="sourceLineNo">3110</span>    public abstract long getOrigLogSeqNum();<a name="line.3110"></a>
-<span class="sourceLineNo">3111</span><a name="line.3111"></a>
-<span class="sourceLineNo">3112</span>    public abstract void startRegionOperation() throws IOException;<a name="line.3112"></a>
-<span class="sourceLineNo">3113</span><a name="line.3113"></a>
-<span class="sourceLineNo">3114</span>    public abstract void closeRegionOperation() throws IOException;<a name="line.3114"></a>
-<span class="sourceLineNo">3115</span><a name="line.3115"></a>
-<span class="sourceLineNo">3116</span>    /**<a name="line.3116"></a>
-<span class="sourceLineNo">3117</span>     * Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs<a name="line.3117"></a>
-<span class="sourceLineNo">3118</span>     * CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on<a name="line.3118"></a>
-<span class="sourceLineNo">3119</span>     * entire batch and will be called from outside of class to check and prepare batch. This can<a name="line.3119"></a>
-<span class="sourceLineNo">3120</span>     * be implemented by calling helper method {@link #checkAndPrepareMutation(int, long)} in a<a name="line.3120"></a>
-<span class="sourceLineNo">3121</span>     * 'for' loop over mutations.<a name="line.3121"></a>
-<span class="sourceLineNo">3122</span>     */<a name="line.3122"></a>
-<span class="sourceLineNo">3123</span>    public abstract void checkAndPrepare() throws IOException;<a name="line.3123"></a>
-<span class="sourceLineNo">3124</span><a name="line.3124"></a>
-<span class="sourceLineNo">3125</span>    /**<a name="line.3125"></a>
-<span class="sourceLineNo">3126</span>     * Implement any Put request specific check and prepare logic here. Please refer to<a name="line.3126"></a>
-<span class="sourceLineNo">3127</span>     * {@link #checkAndPrepareMutation(Mutation, long)} for how its used.<a name="line.3127"></a>
-<span class="sourceLineNo">3128</span>     */<a name="line.3128"></a>
-<span class="sourceLineNo">3129</span>    protected abstract void checkAndPreparePut(final Put p) throws IOException;<a name="line.3129"></a>
-<span class="sourceLineNo">3130</span><a name="line.3130"></a>
-<span class="sourceLineNo">3131</span>    /**<a name="line.3131"></a>
-<span class="sourceLineNo">3132</span>     * If necessary, calls preBatchMutate() CP hook for a mini-batch and updates metrics, cell<a name="line.3132"></a>
-<span class="sourceLineNo">3133</span>     * count, tags and timestamp for all cells of all operations in a mini-batch.<a name="line.3133"></a>
-<span class="sourceLineNo">3134</span>     */<a name="line.3134"></a>
-<span class="sourceLineNo">3135</span>    public abstract void prepareMiniBatchOperations(MiniBatchOperationInProgress&lt;Mutation&gt;<a name="line.3135"></a>
-<span class="sourceLineNo">3136</span>        miniBatchOp, long timestamp, final List&lt;RowLock&gt; acquiredRowLocks) throws IOException;<a name="line.3136"></a>
-<span class="sourceLineNo">3137</span><a name="line.3137"></a>
-<span class="sourceLineNo">3138</span>    /**<a name="line.3138"></a>
-<span class="sourceLineNo">3139</span>     * Write mini-batch operations to MemStore<a name="line.3139"></a>
-<span class="sourceLineNo">3140</span>     */<a name="line.3140"></a>
-<span class="sourceLineNo">3141</span>    public abstract WriteEntry writeMiniBatchOperationsToMemStore(<a name="line.3141"></a>
-<span class="sourceLineNo">3142</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3142"></a>
-<span class="sourceLineNo">3143</span>        throws IOException;<a name="line.3143"></a>
-<span class="sourceLineNo">3144</span><a name="line.3144"></a>
-<span class="sourceLineNo">3145</span>    protected void writeMiniBatchOperationsToMemStore(<a name="line.3145"></a>
-<span class="sourceLineNo">3146</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final long writeNumber)<a name="line.3146"></a>
-<span class="sourceLineNo">3147</span>        throws IOException {<a name="line.3147"></a>
-<span class="sourceLineNo">3148</span>      MemStoreSizing memStoreAccounting = new NonThreadSafeMemStoreSizing();<a name="line.3148"></a>
-<span class="sourceLineNo">3149</span>      visitBatchOperations(true, miniBatchOp.getLastIndexExclusive(), (int index) -&gt; {<a name="line.3149"></a>
-<span class="sourceLineNo">3150</span>        // We need to update the sequence id for following reasons.<a name="line.3150"></a>
-<span class="sourceLineNo">3151</span>        // 1) If the op is in replay mode, FSWALEntry#stampRegionSequenceId won't stamp sequence id.<a name="line.3151"></a>
-<span class="sourceLineNo">3152</span>        // 2) If no WAL, FSWALEntry won't be used<a name="line.3152"></a>
-<span class="sourceLineNo">3153</span>        // we use durability of the original mutation for the mutation passed by CP.<a name="line.3153"></a>
-<span class="sourceLineNo">3154</span>        if (isInReplay() || getMutation(index).getDurability() == Durability.SKIP_WAL) {<a name="line.3154"></a>
-<span class="sourceLineNo">3155</span>          region.updateSequenceId(familyCellMaps[index].values(), writeNumber);<a name="line.3155"></a>
-<span class="sourceLineNo">3156</span>        }<a name="line.3156"></a>
-<span class="sourceLineNo">3157</span>        applyFamilyMapToMemStore(familyCellMaps[index], memStoreAccounting);<a name="line.3157"></a>
-<span class="sourceLineNo">3158</span>        return true;<a name="line.3158"></a>
-<span class="sourceLineNo">3159</span>      });<a name="line.3159"></a>
-<span class="sourceLineNo">3160</span>      // update memStore size<a name="line.3160"></a>
-<span class="sourceLineNo">3161</span>      region.incMemStoreSize(memStoreAccounting.getDataSize(), memStoreAccounting.getHeapSize(),<a name="line.3161"></a>
-<span class="sourceLineNo">3162</span>          memStoreAccounting.getOffHeapSize());<a name="line.3162"></a>
-<span class="sourceLineNo">3163</span>    }<a name="line.3163"></a>
-<span class="sourceLineNo">3164</span><a name="line.3164"></a>
-<span class="sourceLineNo">3165</span>    public boolean isDone() {<a name="line.3165"></a>
-<span class="sourceLineNo">3166</span>      return nextIndexToProcess == operations.length;<a name="line.3166"></a>
-<span class="sourceLineNo">3167</span>    }<a name="line.3167"></a>
-<span class="sourceLineNo">3168</span><a name="line.3168"></a>
-<span class="sourceLineNo">3169</span>    public int size() {<a name="line.3169"></a>
-<span class="sourceLineNo">3170</span>      return operations.length;<a name="line.3170"></a>
-<span class="sourceLineNo">3171</span>    }<a name="line.3171"></a>
-<span class="sourceLineNo">3172</span><a name="line.3172"></a>
-<span class="sourceLineNo">3173</span>    public boolean isOperationPending(int index) {<a name="line.3173"></a>
-<span class="sourceLineNo">3174</span>      return retCodeDetails[index].getOperationStatusCode() == OperationStatusCode.NOT_RUN;<a name="line.3174"></a>
-<span class="sourceLineNo">3175</span>    }<a name="line.3175"></a>
-<span class="sourceLineNo">3176</span><a name="line.3176"></a>
-<span class="sourceLineNo">3177</span>    public List&lt;UUID&gt; getClusterIds() {<a name="line.3177"></a>
-<span class="sourceLineNo">3178</span>      assert size() != 0;<a name="line.3178"></a>
-<span class="sourceLineNo">3179</span>      return getMutation(0).getClusterIds();<a name="line.3179"></a>
-<span class="sourceLineNo">3180</span>    }<a name="line.3180"></a>
-<span class="sourceLineNo">3181</span><a name="line.3181"></a>
-<span class="sourceLineNo">3182</span>    boolean isAtomic() {<a name="line.3182"></a>
-<span class="sourceLineNo">3183</span>      return atomic;<a name="line.3183"></a>
-<span class="sourceLineNo">3184</span>    }<a name="line.3184"></a>
-<span class="sourceLineNo">3185</span><a name="line.3185"></a>
-<span class="sourceLineNo">3186</span>    /**<a name="line.3186"></a>
-<span class="sourceLineNo">3187</span>     * Helper method that checks and prepares only one mutation. This can be used to implement<a name="line.3187"></a>
-<span class="sourceLineNo">3188</span>     * {@link #checkAndPrepare()} for entire Batch.<a name="line.3188"></a>
-<span class="sourceLineNo">3189</span>     * NOTE: As CP prePut()/ preDelete() hooks may modify mutations, this method should be called<a name="line.3189"></a>
-<span class="sourceLineNo">3190</span>     * after prePut()/ preDelete() CP hooks are run for the mutation<a name="line.3190"></a>
-<span class="sourceLineNo">3191</span>     */<a name="line.3191"></a>
-<span class="sourceLineNo">3192</span>    protected void checkAndPrepareMutation(Mutation mutation, final long timestamp)<a name="line.3192"></a>
-<span class="sourceLineNo">3193</span>        throws IOException {<a name="line.3193"></a>
-<span class="sourceLineNo">3194</span>      region.checkRow(mutation.getRow(), "batchMutate");<a name="line.3194"></a>
-<span class="sourceLineNo">3195</span>      if (mutation instanceof Put) {<a name="line.3195"></a>
-<span class="sourceLineNo">3196</span>        // Check the families in the put. If bad, skip this one.<a name="line.3196"></a>
-<span class="sourceLineNo">3197</span>        checkAndPreparePut((Put) mutation);<a name="line.3197"></a>
-<span class="sourceLineNo">3198</span>        region.checkTimestamps(mutation.getFamilyCellMap(), timestamp);<a name="line.3198"></a>
-<span class="sourceLineNo">3199</span>      } else {<a name="line.3199"></a>
-<span class="sourceLineNo">3200</span>        region.prepareDelete((Delete) mutation);<a name="line.3200"></a>
-<span class="sourceLineNo">3201</span>      }<a name="line.3201"></a>
-<span class="sourceLineNo">3202</span>    }<a name="line.3202"></a>
-<span class="sourceLineNo">3203</span><a name="line.3203"></a>
-<span class="sourceLineNo">3204</span>    protected void checkAndPrepareMutation(int index, long timestamp) throws IOException {<a name="line.3204"></a>
-<span class="sourceLineNo">3205</span>      Mutation mutation = getMutation(index);<a name="line.3205"></a>
-<span class="sourceLineNo">3206</span>      try {<a name="line.3206"></a>
-<span class="sourceLineNo">3207</span>        this.checkAndPrepareMutation(mutation, timestamp);<a name="line.3207"></a>
-<span class="sourceLineNo">3208</span><a name="line.3208"></a>
-<span class="sourceLineNo">3209</span>        // store the family map reference to allow for mutations<a name="line.3209"></a>
-<span class="sourceLineNo">3210</span>        familyCellMaps[index] = mutation.getFamilyCellMap();<a name="line.3210"></a>
-<span class="sourceLineNo">3211</span>        // store durability for the batch (highest durability of all operations in the batch)<a name="line.3211"></a>
-<span class="sourceLineNo">3212</span>        Durability tmpDur = region.getEffectiveDurability(mutation.getDurability());<a name="line.3212"></a>
-<span class="sourceLineNo">3213</span>        if (tmpDur.ordinal() &gt; durability.ordinal()) {<a name="line.3213"></a>
-<span class="sourceLineNo">3214</span>          durability = tmpDur;<a name="line.3214"></a>
-<span class="sourceLineNo">3215</span>        }<a name="line.3215"></a>
-<span class="sourceLineNo">3216</span>      } catch (NoSuchColumnFamilyException nscfe) {<a name="line.3216"></a>
-<span class="sourceLineNo">3217</span>        final String msg = "No such column family in batch mutation. ";<a name="line.3217"></a>
-<span class="sourceLineNo">3218</span>        if (observedExceptions.hasSeenNoSuchFamily()) {<a name="line.3218"></a>
-<span class="sourceLineNo">3219</span>          LOG.warn(msg + nscfe.getMessage());<a name="line.3219"></a>
-<span class="sourceLineNo">3220</span>        } else {<a name="line.3220"></a>
-<span class="sourceLineNo">3221</span>          LOG.warn(msg, nscfe);<a name="line.3221"></a>
-<span class="sourceLineNo">3222</span>          observedExceptions.sawNoSuchFamily();<a name="line.3222"></a>
-<span class="sourceLineNo">3223</span>        }<a name="line.3223"></a>
-<span class="sourceLineNo">3224</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3224"></a>
-<span class="sourceLineNo">3225</span>            OperationStatusCode.BAD_FAMILY, nscfe.getMessage());<a name="line.3225"></a>
-<span class="sourceLineNo">3226</span>        if (isAtomic()) { // fail, atomic means all or none<a name="line.3226"></a>
-<span class="sourceLineNo">3227</span>          throw nscfe;<a name="line.3227"></a>
-<span class="sourceLineNo">3228</span>        }<a name="line.3228"></a>
-<span class="sourceLineNo">3229</span>      } catch (FailedSanityCheckException fsce) {<a name="line.3229"></a>
-<span class="sourceLineNo">3230</span>        final String msg = "Batch Mutation did not pass sanity check. ";<a name="line.3230"></a>
-<span class="sourceLineNo">3231</span>        if (observedExceptions.hasSeenFailedSanityCheck()) {<a name="line.3231"></a>
-<span class="sourceLineNo">3232</span>          LOG.warn(msg + fsce.getMessage());<a name="line.3232"></a>
-<span class="sourceLineNo">3233</span>        } else {<a name="line.3233"></a>
-<span class="sourceLineNo">3234</span>          LOG.warn(msg, fsce);<a name="line.3234"></a>
-<span class="sourceLineNo">3235</span>          observedExceptions.sawFailedSanityCheck();<a name="line.3235"></a>
-<span class="sourceLineNo">3236</span>        }<a name="line.3236"></a>
-<span class="sourceLineNo">3237</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3237"></a>
-<span class="sourceLineNo">3238</span>            OperationStatusCode.SANITY_CHECK_FAILURE, fsce.getMessage());<a name="line.3238"></a>
-<span class="sourceLineNo">3239</span>        if (isAtomic()) {<a name="line.3239"></a>
-<span class="sourceLineNo">3240</span>          throw fsce;<a name="line.3240"></a>
-<span class="sourceLineNo">3241</span>        }<a name="line.3241"></a>
-<span class="sourceLineNo">3242</span>      } catch (WrongRegionException we) {<a name="line.3242"></a>
-<span class="sourceLineNo">3243</span>        final String msg = "Batch mutation had a row that does not belong to this region. ";<a name="line.3243"></a>
-<span class="sourceLineNo">3244</span>        if (observedExceptions.hasSeenWrongRegion()) {<a name="line.3244"></a>
-<span class="sourceLineNo">3245</span>          LOG.warn(msg + we.getMessage());<a name="line.3245"></a>
-<span class="sourceLineNo">3246</span>        } else {<a name="line.3246"></a>
-<span class="sourceLineNo">3247</span>          LOG.warn(msg, we);<a name="line.3247"></a>
-<span class="sourceLineNo">3248</span>          observedExceptions.sawWrongRegion();<a name="line.3248"></a>
-<span class="sourceLineNo">3249</span>        }<a name="line.3249"></a>
-<span class="sourceLineNo">3250</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3250"></a>
-<span class="sourceLineNo">3251</span>            OperationStatusCode.SANITY_CHECK_FAILURE, we.getMessage());<a name="line.3251"></a>
-<span class="sourceLineNo">3252</span>        if (isAtomic()) {<a name="line.3252"></a>
-<span class="sourceLineNo">3253</span>          throw we;<a name="line.3253"></a>
-<span class="sourceLineNo">3254</span>        }<a name="line.3254"></a>
-<span class="sourceLineNo">3255</span>      }<a name="line.3255"></a>
-<span class="sourceLineNo">3256</span>    }<a name="line.3256"></a>
-<span class="sourceLineNo">3257</span><a name="line.3257"></a>
-<span class="sourceLineNo">3258</span>    /**<a name="line.3258"></a>
-<span class="sourceLineNo">3259</span>     * Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which<a name="line.3259"></a>
-<span class="sourceLineNo">3260</span>     * a row lock can be acquired. All mutations with locked rows are considered to be<a name="line.3260"></a>
-<span class="sourceLineNo">3261</span>     * In-progress operations and hence the name {@link MiniBatchOperationInProgress}. Mini batch<a name="line.3261"></a>
-<span class="sourceLineNo">3262</span>     * is window over {@link BatchOperation} and contains contiguous pending operations.<a name="line.3262"></a>
-<span class="sourceLineNo">3263</span>     *<a name="line.3263"></a>
-<span class="sourceLineNo">3264</span>     * @param acquiredRowLocks keeps track of rowLocks acquired.<a name="line.3264"></a>
-<span class="sourceLineNo">3265</span>     */<a name="line.3265"></a>
-<span class="sourceLineNo">3266</span>    public MiniBatchOperationInProgress&lt;Mutation&gt; lockRowsAndBuildMiniBatch(<a name="line.3266"></a>
-<span class="sourceLineNo">3267</span>        List&lt;RowLock&gt; acquiredRowLocks) throws IOException {<a name="line.3267"></a>
-<span class="sourceLineNo">3268</span>      int readyToWriteCount = 0;<a name="line.3268"></a>
-<span class="sourceLineNo">3269</span>      int lastIndexExclusive = 0;<a name="line.3269"></a>
-<span class="sourceLineNo">3270</span>      RowLock prevRowLock = null;<a name="line.3270"></a>
-<span class="sourceLineNo">3271</span>      for (; lastIndexExclusive &lt; size(); lastIndexExclusive++) {<a name="line.3271"></a>
-<span class="sourceLineNo">3272</span>        // It reaches the miniBatchSize, stop here and process the miniBatch<a name="line.3272"></a>
-<span class="sourceLineNo">3273</span>        // This only applies to non-atomic batch operations.<a name="line.3273"></a>
-<span class="sourceLineNo">3274</span>        if (!isAtomic() &amp;&amp; (readyToWriteCount == region.miniBatchSize)) {<a name="line.3274"></a>
-<span class="sourceLineNo">3275</span>          break;<a name="line.3275"></a>
-<span class="sourceLineNo">3276</span>        }<a name="line.3276"></a>
-<span class="sourceLineNo">3277</span><a name="line.3277"></a>
-<span class="sourceLineNo">3278</span>        if (!isOperationPending(lastIndexExclusive)) {<a name="line.3278"></a>
-<span class="sourceLineNo">3279</span>          continue;<a name="line.3279"></a>
-<span class="sourceLineNo">3280</span>        }<a name="line.3280"></a>
-<span class="sourceLineNo">3281</span><a name="line.3281"></a>
-<span class="sourceLineNo">3282</span>        // HBASE-19389 Limit concurrency of put with dense (hundreds) columns to avoid exhausting<a name="line.3282"></a>
-<span class="sourceLineNo">3283</span>        // RS handlers, covering both MutationBatchOperation and ReplayBatchOperation<a name="line.3283"></a>
-<span class="sourceLineNo">3284</span>        // The BAD_FAMILY/SANITY_CHECK_FAILURE cases are handled in checkAndPrepare phase and won't<a name="line.3284"></a>
-<span class="sourceLineNo">3285</span>        // pass the isOperationPending check<a name="line.3285"></a>
-<span class="sourceLineNo">3286</span>        Map&lt;byte[], List&lt;Cell&gt;&gt; curFamilyCellMap =<a name="line.3286"></a>
-<span class="sourceLineNo">3287</span>            getMutation(lastIndexExclusive).getFamilyCellMap();<a name="line.3287"></a>
-<span class="sourceLineNo">3288</span>        try {<a name="line.3288"></a>
-<span class="sourceLineNo">3289</span>          // start the protector before acquiring row lock considering performance, and will finish<a name="line.3289"></a>
-<span class="sourceLineNo">3290</span>          // it when encountering exception<a name="line.3290"></a>
-<span class="sourceLineNo">3291</span>          region.storeHotnessProtector.start(curFamilyCellMap);<a name="line.3291"></a>
-<span class="sourceLineNo">3292</span>        } catch (RegionTooBusyException rtbe) {<a name="line.3292"></a>
-<span class="sourceLineNo">3293</span>          region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3293"></a>
-<span class="sourceLineNo">3294</span>          if (isAtomic()) {<a name="line.3294"></a>
-<span class="sourceLineNo">3295</span>            throw rtbe;<a name="line.3295"></a>
-<span class="sourceLineNo">3296</span>          }<a name="line.3296"></a>
-<span class="sourceLineNo">3297</span>          retCodeDetails[lastIndexExclusive] =<a name="line.3297"></a>
-<span class="sourceLineNo">3298</span>              new OperationStatus(OperationStatusCode.STORE_TOO_BUSY, rtbe.getMessage());<a name="line.3298"></a>
-<span class="sourceLineNo">3299</span>          continue;<a name="line.3299"></a>
-<span class="sourceLineNo">3300</span>        }<a name="line.3300"></a>
-<span class="sourceLineNo">3301</span><a name="line.3301"></a>
-<span class="sourceLineNo">3302</span>        Mutation mutation = getMutation(lastIndexExclusive);<a name="line.3302"></a>
-<span class="sourceLineNo">3303</span>        // If we haven't got any rows in our batch, we should block to get the next one.<a name="line.3303"></a>
-<span class="sourceLineNo">3304</span>        RowLock rowLock = null;<a name="line.3304"></a>
-<span class="sourceLineNo">3305</span>        boolean throwException = false;<a name="line.3305"></a>
-<span class="sourceLineNo">3306</span>        try {<a name="line.3306"></a>
-<span class="sourceLineNo">3307</span>          // if atomic then get exclusive lock, else shared lock<a name="line.3307"></a>
-<span class="sourceLineNo">3308</span>          rowLock = region.getRowLockInternal(mutation.getRow(), !isAtomic(), prevRowLock);<a name="line.3308"></a>
-<span class="sourceLineNo">3309</span>        } catch (TimeoutIOException | InterruptedIOException e) {<a name="line.3309"></a>
-<span class="sourceLineNo">3310</span>          // NOTE: We will retry when other exceptions, but we should stop if we receive<a name="line.3310"></a>
-<span class="sourceLineNo">3311</span>          // TimeoutIOException or InterruptedIOException as operation has timed out or<a name="line.3311"></a>
-<span class="sourceLineNo">3312</span>          // interrupted respectively.<a name="line.3312"></a>
-<span class="sourceLineNo">3313</span>          throwException = true;<a name="line.3313"></a>
-<span class="sourceLineNo">3314</span>          throw e;<a name="line.3314"></a>
-<span class="sourceLineNo">3315</span>        } catch (IOException ioe) {<a name="line.3315"></a>
-<span class="sourceLineNo">3316</span>          LOG.warn("Failed getting lock, row=" + Bytes.toStringBinary(mutation.getRow()), ioe);<a name="line.3316"></a>
-<span class="sourceLineNo">3317</span>          if (isAtomic()) { // fail, atomic means all or none<a name="line.3317"></a>
-<span class="sourceLineNo">3318</span>            throwException = true;<a name="line.3318"></a>
-<span class="sourceLineNo">3319</span>            throw ioe;<a name="line.3319"></a>
-<span class="sourceLineNo">3320</span>          }<a name="line.3320"></a>
-<span class="sourceLineNo">3321</span>        } catch (Throwable throwable) {<a name="line.3321"></a>
-<span class="sourceLineNo">3322</span>          throwException = true;<a name="line.3322"></a>
-<span class="sourceLineNo">3323</span>          throw throwable;<a name="line.3323"></a>
-<span class="sourceLineNo">3324</span>        } finally {<a name="line.3324"></a>
-<span class="sourceLineNo">3325</span>          if (throwException) {<a name="line.3325"></a>
-<span class="sourceLineNo">3326</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3326"></a>
-<span class="sourceLineNo">3327</span>          }<a name="line.3327"></a>
-<span class="sourceLineNo">3328</span>        }<a name="line.3328"></a>
-<span class="sourceLineNo">3329</span>        if (rowLock == null) {<a name="line.3329"></a>
-<span class="sourceLineNo">3330</span>          // We failed to grab another lock<a name="line.3330"></a>
-<span class="sourceLineNo">3331</span>          if (isAtomic()) {<a name="line.3331"></a>
-<span class="sourceLineNo">3332</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3332"></a>
-<span class="sourceLineNo">3333</span>            throw new IOException("Can't apply all operations atomically!");<a name="line.3333"></a>
-<span class="sourceLineNo">3334</span>          }<a name="line.3334"></a>
-<span class="sourceLineNo">3335</span>          break; // Stop acquiring more rows for this batch<a name="line.3335"></a>
-<span class="sourceLineNo">3336</span>        } else {<a name="line.3336"></a>
-<span class="sourceLineNo">3337</span>          if (rowLock != prevRowLock) {<a name="line.3337"></a>
-<span class="sourceLineNo">3338</span>            // It is a different row now, add this to the acquiredRowLocks and<a name="line.3338"></a>
-<span class="sourceLineNo">3339</span>            // set prevRowLock to the new returned rowLock<a name="line.3339"></a>
-<span class="sourceLineNo">3340</span>            acquiredRowLocks.add(rowLock);<a name="line.3340"></a>
-<span class="sourceLineNo">3341</span>            prevRowLock = rowLock;<a name="line.3341"></a>
-<span class="sourceLineNo">3342</span>          }<a name="line.3342"></a>
-<span class="sourceLineNo">3343</span>        }<a name="line.3343"></a>
-<span class="sourceLineNo">3344</span><a name="line.3344"></a>
-<span class="sourceLineNo">3345</span>        readyToWriteCount++;<a name="line.3345"></a>
-<span class="sourceLineNo">3346</span>      }<a name="line.3346"></a>
-<span class="sourceLineNo">3347</span>      return createMiniBatch(lastIndexExclusive, readyToWriteCount);<a name="line.3347"></a>
-<span class="sourceLineNo">3348</span>    }<a name="line.3348"></a>
-<span class="sourceLineNo">3349</span><a name="line.3349"></a>
-<span class="sourceLineNo">3350</span>    protected MiniBatchOperationInProgress&lt;Mutation&gt; createMiniBatch(final int lastIndexExclusive,<a name="line.3350"></a>
-<span class="sourceLineNo">3351</span>        final int readyToWriteCount) {<a name="line.3351"></a>
-<span class="sourceLineNo">3352</span>      return new MiniBatchOperationInProgress&lt;&gt;(getMutationsForCoprocs(), retCodeDetails,<a name="line.3352"></a>
-<span class="sourceLineNo">3353</span>          walEditsFromCoprocessors, nextIndexToProcess, lastIndexExclusive, readyToWriteCount);<a name="line.3353"></a>
-<span class="sourceLineNo">3354</span>    }<a name="line.3354"></a>
-<span class="sourceLineNo">3355</span><a name="line.3355"></a>
-<span class="sourceLineNo">3356</span>    /**<a name="line.3356"></a>
-<span class="sourceLineNo">3357</span>     * Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are<a name="line.3357"></a>
-<span class="sourceLineNo">3358</span>     * present, they are merged to result WALEdit.<a name="line.3358"></a>
-<span class="sourceLineNo">3359</span>     */<a name="line.3359"></a>
-<span class="sourceLineNo">3360</span>    public List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; buildWALEdits(<a name="line.3360"></a>
-<span class="sourceLineNo">3361</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) throws IOException {<a name="line.3361"></a>
-<span class="sourceLineNo">3362</span>      List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; walEdits = new ArrayList&lt;&gt;();<a name="line.3362"></a>
-<span class="sourceLineNo">3363</span><a name="line.3363"></a>
-<span class="sourceLineNo">3364</span>      visitBatchOperations(true, nextIndexToProcess + miniBatchOp.size(), new Visitor() {<a name="line.3364"></a>
-<span class="sourceLineNo">3365</span>        private Pair&lt;NonceKey, WALEdit&gt; curWALEditForNonce;<a name="line.3365"></a>
-<span class="sourceLineNo">3366</span><a name="line.3366"></a>
-<span class="sourceLineNo">3367</span>        @Override<a name="line.3367"></a>
-<span class="sourceLineNo">3368</span>        public boolean visit(int index) throws IOException {<a name="line.3368"></a>
-<span class="sourceLineNo">3369</span>          Mutation m = getMutation(index);<a name="line.3369"></a>
-<span class="sourceLineNo">3370</span>          // we use durability of the original mutation for the mutation passed by CP.<a name="line.3370"></a>
-<span class="sourceLineNo">3371</span>          if (region.getEffectiveDurability(m.getDurability()) == Durability.SKIP_WAL) {<a name="line.3371"></a>
-<span class="sourceLineNo">3372</span>            region.recordMutationWithoutWal(m.getFamilyCellMap());<a name="line.3372"></a>
-<span class="sourceLineNo">3373</span>            return true;<a name="line.3373"></a>
-<span class="sourceLineNo">3374</span>          }<a name="line.3374"></a>
-<span class="sourceLineNo">3375</span><a name="line.3375"></a>
-<span class="sourceLineNo">3376</span>          // the batch may contain multiple nonce keys (replay case). If so, write WALEdit for each.<a name="line.3376"></a>
-<span class="sourceLineNo">3377</span>          // Given how nonce keys are originally written, these should be contiguous.<a name="line.3377"></a>
-<span class="sourceLineNo">3378</span>          // They don't have to be, it will still work, just write more WALEdits than needed.<a name="line.3378"></a>
-<span class="sourceLineNo">3379</span>          long nonceGroup = getNonceGroup(index);<a name="line.3379"></a>
-<span class="sourceLineNo">3380</span>          long nonce = getNonce(index);<a name="line.3380"></a>
-<span class="sourceLineNo">3381</span>          if (curWALEditForNonce == null ||<a name="line.3381"></a>
-<span class="sourceLineNo">3382</span>              curWALEditForNonce.getFirst().getNonceGroup() != nonceGroup ||<a name="line.3382"></a>
-<span class="sourceLineNo">3383</span>              curWALEditForNonce.getFirst().getNonce() != nonce) {<a name="line.3383"></a>
-<span class="sourceLineNo">3384</span>            curWALEditForNonce = new Pair&lt;&gt;(new NonceKey(nonceGroup, nonce),<a name="line.3384"></a>
-<span class="sourceLineNo">3385</span>                new WALEdit(miniBatchOp.getCellCount(), isInReplay()));<a name="line.3385"></a>
-<span class="sourceLineNo">3386</span>            walEdits.add(curWALEditForNonce);<a name="line.3386"></a>
-<span class="sourceLineNo">3387</span>          }<a name="line.3387"></a>
-<span class="sourceLineNo">3388</span>          WALEdit walEdit = curWALEditForNonce.getSecond();<a name="line.3388"></a>
-<span class="sourceLineNo">3389</span><a name="line.3389"></a>
-<span class="sourceLineNo">3390</span>          // Add WAL edits from CPs.<a name="line.3390"></a>
-<span class="sourceLineNo">3391</span>          WALEdit fromCP = walEditsFromCoprocessors[index];<a name="line.3391"></a>
-<span class="sourceLineNo">3392</span>          if (fromCP != null) {<a name="line.3392"></a>
-<span class="sourceLineNo">3393</span>            for (Cell cell : fromCP.getCells()) {<a name="line.3393"></a>
-<span class="sourceLineNo">3394</span>              walEdit.add(cell);<a name="line.3394"></a>
-<span class="sourceLineNo">3395</span>            }<a name="line.3395"></a>
-<span class="sourceLineNo">3396</span>          }<a name="line.3396"></a>
-<span class="sourceLineNo">3397</span>          walEdit.add(familyCellMaps[index]);<a name="line.3397"></a>
-<span class="sourceLineNo">3398</span><a name="line.3398"></a>
-<span class="sourceLineNo">3399</span>          return true;<a name="line.3399"></a>
-<span class="sourceLineNo">3400</span>        }<a name="line.3400"></a>
-<span class="sourceLineNo">3401</span>      });<a name="line.3401"></a>
-<span class="sourceLineNo">3402</span>      return walEdits;<a name="line.3402"></a>
-<span class="sourceLineNo">3403</span>    }<a name="line.3403"></a>
-<span class="sourceLineNo">3404</span><a name="line.3404"></a>
-<span class="sourceLineNo">3405</span>    /**<a name="line.3405"></a>
-<span class="sourceLineNo">3406</span>     * This method completes mini-batch operations by calling postBatchMutate() CP hook (if<a name="line.3406"></a>
-<span class="sourceLineNo">3407</span>     * required) and completing mvcc.<a name="line.3407"></a>
-<span class="sourceLineNo">3408</span>     */<a name="line.3408"></a>
-<span class="sourceLineNo">3409</span>    public void completeMiniBatchOperations(<a name="line.3409"></a>
-<span class="sourceLineNo">3410</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3410"></a>
-<span class="sourceLineNo">3411</span>        throws IOException {<a name="line.3411"></a>
-<span class="sourceLineNo">3412</span>      if (writeEntry != null) {<a name="line.3412"></a>
-<span class="sourceLineNo">3413</span>        region.mvcc.completeAndWait(writeEntry);<a name="line.3413"></a>
-<span class="sourceLineNo">3414</span>      }<a name="line.3414"></a>
-<span class="sourceLineNo">3415</span>    }<a name="line.3415"></a>
-<span class="sourceLineNo">3416</span><a name="line.3416"></a>
-<span class="sourceLineNo">3417</span>    public void doPostOpCleanupForMiniBatch(<a name="line.3417"></a>
-<span class="sourceLineNo">3418</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WALEdit walEdit,<a name="line.3418"></a>
-<span class="sourceLineNo">3419</span>        boolean success) throws IOException {<a name="line.3419"></a>
-<span class="sourceLineNo">3420</span>      doFinishHotnessProtector(miniBatchOp);<a name="line.3420"></a>
-<span class="sourceLineNo">3421</span>    }<a name="line.3421"></a>
-<span class="sourceLineNo">3422</span><a name="line.3422"></a>
-<span class="sourceLineNo">3423</span>    private void doFinishHotnessProtector(<a name="line.3423"></a>
-<span class="sourceLineNo">3424</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) {<a name="line.3424"></a>
-<span class="sourceLineNo">3425</span>      // check and return if the protector is not enabled<a name="line.3425"></a>
-<span class="sourceLineNo">3426</span>      if (!region.storeHotnessProtector.isEnable()) {<a name="line.3426"></a>
-<span class="sourceLineNo">3427</span>        return;<a name="line.3427"></a>
-<span class="sourceLineNo">3428</span>      }<a name="line.3428"></a>
-<span class="sourceLineNo">3429</span>      // miniBatchOp is null, if and only if lockRowsAndBuildMiniBatch throwing exception.<a name="line.3429"></a>
-<span class="sourceLineNo">3430</span>      // This case was handled.<a name="line.3430"></a>
-<span class="sourceLineNo">3431</span>      if (miniBatchOp == null) {<a name="line.3431"></a>
-<span class="sourceLineNo">3432</span>        return;<a name="line.3432"></a>
-<span class="sourceLineNo">3433</span>      }<a name="line.3433"></a>
-<span class="sourceLineNo">3434</span><a name="line.3434"></a>
-<span class="sourceLineNo">3435</span>      final int finalLastIndexExclusive = miniBatchOp.getLastIndexExclusive();<a name="line.3435"></a>
-<span class="sourceLineNo">3436</span><a name="line.3436"></a>
-<span class="sourceLineNo">3437</span>      for (int i = nextIndexToProcess; i &lt; finalLastIndexExclusive; i++) {<a name="line.3437"></a>
-<span class="sourceLineNo">3438</span>        switch (retCodeDetails[i].getOperationStatusCode()) {<a name="line.3438"></a>
-<span class="sourceLineNo">3439</span>          case SUCCESS:<a name="line.3439"></a>
-<span class="sourceLineNo">3440</span>          case FAILURE:<a name="line.3440"></a>
-<span class="sourceLineNo">3441</span>            region.storeHotnessProtector.finish(getMutation(i).getFamilyCellMap());<a name="line.3441"></a>
-<span class="sourceLineNo">3442</span>            break;<a name="line.3442"></a>
-<span class="sourceLineNo">3443</span>          default:<a name="line.3443"></a>
-<span class="sourceLineNo">3444</span>            // do nothing<a name="line.3444"></a>
-<span class="sourceLineNo">3445</span>            // We won't start the protector for NOT_RUN/BAD_FAMILY/SANITY_CHECK_FAILURE and the<a name="line.3445"></a>
-<span class="sourceLineNo">3446</span>            // STORE_TOO_BUSY case is handled in StoreHotnessProtector#start<a name="line.3446"></a>
-<span class="sourceLineNo">3447</span>            break;<a name="line.3447"></a>
-<span class="sourceLineNo">3448</span>        }<a name="line.3448"></a>
-<span class="sourceLineNo">3449</span>      }<a name="line.3449"></a>
-<span class="sourceLineNo">3450</span>    }<a name="line.3450"></a>
-<span class="sourceLineNo">3451</span><a name="line.3451"></a>
-<span class="sourceLineNo">3452</span>    /**<a name="line.3452"></a>
-<span class="sourceLineNo">3453</span>     * Atomically apply the given map of family-&gt;edits to the memstore.<a name="line.3453"></a>
-<span class="sourceLineNo">3454</span>     * This handles the consistency control on its own, but the caller<a name="line.3454"></a>
-<span class="sourceLineNo">3455</span>     * should already have locked updatesLock.readLock(). This also does<a name="line.3455"></a>
-<span class="sourceLineNo">3456</span>     * &lt;b&gt;not&lt;/b&gt; check the families for validity.<a name="line.3456"></a>
-<span class="sourceLineNo">3457</span>     *<a name="line.3457"></a>
-<span class="sourceLineNo">3458</span>     * @param familyMap Map of Cells by family<a name="line.3458"></a>
-<span class="sourceLineNo">3459</span>     */<a name="line.3459"></a>
-<span class="sourceLineNo">3460</span>    protected void applyFamilyMapToMemStore(Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.3460"></a>
-<span class="sourceLineNo">3461</span>        MemStoreSizing memstoreAccounting) throws IOException {<a name="line.3461"></a>
-<span class="sourceLineNo">3462</span>      for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.3462"></a>
-<span class="sourceLineNo">3463</span>        byte[] family = e.getKey();<a name="line.3463"></a>
-<span class="sourceLineNo">3464</span>        List&lt;Cell&gt; cells = e.getValue();<a name="line.3464"></a>
-<span class="sourceLineNo">3465</span>        assert cells instanceof RandomAccess;<a name="line.3465"></a>
-<span class="sourceLineNo">3466</span>        region.applyToMemStore(region.getStore(family), cells, false, memstoreAccounting);<a name="line.3466"></a>
-<span class="sourceLineNo">3467</span>      }<a name="line.3467"></a>
-<span class="sourceLineNo">3468</span>    }<a name="line.3468"></a>
-<span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
-<span class="sourceLineNo">3470</span><a name="line.3470"></a>
+<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(getTableDescriptor().getTableName().getNameAsString(),<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>          time - startTime,<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>    }<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span><a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>  }<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span><a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>  /**<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>   * Method to safely get the next sequence number.<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>   * @throws IOException<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span>   */<a name="line.2840"></a>
+<span class="sourceLineNo">2841</span>  @VisibleForTesting<a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span>    WriteEntry we = mvcc.begin();<a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>    mvcc.completeAndWait(we);<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>    return we.getWriteNumber();<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>  }<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span><a name="line.2847"></a>
+<span class="sourceLineNo">2848</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>  // get() methods for client use.<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span><a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>  @Override<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>   return getScanner(scan, null);<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>  }<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span><a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>  @Override<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>      throws IOException {<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>  }<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span><a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>    startRegionOperation(Operation.SCAN);<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>    try {<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>      // Verify families are all valid<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span>      if (!scan.hasFamilies()) {<a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>        // Adding all families to scanner<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span>          scan.addFamily(family);<a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>        }<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>      } else {<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>          checkFamily(family);<a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>        }<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>      }<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>    } finally {<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>      closeRegionOperation(Operation.SCAN);<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>    }<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>  }<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span><a name="line.2883"></a>
+<span class="sourceLineNo">2884</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>      HConstants.NO_NONCE);<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>  }<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span><a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>    if (scan.isReversed()) {<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>      if (scan.getFilter() != null) {<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>        scan.getFilter().setReversed(true);<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>      }<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>    }<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>  }<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span><a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>  /**<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span>   * Prepare a delete for a row mutation processor<a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>   * @throws IOException<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>   */<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>    // Check to see if this is a deleteRow insert<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>        // Don't eat the timestamp<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>      }<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>    } else {<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>        if(family == null) {<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>        }<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>        checkFamily(family);<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>      }<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>    }<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>  }<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span><a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>  @Override<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>  public void delete(Delete delete) throws IOException {<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>    checkReadOnly();<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>    checkResources();<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>    startRegionOperation(Operation.DELETE);<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>    try {<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span>      doBatchMutate(delete);<a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>    } finally {<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span>      closeRegionOperation(Operation.DELETE);<a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>    }<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>  }<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span><a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>  /**<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span>   * Row needed by below method.<a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>   */<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span><a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>  /**<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>   * @param familyMap map of family to edits for the given family.<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>   * @throws IOException<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>   */<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>      Durability durability) throws IOException {<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>    delete.setFamilyCellMap(familyMap);<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>    delete.setDurability(durability);<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>    doBatchMutate(delete);<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>  }<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span><a name="line.2953"></a>
+<span class="sourceLineNo">2954</span>  /**<a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>   * @param mutation<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>   * @param familyMap<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>   * @param byteNow<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>   * @throws IOException<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>   */<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>      byte[] byteNow) throws IOException {<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2964"></a>
+<span class="sourceLineNo">2965</span><a name="line.2965"></a>
+<span class="sourceLineNo">2966</span>      byte[] family = e.getKey();<a name="line.2966"></a>
+<span class="sourceLineNo">2967</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2967"></a>
+<span class="sourceLineNo">2968</span>      assert cells instanceof RandomAccess;<a name="line.2968"></a>
+<span class="sourceLineNo">2969</span><a name="line.2969"></a>
+<span class="sourceLineNo">2970</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2970"></a>
+<span class="sourceLineNo">2971</span>      int listSize = cells.size();<a name="line.2971"></a>
+<span class="sourceLineNo">2972</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2972"></a>
+<span class="sourceLineNo">2973</span>        Cell cell = cells.get(i);<a name="line.2973"></a>
+<span class="sourceLineNo">2974</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2974"></a>
+<span class="sourceLineNo">2975</span>        //  This is expensive.<a name="line.2975"></a>
+<span class="sourceLineNo">2976</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2976"></a>
+<span class="sourceLineNo">2977</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2977"></a>
+<span class="sourceLineNo">2978</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2978"></a>
+<span class="sourceLineNo">2979</span><a name="line.2979"></a>
+<span class="sourceLineNo">2980</span>          Integer count = kvCount.get(qual);<a name="line.2980"></a>
+<span class="sourceLineNo">2981</span>          if (count == null) {<a name="line.2981"></a>
+<span class="sourceLineNo">2982</span>            kvCount.put(qual, 1);<a name="line.2982"></a>
+<span class="sourceLineNo">2983</span>          } else {<a name="line.2983"></a>
+<span class="sourceLineNo">2984</span>            kvCount.put(qual, count + 1);<a name="line.2984"></a>
+<span class="sourceLineNo">2985</span>          }<a name="line.2985"></a>
+<span class="sourceLineNo">2986</span>          count = kvCount.get(qual);<a name="line.2986"></a>
+<span class="sourceLineNo">2987</span><a name="line.2987"></a>
+<span class="sourceLineNo">2988</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2988"></a>
+<span class="sourceLineNo">2989</span>          get.setMaxVersions(count);<a name="line.2989"></a>
+<span class="sourceLineNo">2990</span>          get.addColumn(family, qual);<a name="line.2990"></a>
+<span class="sourceLineNo">2991</span>          if (coprocessorHost != null) {<a name="line.2991"></a>
+<span class="sourceLineNo">2992</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2992"></a>
+<span class="sourceLineNo">2993</span>                byteNow, get)) {<a name="line.2993"></a>
+<span class="sourceLineNo">2994</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2994"></a>
+<span class="sourceLineNo">2995</span>            }<a name="line.2995"></a>
+<span class="sourceLineNo">2996</span>          } else {<a name="line.2996"></a>
+<span class="sourceLineNo">2997</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2997"></a>
+<span class="sourceLineNo">2998</span>          }<a name="line.2998"></a>
+<span class="sourceLineNo">2999</span>        } else {<a name="line.2999"></a>
+<span class="sourceLineNo">3000</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3000"></a>
+<span class="sourceLineNo">3001</span>        }<a name="line.3001"></a>
+<span class="sourceLineNo">3002</span>      }<a name="line.3002"></a>
+<span class="sourceLineNo">3003</span>    }<a name="line.3003"></a>
+<span class="sourceLineNo">3004</span>  }<a name="line.3004"></a>
+<span class="sourceLineNo">3005</span><a name="line.3005"></a>
+<span class="sourceLineNo">3006</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3006"></a>
+<span class="sourceLineNo">3007</span>      throws IOException {<a name="line.3007"></a>
+<span class="sourceLineNo">3008</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3008"></a>
+<span class="sourceLineNo">3009</span><a name="line.3009"></a>
+<span class="sourceLineNo">3010</span>    if (result.size() &lt; count) {<a name="line.3010"></a>
+<span class="sourceLineNo">3011</span>      // Nothing to delete<a name="line.3011"></a>
+<span class="sourceLineNo">3012</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3012"></a>
+<span class="sourceLineNo">3013</span>      return;<a name="line.3013"></a>
+<span class="sourceLineNo">3014</span>    }<a name="line.3014"></a>
+<span class="sourceLineNo">3015</span>    if (result.size() &gt; count) {<a name="line.3015"></a>
+<span class="sourceLineNo">3016</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3016"></a>
+<span class="sourceLineNo">3017</span>    }<a name="line.3017"></a>
+<span class="sourceLineNo">3018</span>    Cell getCell = result.get(count - 1);<a name="line.3018"></a>
+<span class="sourceLineNo">3019</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3019"></a>
+<span class="sourceLineNo">3020</span>  }<a name="line.3020"></a>
+<span class="sourceLineNo">3021</span><a name="line.3021"></a>
+<span class="sourceLineNo">3022</span>  @Override<a name="line.3022"></a>
+<span class="sourceLineNo">3023</span>  public void put(Put put) throws IOException {<a name="line.3023"></a>
+<span class="sourceLineNo">3024</span>    checkReadOnly();<a name="line.3024"></a>
+<span class="sourceLineNo">3025</span><a name="line.3025"></a>
+<span class="sourceLineNo">3026</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3026"></a>
+<span class="sourceLineNo">3027</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3027"></a>
+<span class="sourceLineNo">3028</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3028"></a>
+<span class="sourceLineNo">3029</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3029"></a>
+<span class="sourceLineNo">3030</span>    checkResources();<a name="line.3030"></a>
+<span class="sourceLineNo">3031</span>    startRegionOperation(Operation.PUT);<a name="line.3031"></a>
+<span class="sourceLineNo">3032</span>    try {<a name="line.3032"></a>
+<span class="sourceLineNo">3033</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3033"></a>
+<span class="sourceLineNo">3034</span>      doBatchMutate(put);<a name="line.3034"></a>
+<span class="sourceLineNo">3035</span>    } finally {<a name="line.3035"></a>
+<span class="sourceLineNo">3036</span>      closeRegionOperation(Operation.PUT);<a name="line.3036"></a>
+<span class="sourceLineNo">3037</span>    }<a name="line.3037"></a>
+<span class="sourceLineNo">3038</span>  }<a name="line.3038"></a>
+<span class="sourceLineNo">3039</span><a name="line.3039"></a>
+<span class="sourceLineNo">3040</span>  /**<a name="line.3040"></a>
+<span class="sourceLineNo">3041</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3041"></a>
+<span class="sourceLineNo">3042</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3042"></a>
+<span class="sourceLineNo">3043</span>   * mini-batches for processing.<a name="line.3043"></a>
+<span class="sourceLineNo">3044</span>   */<a name="line.3044"></a>
+<span class="sourceLineNo">3045</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3045"></a>
+<span class="sourceLineNo">3046</span>    protected final T[] operations;<a name="line.3046"></a>
+<span class="sourceLineNo">3047</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3047"></a>
+<span class="sourceLineNo">3048</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3048"></a>
+<span class="sourceLineNo">3049</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3049"></a>
+<span class="sourceLineNo">3050</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3050"></a>
+<span class="sourceLineNo">3051</span><a name="line.3051"></a>
+<span class="sourceLineNo">3052</span>    protected final HRegion region;<a name="line.3052"></a>
+<span class="sourceLineNo">3053</span>    protected int nextIndexToProcess = 0;<a name="line.3053"></a>
+<span class="sourceLineNo">3054</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3054"></a>
+<span class="sourceLineNo">3055</span

<TRUNCATED>

[40/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
index 52bb687..714dd7a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
@@ -389,7 +389,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../..
 /../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
index 51a8e3c..636aada 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
@@ -381,7 +381,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../..
 /../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
index b018aec..286c28d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
@@ -396,7 +396,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
index 5b73b0a..b9b51b2 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
@@ -330,7 +330,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Proc
 edure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop
 .hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pro
 cedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
index f1ab99b..cd9d4a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
@@ -361,7 +361,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[22/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html
index 1a6e0ab..e8c5f26 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,12 +109,12 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dd>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dd>
 </dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.32">MetricsTableSourceImpl</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.78">MetricsTableSourceImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></pre>
 </li>
@@ -144,6 +144,54 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#closed">closed</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedInputBytes">compactedInputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedOutputBytes">compactedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedMemstoreBytes">flushedMemstoreBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedOutputBytes">flushedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#hashCode">hashCode</a></span></code>&nbsp;</td>
 </tr>
@@ -152,9 +200,49 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedInputBytes">majorCompactedInputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedOutputBytes">majorCompactedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionInputFileCountHisto">majorCompactionInputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionInputSizeHisto">majorCompactionInputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionOutputFileCountHisto">majorCompactionOutputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionOutputSizeHisto">majorCompactionOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionTimeHisto">majorCompactionTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#registry">registry</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitRequest">splitRequest</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitSuccess">splitSuccess</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitTimeHisto">splitTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#tableName">tableName</a></span></code>&nbsp;</td>
@@ -173,7 +261,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <!--   -->
 </a>
 <h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT">CP_REQUEST_COUNT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT_DESC">CP_REQUEST_COUNT_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#MEMSTORE_SIZE">MEMSTORE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#MEMSTORE_SIZE_DESC">MEMSTORE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT">READ_REQUEST_COUNT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT_DESC">READ_REQUEST_COUNT_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#STORE_FILE_SIZE">STORE_FILE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#STORE_F
 ILE_SIZE_DESC">STORE_FILE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE">TABLE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE_DESC">TABLE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT">TOTAL_REQUEST_COUNT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT_DESC">TOTAL_REQUEST_COUNT_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT">WRITE_REQUEST_COUNT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT_DESC">WRITE_REQUEST_COUNT_DESC</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE">TABLE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE_DESC">TABLE_SIZE_DESC</a></code></li>
 </ul>
 </li>
 </ul>
@@ -219,36 +307,115 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compareTo-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">compareTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#deregisterMetrics--">deregisterMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#getAggregateSource--">getAggregateSource</a></span>()</code>
 <div class="block">Get the aggregate source to which this reports.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#getTableNamePrefix--">getTableNamePrefix</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#getTableWrapper--">getTableWrapper</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#incrSplitRequest--">incrSplitRequest</a></span>()</code>
+<div class="block">Increment number of a requested splits</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#incrSplitSuccess--">incrSplitSuccess</a></span>()</code>
+<div class="block">Increment number of successful splits</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#registerMetrics--">registerMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#snapshot-org.apache.hadoop.metrics2.MetricsRecordBuilder-boolean-">snapshot</a></span>(org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;mrb,
         boolean&nbsp;ignored)</code>&nbsp;</td>
 </tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateCompactionInputFileCount-boolean-long-">updateCompactionInputFileCount</a></span>(boolean&nbsp;isMajor,
+                              long&nbsp;c)</code>
+<div class="block">Update the compaction input number of files histogram</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateCompactionInputSize-boolean-long-">updateCompactionInputSize</a></span>(boolean&nbsp;isMajor,
+                         long&nbsp;bytes)</code>
+<div class="block">Update the compaction total input file size histogram</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateCompactionOutputFileCount-boolean-long-">updateCompactionOutputFileCount</a></span>(boolean&nbsp;isMajor,
+                               long&nbsp;c)</code>
+<div class="block">Update the compaction output number of files histogram</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateCompactionOutputSize-boolean-long-">updateCompactionOutputSize</a></span>(boolean&nbsp;isMajor,
+                          long&nbsp;bytes)</code>
+<div class="block">Update the compaction total output file size</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateCompactionTime-boolean-long-">updateCompactionTime</a></span>(boolean&nbsp;isMajor,
+                    long&nbsp;t)</code>
+<div class="block">Update the compaction time histogram, both major and minor</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateFlushMemstoreSize-long-">updateFlushMemstoreSize</a></span>(long&nbsp;bytes)</code>
+<div class="block">Update the flush memstore size histogram</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateFlushOutputSize-long-">updateFlushOutputSize</a></span>(long&nbsp;bytes)</code>
+<div class="block">Update the flush output file size histogram</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateFlushTime-long-">updateFlushTime</a></span>(long&nbsp;t)</code>
+<div class="block">Update the flush time histogram</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#updateSplitTime-long-">updateSplitTime</a></span>(long&nbsp;t)</code>
+<div class="block">Update the split transaction time histogram</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -277,7 +444,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.34">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.80">LOG</a></pre>
 </li>
 </ul>
 <a name="closed">
@@ -286,7 +453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>closed</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.36">closed</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.82">closed</a></pre>
 </li>
 </ul>
 <a name="tableWrapperAgg">
@@ -295,7 +462,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>tableWrapperAgg</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.42">tableWrapperAgg</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.88">tableWrapperAgg</a></pre>
 </li>
 </ul>
 <a name="agg">
@@ -304,7 +471,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>agg</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.43">agg</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.89">agg</a></pre>
 </li>
 </ul>
 <a name="registry">
@@ -313,7 +480,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>registry</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.44">registry</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.90">registry</a></pre>
 </li>
 </ul>
 <a name="tableNamePrefix">
@@ -322,7 +489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>tableNamePrefix</h4>
-<pre>private final&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.45">tableNamePrefix</a></pre>
+<pre>private final&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.91">tableNamePrefix</a></pre>
 </li>
 </ul>
 <a name="tableName">
@@ -331,16 +498,214 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.46">tableName</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.92">tableName</a></pre>
 </li>
 </ul>
 <a name="hashCode">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.47">hashCode</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.93">hashCode</a></pre>
+</li>
+</ul>
+<a name="splitRequest">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>splitRequest</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.96">splitRequest</a></pre>
+</li>
+</ul>
+<a name="splitSuccess">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>splitSuccess</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.97">splitSuccess</a></pre>
+</li>
+</ul>
+<a name="splitTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>splitTimeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.98">splitTimeHisto</a></pre>
+</li>
+</ul>
+<a name="flushTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushTimeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.101">flushTimeHisto</a></pre>
+</li>
+</ul>
+<a name="flushMemstoreSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushMemstoreSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.102">flushMemstoreSizeHisto</a></pre>
+</li>
+</ul>
+<a name="flushOutputSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushOutputSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.103">flushOutputSizeHisto</a></pre>
+</li>
+</ul>
+<a name="flushedMemstoreBytes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushedMemstoreBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.104">flushedMemstoreBytes</a></pre>
+</li>
+</ul>
+<a name="flushedOutputBytes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushedOutputBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.105">flushedOutputBytes</a></pre>
+</li>
+</ul>
+<a name="compactionTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionTimeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.108">compactionTimeHisto</a></pre>
+</li>
+</ul>
+<a name="compactionInputFileCountHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionInputFileCountHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.109">compactionInputFileCountHisto</a></pre>
+</li>
+</ul>
+<a name="compactionInputSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionInputSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.110">compactionInputSizeHisto</a></pre>
+</li>
+</ul>
+<a name="compactionOutputFileCountHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionOutputFileCountHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.111">compactionOutputFileCountHisto</a></pre>
+</li>
+</ul>
+<a name="compactionOutputSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionOutputSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.112">compactionOutputSizeHisto</a></pre>
+</li>
+</ul>
+<a name="compactedInputBytes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactedInputBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.113">compactedInputBytes</a></pre>
+</li>
+</ul>
+<a name="compactedOutputBytes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactedOutputBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.114">compactedOutputBytes</a></pre>
+</li>
+</ul>
+<a name="majorCompactionTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactionTimeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.116">majorCompactionTimeHisto</a></pre>
+</li>
+</ul>
+<a name="majorCompactionInputFileCountHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactionInputFileCountHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.117">majorCompactionInputFileCountHisto</a></pre>
+</li>
+</ul>
+<a name="majorCompactionInputSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactionInputSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.118">majorCompactionInputSizeHisto</a></pre>
+</li>
+</ul>
+<a name="majorCompactionOutputFileCountHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactionOutputFileCountHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.119">majorCompactionOutputFileCountHisto</a></pre>
+</li>
+</ul>
+<a name="majorCompactionOutputSizeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactionOutputSizeHisto</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.120">majorCompactionOutputSizeHisto</a></pre>
+</li>
+</ul>
+<a name="majorCompactedInputBytes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompactedInputBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.121">majorCompactedInputBytes</a></pre>
+</li>
+</ul>
+<a name="majorCompactedOutputBytes">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>majorCompactedOutputBytes</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.122">majorCompactedOutputBytes</a></pre>
 </li>
 </ul>
 </li>
@@ -357,7 +722,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsTableSourceImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.49">MetricsTableSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tblName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.124">MetricsTableSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tblName,
                               <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>&nbsp;aggregate,
                               <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;tblWrapperAgg)</pre>
 </li>
@@ -370,17 +735,43 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="registerMetrics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerMetrics</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.138">registerMetrics</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#registerMetrics--">registerMetrics</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="deregisterMetrics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deregisterMetrics</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.185">deregisterMetrics</a>()</pre>
+</li>
+</ul>
 <a name="close--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.63">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.211">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#close--">MetricsTableSource</a></code></span></div>
 <div class="block">Close the table's metrics as all the region are closing.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
 </dl>
 </li>
@@ -391,7 +782,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getAggregateSource</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.85">getAggregateSource</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.234">getAggregateSource</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#getAggregateSource--">MetricsTableSource</a></code></span></div>
 <div class="block">Get the aggregate source to which this reports.</div>
 <dl>
@@ -406,7 +797,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.90">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.239">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;</code></dd>
@@ -419,7 +810,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.103">snapshot</a>(org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;mrb,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.252">snapshot</a>(org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;mrb,
               boolean&nbsp;ignored)</pre>
 </li>
 </ul>
@@ -429,7 +820,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.151">getTableName</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.328">getTableName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#getTableName--">getTableName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
@@ -442,7 +833,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.156">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.333">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -455,7 +846,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.161">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.338">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -468,16 +859,209 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableWrapper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.173">getTableWrapper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.350">getTableWrapper</a>()</pre>
 </li>
 </ul>
 <a name="getTableNamePrefix--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getTableNamePrefix</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.177">getTableNamePrefix</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/MetricsTableSourceImpl.html#line.354">getTableNamePrefix</a>()</pre>
+</li>
+</ul>
+<a name="incrSplitRequest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrSplitRequest</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.359">incrSplitRequest</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitRequest--">MetricsTableSource</a></code></span></div>
+<div class="block">Increment number of a requested splits</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitRequest--">incrSplitRequest</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="incrSplitSuccess--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrSplitSuccess</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.364">incrSplitSuccess</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitSuccess--">MetricsTableSource</a></code></span></div>
+<div class="block">Increment number of successful splits</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitSuccess--">incrSplitSuccess</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="updateSplitTime-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSplitTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.369">updateSplitTime</a>(long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateSplitTime-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the split transaction time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateSplitTime-long-">updateSplitTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - time it took, in milliseconds</dd>
+</dl>
+</li>
+</ul>
+<a name="updateFlushTime-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.374">updateFlushTime</a>(long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushTime-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the flush time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushTime-long-">updateFlushTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - time it took, in milliseconds</dd>
+</dl>
+</li>
+</ul>
+<a name="updateFlushMemstoreSize-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushMemstoreSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.379">updateFlushMemstoreSize</a>(long&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushMemstoreSize-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the flush memstore size histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushMemstoreSize-long-">updateFlushMemstoreSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the number of bytes in the memstore</dd>
+</dl>
+</li>
+</ul>
+<a name="updateFlushOutputSize-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushOutputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.385">updateFlushOutputSize</a>(long&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushOutputSize-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the flush output file size histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushOutputSize-long-">updateFlushOutputSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the number of bytes in the output file</dd>
+</dl>
+</li>
+</ul>
+<a name="updateCompactionTime-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.391">updateCompactionTime</a>(boolean&nbsp;isMajor,
+                                 long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionTime-boolean-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the compaction time histogram, both major and minor</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionTime-boolean-long-">updateCompactionTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>t</code> - time it took, in milliseconds</dd>
+</dl>
+</li>
+</ul>
+<a name="updateCompactionInputFileCount-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionInputFileCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.399">updateCompactionInputFileCount</a>(boolean&nbsp;isMajor,
+                                           long&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputFileCount-boolean-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the compaction input number of files histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputFileCount-boolean-long-">updateCompactionInputFileCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>c</code> - number of files</dd>
+</dl>
+</li>
+</ul>
+<a name="updateCompactionInputSize-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionInputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.407">updateCompactionInputSize</a>(boolean&nbsp;isMajor,
+                                      long&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputSize-boolean-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the compaction total input file size histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputSize-boolean-long-">updateCompactionInputSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>bytes</code> - the number of bytes of the compaction input file</dd>
+</dl>
+</li>
+</ul>
+<a name="updateCompactionOutputFileCount-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionOutputFileCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.417">updateCompactionOutputFileCount</a>(boolean&nbsp;isMajor,
+                                            long&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputFileCount-boolean-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the compaction output number of files histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputFileCount-boolean-long-">updateCompactionOutputFileCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>c</code> - number of files</dd>
+</dl>
+</li>
+</ul>
+<a name="updateCompactionOutputSize-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateCompactionOutputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#line.425">updateCompactionOutputSize</a>(boolean&nbsp;isMajor,
+                                       long&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputSize-boolean-long-">MetricsTableSource</a></code></span></div>
+<div class="block">Update the compaction total output file size</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputSize-boolean-long-">updateCompactionOutputSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>bytes</code> - the number of bytes of the compaction input file</dd>
+</dl>
 </li>
 </ul>
 </li>


[37/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
index fc6f6e7..c573af4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
@@ -312,7 +312,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
index 3d36bd8..8722ddd 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
@@ -377,7 +377,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/RecoverStandbyProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/RecoverStandbyProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/RecoverStandbyProcedure.html
index 1ba0fbd..da45463 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/RecoverStandbyProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/RecoverStandbyProcedure.html
@@ -310,7 +310,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.html
index 0a56e97..dd2246c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.html
@@ -334,7 +334,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/P
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[43/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html
index 6bf3871..6a24523 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html
@@ -309,7 +309,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html
index b1fbd27..492603a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html
@@ -420,7 +420,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../
 org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org
 /apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../..
 /org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../
 org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pro
 cedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../
 ../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Proced
 ure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure
 2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
index d213a46..26f485f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -519,7 +519,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../.
 ./../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setPa
 rentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.ht
 ml#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/pro
 cedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html
index 420d73a..5512ead 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html
@@ -518,7 +518,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../.
 ./../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setPa
 rentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.ht
 ml#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedur
 e.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[34/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
index e1df479..705d349 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":6,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":6,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10,"i26":9,"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":9,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":6,"i54":6,"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};
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":6,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":6,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":9,"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":9,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":6,"i56":6,"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};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -228,74 +228,81 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass">bypass</a></span></code>
+<div class="block">Used for force complete of the procedure without
+ actually doing any logic in the procedure.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenLatch">childrenLatch</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#exception">exception</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lastUpdate">lastUpdate</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#locked">locked</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading">lockedWhenLoading</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_PROC_ID">NO_PROC_ID</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_TIMEOUT">NO_TIMEOUT</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#nonceKey">nonceKey</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#owner">owner</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#parentProcId">parentProcId</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#procId">procId</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#result">result</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rootProcId">rootProcId</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#stackIndexes">stackIndexes</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#state">state</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#submittedTime">submittedTime</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#timeout">timeout</a></span></code>&nbsp;</td>
 </tr>
@@ -364,391 +371,404 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>(package private) void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a></span>()</code>
+<div class="block">set the bypass to true
+ Only called in <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-"><code>ProcedureExecutor.bypassProcedure(long, long, boolean)</code></a> for now,
+ DO NOT use this method alone, since we can't just bypass
+ one single procedure.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a></span>()</code>
 <div class="block">Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&gt;&nbsp;other)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Called when the procedure is marked as completed (success or rollback).</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>protected abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">Called on store load to allow the user to decode the previously serialized
  state.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
              <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;store)</code>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&gt;[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code execute().</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
              <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;store)</code>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code rollback().</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&gt;[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">The main code of the procedure.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Override this method to provide procedure specific counters for submitted count, failed
  count and time histogram.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a></span>(long&nbsp;procId)</code>
 <div class="block">Get an hashcode for the specified Procedure ID</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>protected static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a></span>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;T&gt;&gt;&nbsp;procedures,
                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;T&gt;&nbsp;proc)</code>
 <div class="block">Helper to lookup the root Procedure ID given a specified procedure.</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>protected int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a></span>()</code>
 <div class="block">Timeout of the next timeout.</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a></span>()</code>
 <div class="block">This is used in conjunction with <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a>.</div>
 </td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;a,
               <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;b)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Used to keep the procedure lock even when the procedure is yielding or suspended.</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a></span>()</code>
 <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">By default, the procedure framework/executor will try to run procedures start to finish.</div>
 </td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a></span>()</code>
 <div class="block">Will only be called when loading procedures from procedure store, where we need to record
  whether the procedure has already held a lock.</div>
 </td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">The user should override this method, and release lock if necessary.</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>protected abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">The code to undo what was done by the execute() code.</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>protected abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">The user-level code of the procedure may have some state to
  persist (e.g.</div>
 </td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a></span>(int&nbsp;numChildren)</code>
 <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;exception)</code>&nbsp;</td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>&nbsp;</td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a></span>(long&nbsp;lastUpdate)</code>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>
 <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;owner)</code>&nbsp;</td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;owner)</code>&nbsp;</td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a></span>(long&nbsp;parentProcId)</code>
 <div class="block">Called by the ProcedureExecutor to assign the parent to the newly created procedure.</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a></span>(long&nbsp;procId)</code>
 <div class="block">Called by the ProcedureExecutor to assign the ID to the newly created procedure.</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a></span>(byte[]&nbsp;result)</code>
 <div class="block">The procedure may leave a "result" on completion.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a></span>(long&nbsp;rootProcId)</code>&nbsp;</td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a></span>(<a href="https://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="https://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;stackIndexes)</code>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a></span>(long&nbsp;submittedTime)</code>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a></span>(int&nbsp;timeout)</code>&nbsp;</td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">By default, the executor will keep the procedure result around util
  the eviction TTL is expired.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>protected <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</code>
 <div class="block">Extend the toString() information with the procedure details
  e.g.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a></span>()</code>
 <div class="block">Extend the toString() information with more procedure details</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a></span>()</code>
 <div class="block">Build the StringBuilder for the simple form of procedure string.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</code>
 <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> State.</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a></span>()</code>
 <div class="block">Try to set this procedure into RUNNABLE state.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
                      long&nbsp;runtime,
@@ -756,19 +776,19 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <div class="block">This function will be called just after procedure execution is finished.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">This function will be called just when procedure is submitted for execution.</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a></span>()</code>
 <div class="block">Called by ProcedureExecutor after each time a procedure step is executed.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
 <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> will be split into two steps, first, it will
@@ -776,7 +796,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>acquireLock(Object)</code></a> to actually handle the lock for this procedure.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></span>()</code>&nbsp;</td>
 </tr>
@@ -966,12 +986,29 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <a name="lockedWhenLoading">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>lockedWhenLoading</h4>
 <pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.145">lockedWhenLoading</a></pre>
 </li>
 </ul>
+<a name="bypass">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>bypass</h4>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.157">bypass</a></pre>
+<div class="block">Used for force complete of the procedure without
+ actually doing any logic in the procedure.
+ If bypass is set to true, when executing it will return null when
+ <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-"><code>doExecute(Object)</code></a> to finish the procedure and releasing any locks
+ it may currently hold.
+ Bypassing a procedure is not like aborting. Aborting a procedure will trigger
+ a rollback. And since the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-"><code>abort(Object)</code></a> method is overrideable
+ Some procedures may have chosen to ignore the aborting.</div>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -997,6 +1034,28 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="isBypass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isBypass</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.159">isBypass</a>()</pre>
+</li>
+</ul>
+<a name="bypass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bypass</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.169">bypass</a>()</pre>
+<div class="block">set the bypass to true
+ Only called in <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-"><code>ProcedureExecutor.bypassProcedure(long, long, boolean)</code></a> for now,
+ DO NOT use this method alone, since we can't just bypass
+ one single procedure. We need to bypass its ancestor too. So making it package private</div>
+</li>
+</ul>
 <a name="execute-java.lang.Object-">
 <!--   -->
 </a><a name="execute-TEnvironment-">
@@ -1005,7 +1064,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>protected abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&gt;[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.159">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&gt;[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.185">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
                                               throws <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>,
                                                      <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a>,
                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -1034,7 +1093,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>rollback</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.173">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.199">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">The code to undo what was done by the execute() code.
@@ -1060,7 +1119,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.187">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.213">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">The abort() call is asynchronous and each procedure must decide how to deal
  with it, if they want to be abortable. The simplest implementation
  is to have an AtomicBoolean set in the abort() method and then the execute()
@@ -1078,7 +1137,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.195">serializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.221">serializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                                     throws <a href="https://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">The user-level code of the procedure may have some state to
  persist (e.g. input arguments or current position in the processing state) to
@@ -1097,7 +1156,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.203">deserializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.229">deserializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                                       throws <a href="https://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">Called on store load to allow the user to decode the previously serialized
  state.</div>
@@ -1117,7 +1176,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>waitInitialized</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.218">waitInitialized</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.244">waitInitialized</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> will be split into two steps, first, it will
  call us to determine whether we need to wait for initialization, second, it will call
  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>acquireLock(Object)</code></a> to actually handle the lock for this procedure.
@@ -1141,7 +1200,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>acquireLock</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.246">acquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.272">acquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">The user should override this method if they need a lock on an Entity. A lock can be anything,
  and it is up to the implementor. The Procedure Framework will call this method just before it
  invokes <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-"><code>execute(Object)</code></a>. It calls <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>releaseLock(Object)</code></a> after the call to
@@ -1177,7 +1236,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.253">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.279">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">The user should override this method, and release lock if necessary.</div>
 </li>
 </ul>
@@ -1189,7 +1248,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>holdLock</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.261">holdLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.287">holdLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Used to keep the procedure lock even when the procedure is yielding or suspended.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1203,7 +1262,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hasLock</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.273">hasLock</a>()</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.299">hasLock</a>()</pre>
 <div class="block">This is used in conjunction with <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a>. If <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a>
  returns true, the procedure executor will call acquireLock() once and thereafter
  not call <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>releaseLock(Object)</code></a> until the Procedure is done (Normally, it calls
@@ -1224,7 +1283,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeReplay</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.283">beforeReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.309">beforeReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Called when the procedure is loaded for replay.
  The procedure implementor may use this method to perform some quick
  operation before replay.
@@ -1239,7 +1298,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>afterReplay</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.291">afterReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.317">afterReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Called when the procedure is ready to be added to the queue after
  the loading/replay operation.</div>
 </li>
@@ -1252,7 +1311,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>completionCleanup</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.301">completionCleanup</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.327">completionCleanup</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Called when the procedure is marked as completed (success or rollback).
  The procedure implementor may use this method to cleanup in-memory states.
  This operation will not be retried on failure. If a procedure took a lock,
@@ -1267,7 +1326,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>isYieldAfterExecutionStep</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.313">isYieldAfterExecutionStep</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.339">isYieldAfterExecutionStep</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">By default, the procedure framework/executor will try to run procedures start to finish.
  Return true to make the executor yield between each execution step to
  give other procedures a chance to run.</div>
@@ -1288,7 +1347,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldWaitClientAck</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.326">shouldWaitClientAck</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.352">shouldWaitClientAck</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">By default, the executor will keep the procedure result around util
  the eviction TTL is expired. The client can cut down the waiting time
  by requesting that the result is removed from the executor.
@@ -1310,7 +1369,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureMetrics</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.336">getProcedureMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.362">getProcedureMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Override this method to provide procedure specific counters for submitted count, failed
  count and time histogram.</div>
 <dl>
@@ -1329,7 +1388,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetricsOnSubmit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.346">updateMetricsOnSubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.372">updateMetricsOnSubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">This function will be called just when procedure is submitted for execution. Override this
  method to update the metrics at the beginning of the procedure. The default implementation
  updates submitted counter if <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-"><code>getProcedureMetrics(Object)</code></a> returns non-null
@@ -1344,7 +1403,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetricsOnFinish</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.372">updateMetricsOnFinish</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.398">updateMetricsOnFinish</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
                                      long&nbsp;runtime,
                                      boolean&nbsp;success)</pre>
 <div class="block">This function will be called just after procedure execution is finished. Override this method
@@ -1370,7 +1429,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.392">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.418">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1383,7 +1442,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringSimpleSB</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.401">toStringSimpleSB</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.427">toStringSimpleSB</a>()</pre>
 <div class="block">Build the StringBuilder for the simple form of procedure string.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1397,7 +1456,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringDetails</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.439">toStringDetails</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.469">toStringDetails</a>()</pre>
 <div class="block">Extend the toString() information with more procedure details</div>
 </li>
 </ul>
@@ -1407,7 +1466,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClass</h4>
-<pre>protected&nbsp;<a href="https://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/procedure2/Procedure.html#line.458">toStringClass</a>()</pre>
+<pre>protected&nbsp;<a href="https://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/procedure2/Procedure.html#line.488">toStringClass</a>()</pre>
 </li>
 </ul>
 <a name="toStringState-java.lang.StringBuilder-">
@@ -1416,7 +1475,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.469">toStringState</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.499">toStringState</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
 <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> State. Allows decorating
  generic Procedure State with Procedure particulars.</div>
 <dl>
@@ -1431,7 +1490,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.478">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.508">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
 <dl>
@@ -1446,7 +1505,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.489">getProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.519">getProcId</a>()</pre>
 </li>
 </ul>
 <a name="hasParent--">
@@ -1455,7 +1514,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hasParent</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.493">hasParent</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.523">hasParent</a>()</pre>
 </li>
 </ul>
 <a name="getParentProcId--">
@@ -1464,7 +1523,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.497">getParentProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.527">getParentProcId</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcId--">
@@ -1473,7 +1532,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.501">getRootProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.531">getRootProcId</a>()</pre>
 </li>
 </ul>
 <a name="getProcName--">
@@ -1482,7 +1541,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcName</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.505">getProcName</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.535">getProcName</a>()</pre>
 </li>
 </ul>
 <a name="getNonceKey--">
@@ -1491,7 +1550,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceKey</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.509">getNonceKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.539">getNonceKey</a>()</pre>
 </li>
 </ul>
 <a name="getSubmittedTime--">
@@ -1500,7 +1559,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getSubmittedTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.513">getSubmittedTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.543">getSubmittedTime</a>()</pre>
 </li>
 </ul>
 <a name="getOwner--">
@@ -1509,7 +1568,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getOwner</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.517">getOwner</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html#line.547">getOwner</a>()</pre>
 </li>
 </ul>
 <a name="hasOwner--">
@@ -1518,7 +1577,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hasOwner</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.521">hasOwner</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.551">hasOwner</a>()</pre>
 </li>
 </ul>
 <a name="setProcId-long-">
@@ -1527,7 +1586,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setProcId</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.529">setProcId</a>(long&nbsp;procId)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.559">setProcId</a>(long&nbsp;procId)</pre>
 <div class="block">Called by the ProcedureExecutor to assign the ID to the newly created procedure.</div>
 </li>
 </ul>
@@ -1537,7 +1596,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setParentProcId</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.538">setParentProcId</a>(long&nbsp;parentProcId)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.568">setParentProcId</a>(long&nbsp;parentProcId)</pre>
 <div class="block">Called by the ProcedureExecutor to assign the parent to the newly created procedure.</div>
 </li>
 </ul>
@@ -1547,7 +1606,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setRootProcId</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.542">setRootProcId</a>(long&nbsp;rootProcId)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.572">setRootProcId</a>(long&nbsp;rootProcId)</pre>
 </li>
 </ul>
 <a name="setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">
@@ -1556,7 +1615,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setNonceKey</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.550">setNonceKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.580">setNonceKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
 <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div>
 </li>
 </ul>
@@ -1566,7 +1625,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setOwner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.555">setOwner</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;owner)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.585">setOwner</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;owner)</pre>
 </li>
 </ul>
 <a name="setOwner-org.apache.hadoop.hbase.security.User-">
@@ -1575,7 +1634,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setOwner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.559">setOwner</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;owner)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.589">setOwner</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;owner)</pre>
 </li>
 </ul>
 <a name="setSubmittedTime-long-">
@@ -1584,7 +1643,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setSubmittedTime</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.568">setSubmittedTime</a>(long&nbsp;submittedTime)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.598">setSubmittedTime</a>(long&nbsp;submittedTime)</pre>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </li>
@@ -1595,7 +1654,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeout</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.578">setTimeout</a>(int&nbsp;timeout)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.608">setTimeout</a>(int&nbsp;timeout)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>timeout</code> - timeout interval in msec</dd>
@@ -1608,7 +1667,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hasTimeout</h4>
-<pre>public&nbsp;boolean&nbsp

<TRUNCATED>

[11/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug("{} is already finished, skip

<TRUNCATED>

[32/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
index 45760ce..0750888 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"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":10,"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};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"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":10,"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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -382,22 +382,30 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-">bypassProcedure</a></span>(long&nbsp;id,
+               long&nbsp;lockWait,
+               boolean&nbsp;force)</code>
+<div class="block">Bypass a procedure.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#countDownChildren-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-">countDownChildren</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#createNonceKey-long-long-">createNonceKey</a></span>(long&nbsp;nonceGroup,
               long&nbsp;nonce)</code>
 <div class="block">Create a NoneKey from the specified nonceGroup and nonce.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#execCompletionCleanup-org.apache.hadoop.hbase.procedure2.Procedure-">execCompletionCleanup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#execProcedure-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-">execProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
              <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure)</code>
@@ -407,228 +415,228 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
   If the procedure execution didn't fail (i.e.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#executeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">executeProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#executeRollback-long-org.apache.hadoop.hbase.procedure2.RootProcedureState-">executeRollback</a></span>(long&nbsp;rootProcId,
                <a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack)</code>
 <div class="block">Execute the rollback of the full procedure stack.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#executeRollback-org.apache.hadoop.hbase.procedure2.Procedure-">executeRollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>
 <div class="block">Execute the rollback of the procedure step.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getActiveExecutorCount--">getActiveExecutorCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getActiveProceduresNoCopy--">getActiveProceduresNoCopy</a></span>()</code>
 <div class="block">Should only be used when starting up, where the procedure workers have not been started.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getActiveProcIds--">getActiveProcIds</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getCorePoolSize--">getCorePoolSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getEnvironment--">getEnvironment</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getKeepAliveTime-java.util.concurrent.TimeUnit-">getKeepAliveTime</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;timeUnit)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getLastProcId--">getLastProcId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;<br>T</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getProcedure-java.lang.Class-long-">getProcedure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
             long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getProcedure-long-">getProcedure</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="https://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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getProcedures--">getProcedures</a></span>()</code>
 <div class="block">Get procedures.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getProcStack-long-">getProcStack</a></span>(long&nbsp;rootProcId)</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getResult-long-">getResult</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getResultOrProcedure-long-">getResultOrProcedure</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getRootProcedureId-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getScheduler--">getScheduler</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getStore--">getStore</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getWorkerThreadCount--">getWorkerThreadCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#handleInterruptedException-org.apache.hadoop.hbase.procedure2.Procedure-java.lang.InterruptedException-">handleInterruptedException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#init-int-boolean-">init</a></span>(int&nbsp;numThreads,
     boolean&nbsp;abortOnCorruption)</code>
 <div class="block">Initialize the procedure executor, but do not start workers.</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#initializeChildren-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">initializeChildren</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure,
                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#isFinished-long-">isFinished</a></span>(long&nbsp;procId)</code>
 <div class="block">Return true if the procedure is finished.</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#isProcedureOwner-long-org.apache.hadoop.hbase.security.User-">isProcedureOwner</a></span>(long&nbsp;procId,
                 <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
 <div class="block">Check if the user is this procedure's owner</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#isRunning--">isRunning</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#isStarted-long-">isStarted</a></span>(long&nbsp;procId)</code>
 <div class="block">Return true if the procedure is started.</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#join--">join</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#kill-java.lang.String-">kill</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#load-boolean-">load</a></span>(boolean&nbsp;abortOnCorruption)</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#loadProcedures-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator-boolean-">loadProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a>&nbsp;procIter,
               boolean&nbsp;abortOnCorruption)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#nextProcId--">nextProcId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#prepareProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">prepareProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#procedureFinished-org.apache.hadoop.hbase.procedure2.Procedure-">procedureFinished</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#pushProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">pushProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#refreshConfiguration-org.apache.hadoop.conf.Configuration-">refreshConfiguration</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#registerListener-org.apache.hadoop.hbase.procedure2.ProcedureExecutor.ProcedureExecutorListener-">registerListener</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#registerNonce-org.apache.hadoop.hbase.util.NonceKey-">registerNonce</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>
 <div class="block">Register a nonce for a procedure that is going to be submitted.</div>
 </td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#releaseLock-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">releaseLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
            boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#removeChore-org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore-">removeChore</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;chore)</code>
 <div class="block">Remove a chore procedure from the executor</div>
 </td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#removeResult-long-">removeResult</a></span>(long&nbsp;procId)</code>
 <div class="block">Mark the specified completed procedure, as ready to remove.</div>
 </td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#restoreLock-org.apache.hadoop.hbase.procedure2.Procedure-java.util.Set-">restoreLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
            <a href="https://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="https://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;restored)</code>&nbsp;</td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#restoreLocks--">restoreLocks</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#restoreLocks-java.util.Deque-java.util.Set-">restoreLocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;stack,
             <a href="https://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="https://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;restored)</code>&nbsp;</td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#sendProcedureAddedNotification-long-">sendProcedureAddedNotification</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#sendProcedureFinishedNotification-long-">sendProcedureFinishedNotification</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#sendProcedureLoadedNotification-long-">sendProcedureLoadedNotification</a></span>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#setFailureResultForNonce-org.apache.hadoop.hbase.util.NonceKey-java.lang.String-org.apache.hadoop.hbase.security.User-java.io.IOException-">setFailureResultForNonce</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
@@ -638,61 +646,61 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  same error to the requests with the same nonceKey.</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#setKeepAliveTime-long-java.util.concurrent.TimeUnit-">setKeepAliveTime</a></span>(long&nbsp;keepAliveTime,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;timeUnit)</code>&nbsp;</td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#startWorkers--">startWorkers</a></span>()</code>
 <div class="block">Start the workers.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#stop--">stop</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#submitChildrenProcedures-org.apache.hadoop.hbase.procedure2.Procedure:A-">submitChildrenProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</code>&nbsp;</td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#submitProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">submitProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>
 <div class="block">Add a new root-procedure to the executor.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#submitProcedure-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.util.NonceKey-">submitProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
                <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>
 <div class="block">Add a new root-procedure to the executor.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#submitProcedures-org.apache.hadoop.hbase.procedure2.Procedure:A-">submitProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;procs)</code>
 <div class="block">Add a set of new root-procedure to the executor.</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#unregisterListener-org.apache.hadoop.hbase.procedure2.ProcedureExecutor.ProcedureExecutorListener-">unregisterListener</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</code>&nbsp;</td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#unregisterNonceIfProcedureWasNotSubmitted-org.apache.hadoop.hbase.util.NonceKey-">unregisterNonceIfProcedureWasNotSubmitted</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>
 <div class="block">Remove the NonceKey if the procedure was not submitted to the executor.</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#updateStoreOnExec-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">updateStoreOnExec</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure,
                  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</code>&nbsp;</td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#yieldProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">yieldProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
@@ -1376,13 +1384,62 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="bypassProcedure-long-long-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bypassProcedure</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1010">bypassProcedure</a>(long&nbsp;id,
+                               long&nbsp;lockWait,
+                               boolean&nbsp;force)
+                        throws <a href="https://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">Bypass a procedure. If the procedure is set to bypass, all the logic in
+ execute/rollback will be ignored and it will return success, whatever.
+ It is used to recover buggy stuck procedures, releasing the lock resources
+ and letting other procedures to run. Bypassing one procedure (and its ancestors will
+ be bypassed automatically) may leave the cluster in a middle state, e.g. region
+ not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,
+ the operators may have to do some clean up on hdfs or schedule some assign procedures
+ to let region online. DO AT YOUR OWN RISK.
+ <p>
+ A procedure can be bypassed only if
+ 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT
+ or it is a root procedure without any child.
+ 2. No other worker thread is executing it
+ 3. No child procedure has been submitted
+
+ <p>
+ If all the requirements are meet, the procedure and its ancestors will be
+ bypassed and persisted to WAL.
+
+ <p>
+ If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.
+ TODO: What about WAITING_TIMEOUT?</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>id</code> - the procedure id</dd>
+<dd><code>lockWait</code> - time to wait lock</dd>
+<dd><code>force</code> - if force set to true, we will bypass the procedure even if it is executing.
+              This is for procedures which can't break out during executing(due to bug, mostly)
+              In this case, bypassing the procedure is not enough, since it is already stuck
+              there. We need to restart the master after bypassing, and letting the problematic
+              procedure to execute wth bypass=true, so in that condition, the procedure can be
+              successfully bypassed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if bypass success</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - IOException</dd>
+</dl>
+</li>
+</ul>
 <a name="submitProcedure-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.util.NonceKey-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>submitProcedure</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.984">submitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1097">submitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
                             <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
 <div class="block">Add a new root-procedure to the executor.</div>
 <dl>
@@ -1400,7 +1457,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>submitProcedures</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1015">submitProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;procs)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1128">submitProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;procs)</pre>
 <div class="block">Add a set of new root-procedure to the executor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1414,7 +1471,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareProcedure</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1038">prepareProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1151">prepareProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="pushProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1423,7 +1480,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>pushProcedure</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1047">pushProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1160">pushProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="abort-long-">
@@ -1432,7 +1489,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1071">abort</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1184">abort</a>(long&nbsp;procId)</pre>
 <div class="block">Send an abort notification the specified procedure.
  Depending on the procedure implementation the abort can be considered or ignored.</div>
 <dl>
@@ -1449,7 +1506,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1082">abort</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1195">abort</a>(long&nbsp;procId,
                      boolean&nbsp;mayInterruptIfRunning)</pre>
 <div class="block">Send an abort notification to the specified procedure.
  Depending on the procedure implementation, the abort can be considered or ignored.</div>
@@ -1468,7 +1525,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1096">getProcedure</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1209">getProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getProcedure-java.lang.Class-long-">
@@ -1477,7 +1534,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>public&nbsp;&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1100">getProcedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+<pre>public&nbsp;&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1213">getProcedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
                                                           long&nbsp;procId)</pre>
 </li>
 </ul>
@@ -1487,7 +1544,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1108">getResult</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1221">getResult</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isFinished-long-">
@@ -1496,7 +1553,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isFinished</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1124">isFinished</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1237">isFinished</a>(long&nbsp;procId)</pre>
 <div class="block">Return true if the procedure is finished.
  The state may be "completed successfully" or "failed and rolledback".
  Use getResult() to check the state or get the result data.</div>
@@ -1514,7 +1571,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isStarted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1133">isStarted</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1246">isStarted</a>(long&nbsp;procId)</pre>
 <div class="block">Return true if the procedure is started.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1530,7 +1587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeResult</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1145">removeResult</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1258">removeResult</a>(long&nbsp;procId)</pre>
 <div class="block">Mark the specified completed procedure, as ready to remove.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1544,7 +1601,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getResultOrProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1157">getResultOrProcedure</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1270">getResultOrProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isProcedureOwner-long-org.apache.hadoop.hbase.security.User-">
@@ -1553,7 +1610,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureOwner</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1173">isProcedureOwner</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1286">isProcedureOwner</a>(long&nbsp;procId,
                                 <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block">Check if the user is this procedure's owner</div>
 <dl>
@@ -1572,7 +1629,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveProceduresNoCopy</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1199">getActiveProceduresNoCopy</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1312">getActiveProceduresNoCopy</a>()</pre>
 <div class="block">Should only be used when starting up, where the procedure workers have not been started.
  <p/>
  If the procedure works has been started, the return values maybe changed when you are
@@ -1586,7 +1643,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1207">getProcedures</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1320">getProcedures</a>()</pre>
 <div class="block">Get procedures.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1600,7 +1657,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1223">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1336">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="unregisterListener-org.apache.hadoop.hbase.procedure2.ProcedureExecutor.ProcedureExecutorListener-">
@@ -1609,7 +1666,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterListener</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1227">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1340">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="sendProcedureLoadedNotification-long-">
@@ -1618,7 +1675,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureLoadedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1231">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1344">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureAddedNotification-long-">
@@ -1627,7 +1684,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureAddedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1243">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1356">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureFinishedNotification-long-">
@@ -1636,7 +1693,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureFinishedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1255">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1368">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="nextProcId--">
@@ -1645,7 +1702,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>nextProcId</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1270">nextProcId</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1383">nextProcId</a>()</pre>
 </li>
 </ul>
 <a name="getLastProcId--">
@@ -1654,7 +1711,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastProcId</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1287">getLastProcId</a>()</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1400">getLastProcId</a>()</pre>
 </li>
 </ul>
 <a name="getActiveProcIds--">
@@ -1663,7 +1720,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveProcIds</h4>
-<pre>public&nbsp;<a href="https://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="https://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/procedure2/ProcedureExecutor.html#line.1292">getActiveProcIds</a>()</pre>
+<pre>public&nbsp;<a href="https://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="https://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/procedure2/ProcedureExecutor.html#line.1405">getActiveProcIds</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcedureId-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1672,7 +1729,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootProcedureId</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1296">getRootProcedureId</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1409">getRootProcedureId</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="executeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1681,7 +1738,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executeProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1303">executeProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1416">executeProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="acquireLock-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1690,7 +1747,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>acquireLock</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1395">acquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1512">acquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="releaseLock-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">
@@ -1699,7 +1756,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLock</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1405">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1522">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc,
                          boolean&nbsp;force)</pre>
 </li>
 </ul>
@@ -1709,7 +1766,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1418">executeRollback</a>(long&nbsp;rootProcId,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1535">executeRollback</a>(long&nbsp;rootProcId,
                                             <a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack)</pre>
 <div class="block">Execute the rollback of the full procedure stack. Once the procedure is rolledback, the
  root-procedure will be visible as finished to user, and the result will be the fatal exception.</div>
@@ -1721,7 +1778,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1478">executeRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1596">executeRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 <div class="block">Execute the rollback of the procedure step.
  It updates the store with the new state (stack index)
  or will remove completly the procedure in case it is a child.</div>
@@ -1733,7 +1790,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>yieldProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1525">yieldProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1643">yieldProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="execProcedure-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1742,7 +1799,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1559">execProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1677">execProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                            <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure)</pre>
 <div class="block">Executes <code>procedure</code>
  <ul>
@@ -1779,7 +1836,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>kill</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1684">kill</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1802">kill</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
 </li>
 </ul>
 <a name="initializeChildren-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">
@@ -1788,7 +1845,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeChildren</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1690">initializeChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1808">initializeChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                                                      <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure,
                                                      <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</pre>
 </li>
@@ -1799,7 +1856,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>submitChildrenProcedures</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1726">submitChildrenProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1844">submitChildrenProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</pre>
 </li>
 </ul>
 <a name="countDownChildren-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1808,7 +1865,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>countDownChildren</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1736">countDownChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1854">countDownChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                                <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure)</pre>
 </li>
 </ul>
@@ -1818,7 +1875,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStoreOnExec</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1755">updateStoreOnExec</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1873">updateStoreOnExec</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procStack,
                                <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;&nbsp;procedure,
                                <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt;[]&nbsp;subprocs)</pre>
 </li>
@@ -1829,7 +1886,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>handleInterruptedException</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1781">handleInterruptedException</a>(<a href="../../../../..

<TRUNCATED>

[41/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
index d6fed65..2c2f01f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
@@ -332,7 +332,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
index ea9396c..003d8ac 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
@@ -418,7 +418,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
index 34649f0..16b2aaf 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
@@ -398,7 +398,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#upd
 ateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
index 28b8102..58d8489 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
@@ -426,7 +426,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#upd
 ateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
index f4a19fb..1f4db7d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
@@ -401,7 +401,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[09/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</

<TRUNCATED>

[45/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignProcedure.html
index 249d3d9..69df23a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignProcedure.html
@@ -339,7 +339,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/Reg
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">g
 etProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/pr
 ocedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonc
 eKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-o
 rg.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pro
 cedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">g
 etProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/pr
 ocedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">
 setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setSt
 ackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#to
 StringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
index b0f784e..f9ef44c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
@@ -211,7 +211,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureI
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/CloseRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/CloseRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/CloseRegionProcedure.html
index 08e1137..1e38e47 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/CloseRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/CloseRegionProcedure.html
@@ -268,7 +268,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/Reg
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
index b7185ea..3bf0771 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
@@ -338,7 +338,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[44/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
index 895259b..dd23d64 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
@@ -320,7 +320,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../..
 /../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
index 7fcf948..7a81a0f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
@@ -546,7 +546,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../.
 ./../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setPa
 rentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.ht
 ml#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/pro
 cedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
index b01daca..274c88e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
@@ -355,7 +355,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../..
 /../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/OpenRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/OpenRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/OpenRegionProcedure.html
index b8e4a33..77cebbd 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/OpenRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/OpenRegionProcedure.html
@@ -256,7 +256,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/Reg
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[19/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 67b7e3a..7ba3a64 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,8 +192,8 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/util/IdLock.Entry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/IdLock.Entry.html b/devapidocs/org/apache/hadoop/hbase/util/IdLock.Entry.html
index 967a2e7..94b2436 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/IdLock.Entry.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/IdLock.Entry.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.45">IdLock.Entry</a>
+<pre>public static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.46">IdLock.Entry</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">An entry returned to the client as a lock object</div>
 </li>
@@ -212,7 +212,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>id</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.46">id</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.47">id</a></pre>
 </li>
 </ul>
 <a name="numWaiters">
@@ -221,7 +221,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>numWaiters</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.47">numWaiters</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.48">numWaiters</a></pre>
 </li>
 </ul>
 <a name="locked">
@@ -230,7 +230,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>locked</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.48">locked</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.49">locked</a></pre>
 </li>
 </ul>
 </li>
@@ -247,7 +247,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Entry</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.50">Entry</a>(long&nbsp;id)</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.Entry.html#line.51">Entry</a>(long&nbsp;id)</pre>
 </li>
 </ul>
 </li>
@@ -264,7 +264,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/util/IdLock.Entry.html#line.55">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/util/IdLock.Entry.html#line.56">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/util/IdLock.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/IdLock.html b/devapidocs/org/apache/hadoop/hbase/util/IdLock.html
index 99efa36..ebae49c 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/IdLock.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/IdLock.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.42">IdLock</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.43">IdLock</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Allows multiple concurrent clients to lock on a numeric id with a minimal
  memory overhead. The intended usage is as follows:
@@ -218,6 +218,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html#tryLockEntry-long-long-">tryLockEntry</a></span>(long&nbsp;id,
+            long&nbsp;time)</code>
+<div class="block">Blocks until the lock corresponding to the given id is acquired.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html#waitForWaiters-long-int-">waitForWaiters</a></span>(long&nbsp;id,
               int&nbsp;numWaiters)</code>&nbsp;</td>
@@ -250,7 +257,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>map</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.61">map</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.62">map</a></pre>
 </li>
 </ul>
 </li>
@@ -267,7 +274,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IdLock</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.42">IdLock</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.43">IdLock</a>()</pre>
 </li>
 </ul>
 </li>
@@ -284,12 +291,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLockEntry</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.71">getLockEntry</a>(long&nbsp;id)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.72">getLockEntry</a>(long&nbsp;id)
+                          throws <a href="https://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">Blocks until the lock corresponding to the given id is acquired.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>id</code> - an arbitrary number to lock on</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an "entry" to pass to <a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html#releaseLockEntry-org.apache.hadoop.hbase.util.IdLock.Entry-"><code>releaseLockEntry(Entry)</code></a> to release
+         the lock</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if interrupted</dd>
+</dl>
+</li>
+</ul>
+<a name="tryLockEntry-long-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tryLockEntry</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.110">tryLockEntry</a>(long&nbsp;id,
+                                 long&nbsp;time)
                           throws <a href="https://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">Blocks until the lock corresponding to the given id is acquired.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>id</code> - an arbitrary number to lock on</dd>
+<dd><code>time</code> - time to wait in ms</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>an "entry" to pass to <a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html#releaseLockEntry-org.apache.hadoop.hbase.util.IdLock.Entry-"><code>releaseLockEntry(Entry)</code></a> to release
          the lock</dd>
@@ -304,7 +333,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLockEntry</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.107">releaseLockEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&nbsp;entry)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.161">releaseLockEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a>&nbsp;entry)</pre>
 <div class="block">Must be called in a finally block to decrease the internal counter and
  remove the monitor object for the given id if the caller is the last
  client.</div>
@@ -320,7 +349,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertMapEmpty</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.119">assertMapEmpty</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.173">assertMapEmpty</a>()</pre>
 <div class="block">For testing</div>
 </li>
 </ul>
@@ -330,7 +359,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>waitForWaiters</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.124">waitForWaiters</a>(long&nbsp;id,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdLock.html#line.178">waitForWaiters</a>(long&nbsp;id,
                            int&nbsp;numWaiters)
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/util/class-use/IdLock.Entry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/IdLock.Entry.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/IdLock.Entry.html
index 493ff6a..41eec75 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/IdLock.Entry.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/IdLock.Entry.html
@@ -121,6 +121,13 @@
 <div class="block">Blocks until the lock corresponding to the given id is acquired.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/IdLock.Entry.html" title="class in org.apache.hadoop.hbase.util">IdLock.Entry</a></code></td>
+<td class="colLast"><span class="typeNameLabel">IdLock.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/IdLock.html#tryLockEntry-long-long-">tryLockEntry</a></span>(long&nbsp;id,
+            long&nbsp;time)</code>
+<div class="block">Blocks until the lock corresponding to the given id is acquired.</div>
+</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index a62b5b9..e923229 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -515,13 +515,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index bcb1724..c6caa9b 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -191,8 +191,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html b/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
index 46af4ac..d40b9fc 100644
--- a/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
+++ b/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
@@ -303,56 +303,88 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decBlockCacheSizeHistogram">decBlockCacheSizeHistogram</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decMemStoreSizeHistogram">decMemStoreSizeHistogram</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decBlockCacheSizeHistogram">decBlockCacheSizeHistogram</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteBatchHisto">deleteBatchHisto</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decMemStoreSizeHistogram">decMemStoreSizeHistogram</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteBatchHisto">deleteBatchHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteBatchTimeHisto">deleteBatchTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteHisto">deleteHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteTimeHisto">deleteTimeHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span></code>&nbsp;</td>
@@ -383,68 +415,92 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionInputFileCountHisto">majorCompactionInputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionInputFileCountHisto">majorCompactionInputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionInputSizeHisto">majorCompactionInputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionInputSizeHisto">majorCompactionInputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionOutputFileCountHisto">majorCompactionOutputFileCountHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionOutputFileCountHisto">majorCompactionOutputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionOutputSizeHisto">majorCompactionOutputSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionOutputSizeHisto">majorCompactionOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionTimeHisto">majorCompactionTimeHisto</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactionTimeHisto">majorCompactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithGc">pausesWithGc</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionTimeHisto">majorCompactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithoutGc">pausesWithoutGc</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithGc">pausesWithGc</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putBatchHisto">putBatchHisto</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithoutGc">pausesWithoutGc</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putBatchHisto">putBatchHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putBatchTimeHisto">putBatchTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putHisto">putHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putTimeHisto">putTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#replayHisto">replayHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanSizeHisto">scanSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanSizeHisto">scanSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanTimeHisto">scanTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanTimeHisto">scanTimeHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitTimeHisto">splitTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#splitTimeHisto">splitTimeHisto</a></span></code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/metrics2/lib/class-use/MutableFastCounter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/metrics2/lib/class-use/MutableFastCounter.html b/devapidocs/org/apache/hadoop/metrics2/lib/class-use/MutableFastCounter.html
index ef11bc2..9d366f9 100644
--- a/devapidocs/org/apache/hadoop/metrics2/lib/class-use/MutableFastCounter.html
+++ b/devapidocs/org/apache/hadoop/metrics2/lib/class-use/MutableFastCounter.html
@@ -289,8 +289,16 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedInputBytes">compactedInputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactedInputBytes">compactedInputBytes</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedOutputBytes">compactedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactedOutputBytes">compactedOutputBytes</a></span></code>&nbsp;</td>
@@ -301,8 +309,16 @@ service.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedMemstoreBytes">flushedMemstoreBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushedMemstoreBytes">flushedMemstoreBytes</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedOutputBytes">flushedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushedOutputBytes">flushedOutputBytes</a></span></code>&nbsp;</td>
@@ -313,8 +329,16 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedInputBytes">majorCompactedInputBytes</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactedInputBytes">majorCompactedInputBytes</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedOutputBytes">majorCompactedOutputBytes</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactedOutputBytes">majorCompactedOutputBytes</a></span></code>&nbsp;</td>
@@ -365,8 +389,16 @@ service.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitRequest">splitRequest</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#splitRequest">splitRequest</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#splitSuccess">splitSuccess</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#splitSuccess">splitSuccess</a></span></code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 7fdc832..dcb2f1a 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -4427,6 +4427,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.CloseableVisitor.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.CloseableVisitor</span></a> (also extends org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.Visitor.html" title="interface in org.apache.hadoop.hbase">MetaTableAccessor.Visitor</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> (also extends java.lang.<a href="https://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;)</li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ProcedureCoordinatorRpcs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ProcedureMemberRpcs</span></a></li>
 <li type="circle">org.apache.hadoop.mapred.Reducer&lt;K2,V2,K3,V3&gt; (also extends org.apache.hadoop.io.Closeable, org.apache.hadoop.mapred.JobConfigurable)
@@ -4517,6 +4518,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.CloseableVisitor.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.CloseableVisitor</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.Visitor.html" title="interface in org.apache.hadoop.hbase">MetaTableAccessor.Visitor</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, java.lang.<a href="https://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;)</li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ProcedureCoordinatorRpcs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ProcedureMemberRpcs</span></a></li>
 <li type="circle">org.apache.hadoop.mapred.Reducer&lt;K2,V2,K3,V3&gt; (also extends org.apache.hadoop.io.Closeable, org.apache.hadoop.mapred.JobConfigurable)
@@ -4722,7 +4724,7 @@
 <li type="circle">org.apache.hadoop.hbase.procedure2.util.<a href="org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedWithTimeout.html" title="interface in org.apache.hadoop.hbase.procedure2.util"><span class="typeNameLink">DelayedUtil.DelayedWithTimeout</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreFlusher.FlushQueueEntry</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionSource</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">PositionedByteRange</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Row</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALKey.html" title="interface in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALKey</span></a> (also extends org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/SequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">SequenceId</a>)</li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/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 9226bb5..d7eec09 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 = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "3afe9fb7e6ebfa71187cbe131558a83fae61cecd";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "7c1fad4992a169a35b4457e6f4afcb30d04406e9";<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 = "Tue Aug 28 14:38:51 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri Aug 31 14:38:36 UTC 2018";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "9aef7f22b021ed2b3a335e1c1d5ab7f8";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "f509658769a003ae852dc49767341018";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[49/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 9591e20..92b1195 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -890,7 +890,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index bfd5a48..abc2d24 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -313,7 +313,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index f456258..6554a17 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -1005,7 +1005,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 2516c26..a1afb83 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3824,21 +3824,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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>"Tue Aug 28 14:38:51 UTC 2018"</code></td>
+<td class="colLast"><code>"Fri Aug 31 14:38:36 UTC 2018"</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="https://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>"3afe9fb7e6ebfa71187cbe131558a83fae61cecd"</code></td>
+<td class="colLast"><code>"7c1fad4992a169a35b4457e6f4afcb30d04406e9"</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="https://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>"9aef7f22b021ed2b3a335e1c1d5ab7f8"</code></td>
+<td class="colLast"><code>"f509658769a003ae852dc49767341018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -11485,26 +11485,40 @@
 <td class="colLast"><code>20</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_TRACE_LOG_MAX_LENGTH">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a></code></td>
+<td class="colLast"><code>1000</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_WARN_RESPONSE_SIZE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a></code></td>
 <td class="colLast"><code>104857600</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_WARN_RESPONSE_TIME">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a></code></td>
 <td class="colLast"><code>10000</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.FALLBACK_TO_INSECURE_CLIENT_AUTH">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a></code></td>
 <td class="colLast"><code>"hbase.ipc.server.fallback-to-simple-auth-allowed"</code></td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.KEY_WORD_TRUNCATED">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://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/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a></code></td>
+<td class="colLast"><code>" &lt;TRUNCATED&gt;"</code></td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.MAX_REQUEST_SIZE">
 <!--   -->
@@ -11527,13 +11541,20 @@
 <td class="colLast"><code>65536</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.TRACE_LOG_MAX_LENGTH">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://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/ipc/RpcServer.html#TRACE_LOG_MAX_LENGTH">TRACE_LOG_MAX_LENGTH</a></code></td>
+<td class="colLast"><code>"hbase.ipc.trace.log.max.length"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.WARN_RESPONSE_SIZE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://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/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a></code></td>
 <td class="colLast"><code>"hbase.ipc.warn.response.size"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.RpcServer.WARN_RESPONSE_TIME">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://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>
@@ -20046,7 +20067,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#FILTERED_READ_REQUEST_COUNT_DESC">FILTERED_READ_REQUEST_COUNT_DESC</a></code></td>
-<td class="colLast"><code>"Number of filtered read requests this RegionServer has answered."</code></td>
+<td class="colLast"><code>"Number of read requests this region server has answered."</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.FLUSH_MEMSTORE_SIZE">
@@ -21600,62 +21621,6 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.CP_REQUEST_COUNT">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT">CP_REQUEST_COUNT</a></code></td>
-<td class="colLast"><code>"cpRequestCount"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.CP_REQUEST_COUNT_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT_DESC">CP_REQUEST_COUNT_DESC</a></code></td>
-<td class="colLast"><code>"Number of coprocessor service requests"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.MEMSTORE_SIZE">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#MEMSTORE_SIZE">MEMSTORE_SIZE</a></code></td>
-<td class="colLast"><code>"memstoreSize"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.MEMSTORE_SIZE_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#MEMSTORE_SIZE_DESC">MEMSTORE_SIZE_DESC</a></code></td>
-<td class="colLast"><code>"The size of memory stores"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.READ_REQUEST_COUNT">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT">READ_REQUEST_COUNT</a></code></td>
-<td class="colLast"><code>"readRequestCount"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.READ_REQUEST_COUNT_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT_DESC">READ_REQUEST_COUNT_DESC</a></code></td>
-<td class="colLast"><code>"Number of read requests"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.STORE_FILE_SIZE">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#STORE_FILE_SIZE">STORE_FILE_SIZE</a></code></td>
-<td class="colLast"><code>"storeFileSize"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.STORE_FILE_SIZE_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#STORE_FILE_SIZE_DESC">STORE_FILE_SIZE_DESC</a></code></td>
-<td class="colLast"><code>"The size of store files size"</code></td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.TABLE_SIZE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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>
@@ -21669,34 +21634,6 @@
 <td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE_DESC">TABLE_SIZE_DESC</a></code></td>
 <td class="colLast"><code>"Total size of the table in the region server"</code></td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.TOTAL_REQUEST_COUNT">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT">TOTAL_REQUEST_COUNT</a></code></td>
-<td class="colLast"><code>"totalRequestCount"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.TOTAL_REQUEST_COUNT_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT_DESC">TOTAL_REQUEST_COUNT_DESC</a></code></td>
-<td class="colLast"><code>"Number of total requests"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.WRITE_REQUEST_COUNT">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT">WRITE_REQUEST_COUNT</a></code></td>
-<td class="colLast"><code>"writeRequestCount"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableSource.WRITE_REQUEST_COUNT_DESC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT_DESC">WRITE_REQUEST_COUNT_DESC</a></code></td>
-<td class="colLast"><code>"Number of write requests"</code></td>
-</tr>
 </tbody>
 </table>
 </li>


[23/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTable.html
index ad86b01..57c6c7e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTable.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTable.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -136,7 +136,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#tableWrapperAgg">tableWrapperAgg</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#wrapper">wrapper</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -178,6 +178,64 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#getTableWrapperAgg--">getTableWrapperAgg</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#incrSplitRequest-java.lang.String-">incrSplitRequest</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#incrSplitSuccess-java.lang.String-">incrSplitSuccess</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateCompactionInputFileCount-java.lang.String-boolean-long-">updateCompactionInputFileCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                              boolean&nbsp;isMajor,
+                              long&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateCompactionInputSize-java.lang.String-boolean-long-">updateCompactionInputSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                         boolean&nbsp;isMajor,
+                         long&nbsp;bytes)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateCompactionOutputFileCount-java.lang.String-boolean-long-">updateCompactionOutputFileCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                               boolean&nbsp;isMajor,
+                               long&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateCompactionOutputSize-java.lang.String-boolean-long-">updateCompactionOutputSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                          boolean&nbsp;isMajor,
+                          long&nbsp;bytes)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateCompactionTime-java.lang.String-boolean-long-">updateCompactionTime</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                    boolean&nbsp;isMajor,
+                    long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateFlushMemstoreSize-java.lang.String-long-">updateFlushMemstoreSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                       long&nbsp;bytes)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateFlushOutputSize-java.lang.String-long-">updateFlushOutputSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                     long&nbsp;bytes)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateFlushTime-java.lang.String-long-">updateFlushTime</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+               long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#updateSplitTime-java.lang.String-long-">updateSplitTime</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+               long&nbsp;t)</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -209,13 +267,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.26">tableSourceAgg</a></pre>
 </li>
 </ul>
-<a name="tableWrapperAgg">
+<a name="wrapper">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>tableWrapperAgg</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.27">tableWrapperAgg</a></pre>
+<h4>wrapper</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.27">wrapper</a></pre>
 </li>
 </ul>
 </li>
@@ -255,12 +313,125 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="getTableSourceAgg--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getTableSourceAgg</h4>
 <pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.39">getTableSourceAgg</a>()</pre>
 </li>
 </ul>
+<a name="incrSplitRequest-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrSplitRequest</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.43">incrSplitRequest</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+</li>
+</ul>
+<a name="incrSplitSuccess-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrSplitSuccess</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.47">incrSplitSuccess</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+</li>
+</ul>
+<a name="updateSplitTime-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSplitTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.51">updateSplitTime</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                            long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateFlushTime-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.55">updateFlushTime</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                            long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateFlushMemstoreSize-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushMemstoreSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.59">updateFlushMemstoreSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                    long&nbsp;bytes)</pre>
+</li>
+</ul>
+<a name="updateFlushOutputSize-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFlushOutputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.63">updateFlushOutputSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                  long&nbsp;bytes)</pre>
+</li>
+</ul>
+<a name="updateCompactionTime-java.lang.String-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.67">updateCompactionTime</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                 boolean&nbsp;isMajor,
+                                 long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateCompactionInputFileCount-java.lang.String-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionInputFileCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.71">updateCompactionInputFileCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                           boolean&nbsp;isMajor,
+                                           long&nbsp;c)</pre>
+</li>
+</ul>
+<a name="updateCompactionInputSize-java.lang.String-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionInputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.76">updateCompactionInputSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                      boolean&nbsp;isMajor,
+                                      long&nbsp;bytes)</pre>
+</li>
+</ul>
+<a name="updateCompactionOutputFileCount-java.lang.String-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateCompactionOutputFileCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.81">updateCompactionOutputFileCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                            boolean&nbsp;isMajor,
+                                            long&nbsp;c)</pre>
+</li>
+</ul>
+<a name="updateCompactionOutputSize-java.lang.String-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateCompactionOutputSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTable.html#line.86">updateCompactionOutputSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                       boolean&nbsp;isMajor,
+                                       long&nbsp;bytes)</pre>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html
index 2ba51ee..eb1fe09 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html
@@ -188,15 +188,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deregister-java.lang.String-">deregister</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deleteTableSource-java.lang.String-">deleteTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Remove a table's source.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-        <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>
-<div class="block">Register a MetricsTableSource as being open.</div>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>
+<div class="block">Returns MetricsTableSource registered for the table.</div>
 </td>
 </tr>
 </table>
@@ -311,29 +311,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">
+<a name="getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>register</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#line.60">register</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-              <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</pre>
-<div class="block">Register a MetricsTableSource as being open.</div>
+<h4>getOrCreateTableSource</h4>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#line.58">getOrCreateTableSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</pre>
+<div class="block">Returns MetricsTableSource registered for the table. Creates one if not defined.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>table</code> - The table name</dd>
-<dd><code>source</code> - the source for the table being opened.</dd>
 </dl>
 </li>
 </ul>
-<a name="deregister-java.lang.String-">
+<a name="deleteTableSource-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>deregister</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#line.67">deregister</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<h4>deleteTableSource</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#line.65">deleteTableSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block">Remove a table's source. This is called when regions of a table are closed.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
index cdd2880..26da1ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.32">MetricsTableAggregateSourceImpl</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.33">MetricsTableAggregateSourceImpl</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></pre>
 </li>
@@ -209,7 +209,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#deregister-java.lang.String-">deregister</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#deleteTableSource-java.lang.String-">deleteTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Remove a table's source.</div>
 </td>
 </tr>
@@ -221,12 +221,16 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-        <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>
-<div class="block">Register a MetricsTableSource as being open.</div>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>
+<div class="block">Returns MetricsTableSource registered for the table.</div>
 </td>
 </tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#register-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSourceImpl">
@@ -269,7 +273,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.35">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.36">LOG</a></pre>
 </li>
 </ul>
 <a name="tableSources">
@@ -278,7 +282,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tableSources</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="https://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="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.36">tableSources</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="https://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="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.37">tableSources</a></pre>
 </li>
 </ul>
 </li>
@@ -295,7 +299,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>MetricsTableAggregateSourceImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.38">MetricsTableAggregateSourceImpl</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.39">MetricsTableAggregateSourceImpl</a>()</pre>
 </li>
 </ul>
 <a name="MetricsTableAggregateSourceImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
@@ -304,7 +308,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsTableAggregateSourceImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.42">MetricsTableAggregateSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.43">MetricsTableAggregateSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsDescription,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsContext,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsJmxContext)</pre>
@@ -318,37 +322,45 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">
+<a name="register-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>register</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.50">register</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">MetricsTableAggregateSource</a></code></span></div>
-<div class="block">Register a MetricsTableSource as being open.</div>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.50">register</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</pre>
+</li>
+</ul>
+<a name="deleteTableSource-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteTableSource</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.57">deleteTableSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deleteTableSource-java.lang.String-">MetricsTableAggregateSource</a></code></span></div>
+<div class="block">Remove a table's source. This is called when regions of a table are closed.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deleteTableSource-java.lang.String-">deleteTableSource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>table</code> - The table name</dd>
-<dd><code>source</code> - the source for the table being opened.</dd>
 </dl>
 </li>
 </ul>
-<a name="deregister-java.lang.String-">
+<a name="getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deregister</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.55">deregister</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deregister-java.lang.String-">MetricsTableAggregateSource</a></code></span></div>
-<div class="block">Remove a table's source. This is called when regions of a table are closed.</div>
+<h4>getOrCreateTableSource</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.73">getOrCreateTableSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                                                 <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">MetricsTableAggregateSource</a></code></span></div>
+<div class="block">Returns MetricsTableSource registered for the table. Creates one if not defined.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deregister-java.lang.String-">deregister</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>table</code> - The table name</dd>
 </dl>
@@ -360,7 +372,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.76">getMetrics</a>(org.apache.hadoop.metrics2.MetricsCollector&nbsp;collector,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#line.101">getMetrics</a>(org.apache.hadoop.metrics2.MetricsCollector&nbsp;collector,
                        boolean&nbsp;all)</pre>
 <div class="block">Yes this is a get function that doesn't return anything.  Thanks Hadoop for breaking all
  expectations of java programmers.  Instead of returning anything Hadoop metrics expects

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
index 0c3d3f8..8727f9c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -101,7 +101,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Superinterfaces:</dt>
-<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;</dd>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;</dd>
 </dl>
 <dl>
 <dt>All Known Implementing Classes:</dt>
@@ -110,8 +110,8 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.28">MetricsTableSource</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;</pre>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.30">MetricsTableSource</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">This interface will be implemented to allow region server to push table metrics into
  MetricsRegionAggregateSource that will in turn push data to the Hadoop metrics system.</div>
 </li>
@@ -134,60 +134,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT">CP_REQUEST_COUNT</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT_DESC">CP_REQUEST_COUNT_DESC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#MEMSTORE_SIZE">MEMSTORE_SIZE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#MEMSTORE_SIZE_DESC">MEMSTORE_SIZE_DESC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT">READ_REQUEST_COUNT</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#READ_REQUEST_COUNT_DESC">READ_REQUEST_COUNT_DESC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#STORE_FILE_SIZE">STORE_FILE_SIZE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#STORE_FILE_SIZE_DESC">STORE_FILE_SIZE_DESC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE">TABLE_SIZE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TABLE_SIZE_DESC">TABLE_SIZE_DESC</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT">TOTAL_REQUEST_COUNT</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#TOTAL_REQUEST_COUNT_DESC">TOTAL_REQUEST_COUNT_DESC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT">WRITE_REQUEST_COUNT</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#WRITE_REQUEST_COUNT_DESC">WRITE_REQUEST_COUNT_DESC</a></span></code>&nbsp;</td>
-</tr>
 </table>
 </li>
 </ul>
@@ -219,6 +171,81 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.
 <td class="colFirst"><code><a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitRequest--">incrSplitRequest</a></span>()</code>
+<div class="block">Increment number of a requested splits</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitSuccess--">incrSplitSuccess</a></span>()</code>
+<div class="block">Increment number of successful splits</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#registerMetrics--">registerMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputFileCount-boolean-long-">updateCompactionInputFileCount</a></span>(boolean&nbsp;isMajor,
+                              long&nbsp;c)</code>
+<div class="block">Update the compaction input number of files histogram</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionInputSize-boolean-long-">updateCompactionInputSize</a></span>(boolean&nbsp;isMajor,
+                         long&nbsp;bytes)</code>
+<div class="block">Update the compaction total input file size histogram</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputFileCount-boolean-long-">updateCompactionOutputFileCount</a></span>(boolean&nbsp;isMajor,
+                               long&nbsp;c)</code>
+<div class="block">Update the compaction output number of files histogram</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionOutputSize-boolean-long-">updateCompactionOutputSize</a></span>(boolean&nbsp;isMajor,
+                          long&nbsp;bytes)</code>
+<div class="block">Update the compaction total output file size</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateCompactionTime-boolean-long-">updateCompactionTime</a></span>(boolean&nbsp;isMajor,
+                    long&nbsp;t)</code>
+<div class="block">Update the compaction time histogram, both major and minor</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushMemstoreSize-long-">updateFlushMemstoreSize</a></span>(long&nbsp;bytes)</code>
+<div class="block">Update the flush memstore size histogram</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushOutputSize-long-">updateFlushOutputSize</a></span>(long&nbsp;bytes)</code>
+<div class="block">Update the flush output file size histogram</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateFlushTime-long-">updateFlushTime</a></span>(long&nbsp;t)</code>
+<div class="block">Update the flush time histogram</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#updateSplitTime-long-">updateSplitTime</a></span>(long&nbsp;t)</code>
+<div class="block">Update the split transaction time histogram</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Comparable">
@@ -241,223 +268,238 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="READ_REQUEST_COUNT">
+<a name="TABLE_SIZE">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>READ_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.30">READ_REQUEST_COUNT</a></pre>
+<h4>TABLE_SIZE</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.32">TABLE_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.READ_REQUEST_COUNT">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TABLE_SIZE">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="READ_REQUEST_COUNT_DESC">
+<a name="TABLE_SIZE_DESC">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
-<h4>READ_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.31">READ_REQUEST_COUNT_DESC</a></pre>
+<h4>TABLE_SIZE_DESC</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.33">TABLE_SIZE_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.READ_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TABLE_SIZE_DESC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="CP_REQUEST_COUNT">
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTableName--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CP_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.32">CP_REQUEST_COUNT</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.CP_REQUEST_COUNT">Constant Field Values</a></dd>
-</dl>
+<h4>getTableName</h4>
+<pre><a href="https://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/regionserver/MetricsTableSource.html#line.35">getTableName</a>()</pre>
 </li>
 </ul>
-<a name="CP_REQUEST_COUNT_DESC">
+<a name="close--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CP_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.33">CP_REQUEST_COUNT_DESC</a></pre>
+<h4>close</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.41">close</a>()</pre>
+<div class="block">Close the table's metrics as all the region are closing.</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.CP_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="WRITE_REQUEST_COUNT">
+<a name="registerMetrics--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>WRITE_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.34">WRITE_REQUEST_COUNT</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.WRITE_REQUEST_COUNT">Constant Field Values</a></dd>
-</dl>
+<h4>registerMetrics</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.43">registerMetrics</a>()</pre>
 </li>
 </ul>
-<a name="WRITE_REQUEST_COUNT_DESC">
+<a name="getAggregateSource--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>WRITE_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.35">WRITE_REQUEST_COUNT_DESC</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.WRITE_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
-</dl>
+<h4>getAggregateSource</h4>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.48">getAggregateSource</a>()</pre>
+<div class="block">Get the aggregate source to which this reports.</div>
 </li>
 </ul>
-<a name="TOTAL_REQUEST_COUNT">
+<a name="updateSplitTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>TOTAL_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.36">TOTAL_REQUEST_COUNT</a></pre>
+<h4>updateSplitTime</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.54">updateSplitTime</a>(long&nbsp;t)</pre>
+<div class="block">Update the split transaction time histogram</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TOTAL_REQUEST_COUNT">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - time it took, in milliseconds</dd>
 </dl>
 </li>
 </ul>
-<a name="TOTAL_REQUEST_COUNT_DESC">
+<a name="incrSplitRequest--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>TOTAL_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.37">TOTAL_REQUEST_COUNT_DESC</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TOTAL_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
-</dl>
+<h4>incrSplitRequest</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.59">incrSplitRequest</a>()</pre>
+<div class="block">Increment number of a requested splits</div>
 </li>
 </ul>
-<a name="MEMSTORE_SIZE">
+<a name="incrSplitSuccess--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>MEMSTORE_SIZE</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.38">MEMSTORE_SIZE</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.MEMSTORE_SIZE">Constant Field Values</a></dd>
-</dl>
+<h4>incrSplitSuccess</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.64">incrSplitSuccess</a>()</pre>
+<div class="block">Increment number of successful splits</div>
 </li>
 </ul>
-<a name="MEMSTORE_SIZE_DESC">
+<a name="updateFlushTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>MEMSTORE_SIZE_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.39">MEMSTORE_SIZE_DESC</a></pre>
+<h4>updateFlushTime</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.70">updateFlushTime</a>(long&nbsp;t)</pre>
+<div class="block">Update the flush time histogram</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.MEMSTORE_SIZE_DESC">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - time it took, in milliseconds</dd>
 </dl>
 </li>
 </ul>
-<a name="STORE_FILE_SIZE">
+<a name="updateFlushMemstoreSize-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>STORE_FILE_SIZE</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.40">STORE_FILE_SIZE</a></pre>
+<h4>updateFlushMemstoreSize</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.76">updateFlushMemstoreSize</a>(long&nbsp;bytes)</pre>
+<div class="block">Update the flush memstore size histogram</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.STORE_FILE_SIZE">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the number of bytes in the memstore</dd>
 </dl>
 </li>
 </ul>
-<a name="STORE_FILE_SIZE_DESC">
+<a name="updateFlushOutputSize-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>STORE_FILE_SIZE_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.41">STORE_FILE_SIZE_DESC</a></pre>
+<h4>updateFlushOutputSize</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.82">updateFlushOutputSize</a>(long&nbsp;bytes)</pre>
+<div class="block">Update the flush output file size histogram</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.STORE_FILE_SIZE_DESC">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the number of bytes in the output file</dd>
 </dl>
 </li>
 </ul>
-<a name="TABLE_SIZE">
+<a name="updateCompactionTime-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>TABLE_SIZE</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.42">TABLE_SIZE</a></pre>
+<h4>updateCompactionTime</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.89">updateCompactionTime</a>(boolean&nbsp;isMajor,
+                          long&nbsp;t)</pre>
+<div class="block">Update the compaction time histogram, both major and minor</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TABLE_SIZE">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>t</code> - time it took, in milliseconds</dd>
 </dl>
 </li>
 </ul>
-<a name="TABLE_SIZE_DESC">
+<a name="updateCompactionInputFileCount-boolean-long-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
-<h4>TABLE_SIZE_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsTableSource.html#line.43">TABLE_SIZE_DESC</a></pre>
+<h4>updateCompactionInputFileCount</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.96">updateCompactionInputFileCount</a>(boolean&nbsp;isMajor,
+                                    long&nbsp;c)</pre>
+<div class="block">Update the compaction input number of files histogram</div>
 <dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableSource.TABLE_SIZE_DESC">Constant Field Values</a></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>c</code> - number of files</dd>
 </dl>
 </li>
 </ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="getTableName--">
+<a name="updateCompactionInputSize-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getTableName</h4>
-<pre><a href="https://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/regionserver/MetricsTableSource.html#line.45">getTableName</a>()</pre>
+<h4>updateCompactionInputSize</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.103">updateCompactionInputSize</a>(boolean&nbsp;isMajor,
+                               long&nbsp;bytes)</pre>
+<div class="block">Update the compaction total input file size histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>bytes</code> - the number of bytes of the compaction input file</dd>
+</dl>
 </li>
 </ul>
-<a name="close--">
+<a name="updateCompactionOutputFileCount-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>close</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.50">close</a>()</pre>
-<div class="block">Close the table's metrics as all the region are closing.</div>
+<h4>updateCompactionOutputFileCount</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.110">updateCompactionOutputFileCount</a>(boolean&nbsp;isMajor,
+                                     long&nbsp;c)</pre>
+<div class="block">Update the compaction output number of files histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>c</code> - number of files</dd>
+</dl>
 </li>
 </ul>
-<a name="getAggregateSource--">
+<a name="updateCompactionOutputSize-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getAggregateSource</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.55">getAggregateSource</a>()</pre>
-<div class="block">Get the aggregate source to which this reports.</div>
+<h4>updateCompactionOutputSize</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#line.117">updateCompactionOutputSize</a>(boolean&nbsp;isMajor,
+                                long&nbsp;bytes)</pre>
+<div class="block">Update the compaction total output file size</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isMajor</code> - whether compaction is a major compaction</dd>
+<dd><code>bytes</code> - the number of bytes of the compaction input file</dd>
+</dl>
 </li>
 </ul>
 </li>


[05/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug("{} is already finished, skipping execution", proc);<a name="line.1418"></a>
+<span class="sourceLineNo">1419

<TRUNCATED>

[27/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
index 71b9375..8f7d034 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2270">HStore.StoreFlusherImpl</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2272">HStore.StoreFlusherImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></pre>
 </li>
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>tracker</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2272">tracker</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2274">tracker</a></pre>
 </li>
 </ul>
 <a name="cacheFlushSeqNum">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushSeqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2273">cacheFlushSeqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2275">cacheFlushSeqNum</a></pre>
 </li>
 </ul>
 <a name="snapshot">
@@ -297,7 +297,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2274">snapshot</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2276">snapshot</a></pre>
 </li>
 </ul>
 <a name="tempFiles">
@@ -306,7 +306,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>tempFiles</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2275">tempFiles</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2277">tempFiles</a></pre>
 </li>
 </ul>
 <a name="committedFiles">
@@ -315,7 +315,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>committedFiles</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2276">committedFiles</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2278">committedFiles</a></pre>
 </li>
 </ul>
 <a name="cacheFlushCount">
@@ -324,7 +324,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2277">cacheFlushCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2279">cacheFlushCount</a></pre>
 </li>
 </ul>
 <a name="cacheFlushSize">
@@ -333,7 +333,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2278">cacheFlushSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2280">cacheFlushSize</a></pre>
 </li>
 </ul>
 <a name="outputFileSize">
@@ -342,7 +342,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>outputFileSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2279">outputFileSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2281">outputFileSize</a></pre>
 </li>
 </ul>
 </li>
@@ -359,7 +359,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreFlusherImpl</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2281">StoreFlusherImpl</a>(long&nbsp;cacheFlushSeqNum,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2283">StoreFlusherImpl</a>(long&nbsp;cacheFlushSeqNum,
                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</pre>
 </li>
 </ul>
@@ -377,7 +377,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>prepare</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2291">prepare</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2293">prepare</a>()</pre>
 <div class="block">This is not thread safe. The caller should have a lock on the region or the store.
  If necessary, the lock can be added with the patch provided in HBASE-10087</div>
 <dl>
@@ -394,7 +394,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>flushCache</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2301">flushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2303">flushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                 throws <a href="https://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/StoreFlushContext.html#flushCache-org.apache.hadoop.hbase.monitoring.MonitoredTask-">StoreFlushContext</a></code></span></div>
 <div class="block">Flush the cache (create the new store file)
@@ -415,7 +415,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>commit</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2310">commit</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2312">commit</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                throws <a href="https://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/StoreFlushContext.html#commit-org.apache.hadoop.hbase.monitoring.MonitoredTask-">StoreFlushContext</a></code></span></div>
 <div class="block">Commit the flush - add the store file to the store and clear the
@@ -440,7 +440,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>getOutputFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2353">getOutputFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2355">getOutputFileSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#getOutputFileSize--">getOutputFileSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></code></dd>
@@ -455,7 +455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>getCommittedFiles</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2358">getCommittedFiles</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2360">getCommittedFiles</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#getCommittedFiles--">StoreFlushContext</a></code></span></div>
 <div class="block">Returns the newly committed files from the flush. Called only if commit returns true</div>
 <dl>
@@ -472,7 +472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>replayFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2371">replayFlush</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fileNames,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2373">replayFlush</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fileNames,
                         boolean&nbsp;dropMemstoreSnapshot)
                  throws <a href="https://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">Similar to commit, but called in secondary region replicas for replaying the
@@ -495,7 +495,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2403">abort</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2405">abort</a>()
            throws <a href="https://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">Abort the snapshot preparation. Drops the snapshot if any.</div>
 <dl>


[50/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7a95251..390e47c 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -281,10 +281,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3718</td>
+<td>3720</td>
 <td>0</td>
 <td>0</td>
-<td>15330</td></tr></table></div>
+<td>15328</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -6377,7 +6377,7 @@
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServer.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>2</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java</a></td>
 <td>0</td>
@@ -6394,530 +6394,540 @@
 <td>0</td>
 <td>1</td></tr>
 <tr class="b">
+<td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableSource.java">org/apache/hadoop/hbase/regionserver/MetricsTableSource.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="a">
+<td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>2</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>3</td></tr>
 <tr class="a">
+<td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableWrapperStub.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress.java">org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MobReferenceOnlyFilter.java">org/apache/hadoop/hbase/regionserver/MobReferenceOnlyFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.java">org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MutableOnlineRegions.java">org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MutableSegment.java">org/apache/hadoop/hbase/regionserver/MutableSegment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NoTagByteBufferChunkKeyValue.java">org/apache/hadoop/hbase/regionserver/NoTagByteBufferChunkKeyValue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OOMERegionServer.java">org/apache/hadoop/hbase/regionserver/OOMERegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OnlineRegions.java">org/apache/hadoop/hbase/regionserver/OnlineRegions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OperationStatus.java">org/apache/hadoop/hbase/regionserver/OperationStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSDumpServlet.java">org/apache/hadoop/hbase/regionserver/RSDumpServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSRpcServices.java">org/apache/hadoop/hbase/regionserver/RSRpcServices.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>65</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSStatusServlet.java">org/apache/hadoop/hbase/regionserver/RSStatusServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Region.java">org/apache/hadoop/hbase/regionserver/Region.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionAsTable.java">org/apache/hadoop/hbase/regionserver/RegionAsTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>79</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionScanner.java">org/apache/hadoop/hbase/regionserver/RegionScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerAccounting.java">org/apache/hadoop/hbase/regionserver/RegionServerAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerServices.java">org/apache/hadoop/hbase/regionserver/RegionServerServices.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServicesForStores.java">org/apache/hadoop/hbase/regionserver/RegionServicesForStores.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationSinkService.java">org/apache/hadoop/hbase/regionserver/ReplicationSinkService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.java">org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.java">org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedStoreScanner.java">org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RowProcessor.java">org/apache/hadoop/hbase/regionserver/RowProcessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScanInfo.java">org/apache/hadoop/hbase/regionserver/ScanInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScanOptions.java">org/apache/hadoop/hbase/regionserver/ScanOptions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScannerIdGenerator.java">org/apache/hadoop/hbase/regionserver/ScannerIdGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.java">org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Segment.java">org/apache/hadoop/hbase/regionserver/Segment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentFactory.java">org/apache/hadoop/hbase/regionserver/SegmentFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentScanner.java">org/apache/hadoop/hbase/regionserver/SegmentScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ServerNonceManager.java">org/apache/hadoop/hbase/regionserver/ServerNonceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShipperListener.java">org/apache/hadoop/hbase/regionserver/ShipperListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShutdownHook.java">org/apache/hadoop/hbase/regionserver/ShutdownHook.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SimpleRpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SplitRequest.java">org/apache/hadoop/hbase/regionserver/SplitRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy.java">org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Store.java">org/apache/hadoop/hbase/regionserver/Store.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileComparators.java">org/apache/hadoop/hbase/regionserver/StoreFileComparators.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileInfo.java">org/apache/hadoop/hbase/regionserver/StoreFileInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileManager.java">org/apache/hadoop/hbase/regionserver/StoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileReader.java">org/apache/hadoop/hbase/regionserver/StoreFileReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileScanner.java">org/apache/hadoop/hbase/regionserver/StoreFileScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileWriter.java">org/apache/hadoop/hbase/regionserver/StoreFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlushContext.java">org/apache/hadoop/hbase/regionserver/StoreFlushContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlusher.java">org/apache/hadoop/hbase/regionserver/StoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreScanner.java">org/apache/hadoop/hbase/regionserver/StoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreUtils.java">org/apache/hadoop/hbase/regionserver/StoreUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StorefileRefresherChore.java">org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeMultiFileWriter.java">org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreConfig.java">org/apache/hadoop/hbase/regionserver/StripeStoreConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreEngine.java">org/apache/hadoop/hbase/regionserver/StripeStoreEngine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFlusher.java">org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestAtomicOperation.java">org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBlocksRead.java">org/apache/hadoop/hbase/regionserver/TestBlocksRead.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBlocksScanned.java">org/apache/hadoop/hbase/regionserver/TestBlocksScanned.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCacheOnWriteInSchema.java">org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCellFlatSet.java">org/apache/hadoop/hbase/regionserver/TestCellFlatSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCellSkipListSet.java">org/apache/hadoop/hbase/regionserver/TestCellSkipListSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestClearRegionBlockCache.java">org/apache/hadoop/hbase/regionserver/TestClearRegionBlockCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestColumnSeeking.java">org/apache/hadoop/hbase/regionserver/TestColumnSeeking.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactSplitThread.java">org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactingMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactingToCellFlatMapMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompaction.java">org/apache/hadoop/hbase/regionserver/TestCompaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactionState.java">org/apache/hadoop/hbase/regionserver/TestCompactionState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompoundBloomFilter.java">org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicyOverflow.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicyOverflow.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDefaultMemStore.java">org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDeleteMobTable.java">org/apache/hadoop/hbase/regionserver/TestDeleteMobTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestEndToEndSplitTransaction.java">org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestFSErrorsExposed.java">org/apache/hadoop/hbase/regionserver/TestFSErrorsExposed.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestFailedAppendAndSync.java">org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestGetClosestAtOrBefore.java">org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHMobStore.java">org/apache/hadoop/hbase/regionserver/TestHMobStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegion.java">org/apache/hadoop/hbase/regionserver/TestHRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>51</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionInfo.java">org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestHRegionOnCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionReplayEvents.java">org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoadWithOldClient.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoadWithOldClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHStore.java">org/apache/hadoop/hbase/regionserver/TestHStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>40</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHStoreFile.java">org/apache/hadoop/hbase/regionserver/TestHStoreFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>22</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestJoinedScanners.java">org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeepDeletes.java">org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeyValueHeap.java">org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeyValueScanFixture.java">org/apache/hadoop/hbase/regionserver/TestKeyValueScanFixture.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMajorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMajorCompaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMasterAddressTracker.java">org/apache/hadoop/hbase/regionserver/TestMasterAddressTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMemStoreLAB.java">org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMemstoreLABWithoutPool.java">org/apache/hadoop/hbase/regionserver/TestMemstoreLABWithoutPool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegion.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegionServer.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
-<td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsTableAggregate.java">org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>3</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMinorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMinorCompaction.java</a></td>
 <td>0</td>
@@ -9729,7 +9739,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#LeftCurly">LeftCurly</a></td>
-<td>192</td>
+<td>193</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -9793,7 +9803,7 @@
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li>
 <li>groups: <tt>&quot;*,org.apache.hbase.thirdparty,org.apache.hadoop.hbase.shaded&quot;</tt></li>
 <li>option: <tt>&quot;top&quot;</tt></li></ul></td>
-<td>1149</td>
+<td>1152</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -9846,7 +9856,7 @@
 <ul>
 <li>max: <tt>&quot;100&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</tt></li></ul></td>
-<td>1503</td>
+<td>1497</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -29114,43 +29124,43 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>60</td></tr>
+<td>62</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>139</td></tr>
+<td>147</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>297</td></tr>
+<td>305</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>304</td></tr>
+<td>312</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization lcurly' has incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
-<td>360</td></tr>
+<td>368</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>419</td></tr>
+<td>427</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>420</td></tr></table></div>
+<td>428</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncRegionAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java</h3>
 <table border="0" class="table table-striped">
@@ -52511,55 +52521,55 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>253</td></tr>
+<td>257</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>257</td></tr>
+<td>261</td></tr>
 <tr class="a">
 <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>258</td></tr>
+<td>262</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>370</td></tr>
+<td>374</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>371</td></tr>
+<td>375</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>465</td></tr>
+<td>469</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>466</td></tr>
+<td>470</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>572</td></tr>
+<td>593</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
-<td>649</td></tr></table></div>
+<td>670</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ipc.RpcServerFactory.java">org/apache/hadoop/hbase/ipc/RpcServerFactory.java</h3>
 <table border="0" class="table table-striped">
@@ -71870,31 +71880,31 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>153</td></tr>
+<td>179</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>154</td></tr>
+<td>180</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
-<td>156</td></tr>
+<td>182</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>157</td></tr>
+<td>183</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>692</td></tr></table></div>
+<td>722</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.ProcedureDeque.java">org/apache/hadoop/hbase/procedure2/ProcedureDeque.java</h3>
 <table border="0" class="table table-striped">
@@ -72005,7 +72015,7 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1275</td></tr></table></div>
+<td>1388</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.ProcedureScheduler.java">org/apache/hadoop/hbase/procedure2/ProcedureScheduler.java</h3>
 <table border="0" class="table table-striped">
@@ -72068,13 +72078,13 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
-<td>220</td></tr>
+<td>224</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 3 should be on the previous line.</td>
-<td>296</td></tr></table></div>
+<td>304</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.java">org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java</h3>
 <table border="0" class="table table-striped">
@@ -76829,979 +76839,979 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2838</td></tr>
+<td>2839</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>2853</td></tr>
+<td>2854</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>2903</td></tr>
+<td>2904</td></tr>
 <tr class="a">
 <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>2943</td></tr>
+<td>2944</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>2956</td></tr>
+<td>2957</td></tr>
 <tr class="a">
 <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>2957</td></tr>
+<td>2958</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>2958</td></tr>
+<td>2959</td></tr>
 <tr class="a">
 <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>2959</td></tr>
+<td>2960</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>4053</td></tr>
+<td>4054</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>4103</td></tr>
+<td>4104</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>4200</td></tr>
+<td>4201</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>4276</td></tr>
+<td>4277</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>4286</td></tr>
+<td>4287</td></tr>
 <tr class="a">
 <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>4287</td></tr>
+<td>4288</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>4292</td></tr>
+<td>4293</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>4336</td></tr>
+<td>4337</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' has incorrect indentation level 3, expected level should be 4.</td>
-<td>4370</td></tr>
+<td>4371</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 has incorrect indentation level 5, expected level should be 6.</td>
-<td>4371</td></tr>
+<td>4372</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>4424</td></tr>
+<td>4425</td></tr>
 <tr class="a">
 <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>4425</td></tr>
+<td>4426</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>4435</td></tr>
+<td>4436</td></tr>
 <tr class="a">
 <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>4437</td></tr>
+<td>4438</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>4498</td></tr>
+<td>4499</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>4500</td></tr>
+<td>4501</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>4501</td></tr>
+<td>4502</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>4522</td></tr>
+<td>4523</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>4529</td></tr>
+<td>4530</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 196 lines (max allowed is 150).</td>
-<td>4606</td></tr>
+<td>4607</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 has incorrect indentation level 9, expected level should be 8.</td>
-<td>4800</td></tr>
+<td>4801</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>4888</td></tr>
+<td>4889</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4889</td></tr>
+<td>4890</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4890</td></tr>
+<td>4891</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>4891</td></tr>
+<td>4892</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4892</td></tr>
+<td>4893</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4893</td></tr>
+<td>4894</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>4894</td></tr>
+<td>4895</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4895</td></tr>
+<td>4896</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4896</td></tr>
+<td>4897</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>4897</td></tr>
+<td>4898</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4898</td></tr>
+<td>4899</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4899</td></tr>
+<td>4900</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>4900</td></tr>
+<td>4901</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4901</td></tr>
+<td>4902</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child has incorrect indentation level 10, expected level should be 12.</td>
-<td>4902</td></tr>
+<td>4903</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>4904</td></tr>
+<td>4905</td></tr>
 <tr class="a">
 <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>5150</td></tr>
+<td>5151</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>5151</td></tr>
+<td>5152</td></tr>
 <tr class="a">
 <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>5152</td></tr>
+<td>5153</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>5153</td></tr>
+<td>5154</td></tr>
 <tr class="a">
 <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>5216</td></tr>
+<td>5217</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>5656</td></tr>
+<td>5657</td></tr>
 <tr class="a">
 <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>5745</td></tr>
+<td>5746</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>5983</td></tr>
+<td>5984</td></tr>
 <tr class="a">
 <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>5984</td></tr>
+<td>5985</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>5988</td></tr>
+<td>5989</td></tr>
 <tr class="a">
 <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>6004</td></tr>
+<td>6005</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>6013</td></tr>
+<td>6014</td></tr>
 <tr class="a">
 <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>6021</td></tr>
+<td>6022</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>6031</td></tr>
+<td>6032</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>6033</td></tr>
+<td>6034</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 193 lines (max allowed is 150).</td>
-<td>6038</td></tr>
+<td>6039</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 4, expected level should be 6.</td>
-<td>6419</td></tr>
+<td>6420</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>6497</td></tr>
+<td>6498</td></tr>
 <tr class="a">
 <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>6498</td></tr>
+<td>6499</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>6518</td></tr>
+<td>6519</td></tr>
 <tr class="a">
 <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>6538</td></tr>
+<td>6539</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>6539</td></tr>
+<td>6540</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 221 lines (max allowed is 150).</td>
-<td>6558</td></tr>
+<td>6559</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>6613</td></tr>
+<td>6614</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>6770</td></tr>
+<td>6771</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>6784</td></tr>
+<td>6785</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>6790</td></tr>
+<td>6791</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>6796</td></tr>
+<td>6797</td></tr>
 <tr class="a">
 <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>6798</td></tr>
+<td>6799</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
-<td>6841</td></tr>
+<td>6842</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>6926</td></tr>
+<td>6927</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>6928</td></tr>
+<td>6929</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>6929</td></tr>
+<td>6930</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>6930</td></tr>
+<td>6931</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>6931</td></tr>
+<td>6932</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>6932</td></tr>
+<td>6933</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>6936</td></tr>
+<td>6937</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>6968</td></tr>
+<td>6969</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>6973</td></tr>
+<td>6974</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>6981</td></tr>
+<td>6982</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>6998</td></tr>
+<td>6999</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>6999</td></tr>
+<td>7000</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>7000</td></tr>
+<td>7001</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>7003</td></tr>
+<td>7004</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7008</td></tr>
+<td>7009</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>7017</td></tr>
+<td>7018</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>7018</td></tr>
+<td>7019</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>7019</td></tr>
+<td>7020</td></tr>
 <tr class="a">
 <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>7025</td></tr>
+<td>7026</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7031</td></tr>
+<td>7032</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>7041</td></tr>
+<td>7042</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>7042</td></tr>
+<td>7043</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>7043</td></tr>
+<td>7044</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>7046</td></tr>
+<td>7047</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7050</td></tr>
+<td>7051</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>7060</td></tr>
+<td>7061</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>7061</td></tr>
+<td>7062</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>7062</td></tr>
+<td>7063</td></tr>
 <tr class="a">
 <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>7067</td></tr>
+<td>7068</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7073</td></tr>
+<td>7074</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>7092</td></tr>
+<td>7093</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>7093</td></tr>
+<td>7094</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>7094</td></tr>
+<td>7095</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>7111</td></tr>
+<td>7112</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>7112</td></tr>
+<td>7113</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>7113</td></tr>
+<td>7114</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>7134</td></tr>
+<td>7135</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>7135</td></tr>
+<td>7136</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>7136</td></tr>
+<td>7137</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>7146</td></tr>
+<td>7147</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7184</td></tr>
+<td>7185</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>7236</td></tr>
+<td>7237</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>7376</td></tr>
+<td>7377</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>7408</td></tr>
+<td>7409</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>7412</td></tr>
+<td>7413</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>7414</td></tr>
+<td>7415</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>7585</td></tr>
+<td>7586</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7605</td></tr>
+<td>7606</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
-<td>7643</td></tr>
+<td>7644</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>7747</td></tr>
+<td>7748</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7772</td></tr>
+<td>7773</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>7825</td></tr>
+<td>7826</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>7828</td></tr>
+<td>7829</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>7850</td></tr>
+<td>7851</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>7890</td></tr>
+<td>7891</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>7891</td></tr>
+<td>7892</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>7893</td></tr>
+<td>7894</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 110).</td>
-<td>7940</td></tr>
+<td>7941</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 120).</td>
-<td>7941</td></tr>
+<td>7942</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>7948</td></tr>
+<td>7949</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
-<td>7975</td></tr>
+<td>7976</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>8051</td></tr>
+<td>8052</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>8111</td></tr>
+<td>8112</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' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>8179</td></tr>
+<td>8180</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' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>8181</td></tr>
+<td>8182</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 has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>8182</td></tr>
+<td>8183</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' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>8183</td></tr>
+<td>8184</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' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>8184</td></tr>
+<td>8185</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' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>8185</td></tr>
+<td>8186</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>8352</td></tr>
+<td>8353</td></tr>
 <tr class="a">
 <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>8353</td></tr>
+<td>8354</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>8355</td></tr>
+<td>8356</td></tr>
 <tr class="a">
 <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>8356</td></tr>
+<td>8357</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>8366</td></tr>
+<td>8367</td></tr>
 <tr class="a">
 <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>8367</td></tr>
+<td>8368</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8437</td></tr>
+<td>8438</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' has incorrect indentation level 8, expected level should be 10.</td>
-<td>8439</td></tr>
+<td>8440</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 has incorrect indentation level 10, expected level should be 12.</td>
-<td>8440</td></tr>
+<td>8441</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' has incorrect indentation level 8, expected level should be 10.</td>
-<td>8441</td></tr>
+<td>8442</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>8442</td></tr>
+<td>8443</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8443</td></tr>
+<td>8444</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>8445</td></tr>
+<td>8446</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8446</td></tr>
+<td>8447</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>8448</td></tr>
+<td>8449</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8449</td></tr>
+<td>8450</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8452</td></tr>
+<td>8453</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 has incorrect indentation level 6, expected level should be 8.</td>
-<td>8455</td></tr>
+<td>8456</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 has incorrect indentation level 8, expected level should be 10.</td>
-<td>8456</td></tr></table></div>
+<td>8457</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">
@@ -78791,55 +78801,55 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>1442</td></tr>
+<td>1444</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>1481</td></tr>
+<td>1483</td></tr>
 <tr class="a">
 <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>1585</td></tr>
+<td>1587</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>1849</td></tr>
+<td>1851</td></tr>
 <tr class="a">
 <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>2061</td></tr>
+<td>2063</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>2254</td></tr>
+<td>2256</td></tr>
 <tr class="a">
 <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>2368</td></tr>
+<td>2370</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>2400</td></tr>
+<td>2402</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>2654</td></tr></table></div>
+<td>2656</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.HStoreFile.java">org/apache/hadoop/hbase/regionserver/HStoreFile.java</h3>
 <table border="0" class="table table-striped">
@@ -79676,17 +79686,23 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
-<td>25</td></tr></table></div>
+<td>25</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>sizes</td>
+<td>LineLength</td>
+<td>Line is longer than 100 characters (found 110).</td>
+<td>217</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -79695,19 +79711,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperStub.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 10, expected level should be 4.</td>
 <td>225</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>FileTabCharacter</td>
@@ -79716,69 +79732,96 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.MetricsTable.java">org/apache/hadoop/hbase/regionserver/MetricsTable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>30</td></tr></table></div>
 <div class="section">
-<h3 id="org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java</h3>
+<h3 id="org.apache.hadoop.hbase.regionserver.MetricsTableSource.java">org/apache/hadoop/hbase/regionserver/MetricsTableSource.java</h3>
 <table border="0" class="table table-striped">
+<tr class="b">
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>ImportOrder</td>
+<td>Wrong order for 'java.io.Closeable' import.</td>
+<td>23</td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.hadoop.hbase.regionserver.MetricsTableSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java</h3>
+<table border="0" class="table table-striped">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>ImportOrder</td>
+<td>Wrong order for 'org.apache.hadoop.metrics2.MetricHistogram' import.</td>
+<td>26</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
-<td>Wrong order for 'org.apache.hadoop.metrics2.MetricsExecutor' import.</td>
-<td>35</td></tr>
+<td>Wrong order for 'org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES' import.</td>
+<td>33</td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java</h3>
+<table border="0" class="table table-striped">
 <tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 103).</td>
-<td>46</td></tr>
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 106).</td>
-<td>54</td></tr>
+<td>imports</td>
+<td>ImportOrder</td>
+<td>Wrong order for 'org.apache.hadoop.metrics2.MetricsExecutor' import.</td>
+<td>35</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>77</td></tr>
+<td>80</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
-<td>Line is longer than 100 characters (found 106).</td>
-<td>78</td></tr>
+<td>Line is longer than 100 characters (found 102).</td>
+<td>81</td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.hadoop.hbase.regionserver.MetricsTableWrapperStub.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java</h3>
+<table border="0" class="table table-striped">
 <tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 109).</td>
-<td>80</td></tr>
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 101).</td>
-<td>89</td></tr></table></div>
+<td>blocks</td>
+<td>LeftCurly</td>
+<td>'{' at column 48 should have line break after.</td>
+<td>109</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress.java">org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.java</h3>
 <table border="0" class="table table-striped">
@@ -85543,33 +85586,6 @@
 <td>Line is longer than 100 characters (found 103).</td>
 <td>124</td></tr></table></div>
 <div class="section">
-<h3 id="org.apache.hadoop.hbase.regionserver.TestMetricsTableAggregate.java">org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 102).</td>
-<td>50</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 103).</td>
-<td>52</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 103).</td>
-<td>53</td></tr></table></div>
-<div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestMinorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMinorCompaction.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
@@ -118809,7 +118825,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 90ec82a..a1dc3f0 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3718,
-             Errors: 15330,
+      <title>File: 3720,
+             Errors: 15328,
              Warnings: 0,
              Infos: 0
       </title>
@@ -14452,6 +14452,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.procedure2.TestProcedureBypass.java">org/apache/hadoop/hbase/procedure2/TestProcedureBypass.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.ipc.HBaseRpcController.java">org/apache/hadoop/hbase/ipc/HBaseRpcController.java</a>
                 </td>
                 <td>
@@ -25213,7 +25227,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  0
                 </td>
               </tr>
                           <tr>
@@ -29427,7 +29441,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -34159,7 +34173,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  3
                 </td>
               </tr>
                           <tr>
@@ -35662,6 +35676,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.ipc.TestRpcServerTraceLogging.java">org/apache/hadoop/hbase/ipc/TestRpcServerTraceLogging.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.CellBuilder.java">org/apache/hadoop/hbase/CellBuilder.java</a>
                 </td>
                 <td>
@@ -35937,7 +35965,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -47305,7 +47333,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -51309,7 +51337,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index b1b68a8..6e76768 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -375,7 +375,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: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 386deec..0046c07 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 


[31/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
index e3b7912..b5ac659 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
@@ -243,7 +243,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.
 html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParent
 ProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailu
 re</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.Procedur
 eStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/proced
 ure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLo
 ck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
index 9e56968..5dfd906 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
@@ -299,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToProcedure</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.220">convertToProcedure</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.Procedure&nbsp;proto)
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.224">convertToProcedure</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.Procedure&nbsp;proto)
                                     throws <a href="https://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">Helper to convert the protobuf procedure.
  Used by ProcedureStore implementations.
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToProtoResourceType</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockedResourceType&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.285">convertToProtoResourceType</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a>&nbsp;resourceType)</pre>
+<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockedResourceType&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.293">convertToProtoResourceType</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a>&nbsp;resourceType)</pre>
 </li>
 </ul>
 <a name="convertToProtoLockType-org.apache.hadoop.hbase.procedure2.LockType-">
@@ -329,7 +329,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToProtoLockType</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockType&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.290">convertToProtoLockType</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;lockType)</pre>
+<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockType&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.298">convertToProtoLockType</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;lockType)</pre>
 </li>
 </ul>
 <a name="convertToProtoLockedResource-org.apache.hadoop.hbase.procedure2.LockedResource-">
@@ -338,7 +338,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>convertToProtoLockedResource</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockedResource&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.294">convertToProtoLockedResource</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>&nbsp;lockedResource)
+<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockedResource&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#line.302">convertToProtoLockedResource</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>&nbsp;lockedResource)
                                                                                                                        throws <a href="https://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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
index 6697d2d..ff2ccad 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
@@ -238,7 +238,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.stor
 e.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/proced
 ure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent
 --">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-
 java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../
 org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">h
 asOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Proced
 ure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB
 --">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
index d52c035..71a2775 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
@@ -403,7 +403,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.
 html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a h
 ref="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.Procedur
 eStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/proced
 ure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFail
 ure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-lon
 g-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
index 7eec32e..b05e4c3 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
@@ -180,7 +180,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureS
 tateSerializer-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChild
 ren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../..
 /org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRoot
 ProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Proced
 ure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutT
 imestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Proc
 edure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcI
 d</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironm
 ent-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnF
 inish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[06/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug("{} is already finished, skipping execution"

<TRUNCATED>

[07/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug("{} is already finished, skipping execu

<TRUNCATED>

[46/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
index e0d6d30..c3098e6 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":9,"i12":6,"i13":9,"i14":9,"i15":9,"i16":9,"i17":10,"i18":10,"i19":9,"i20":9,"i21":9,"i22":9,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":9,"i12":6,"i13":9,"i14":9,"i15":9,"i16":9,"i17":10,"i18":10,"i19":9,"i20":9,"i21":9,"i22":9,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -250,26 +250,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a></span></code>
 <div class="block">Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#LOG">LOG</a></span></code>&nbsp;</td>
@@ -380,22 +388,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#TRACE_LOG_MAX_LENGTH">TRACE_LOG_MAX_LENGTH</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userProvider">userProvider</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</a></span></code>&nbsp;</td>
 </tr>
@@ -623,6 +635,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a></span>(org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;secretManager)</code>&nbsp;</td>
 </tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>(package private) <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#truncateTraceLog-java.lang.String-">truncateTraceLog</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;strParam)</code>
+<div class="block">Truncate to number of chars decided by conf hbase.ipc.trace.log.max.length
+ if TRACE is on else to 150 chars Refer to Jira HBASE-20826 and HBASE-20942</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -1067,13 +1086,52 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 </dl>
 </li>
 </ul>
+<a name="DEFAULT_TRACE_LOG_MAX_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_TRACE_LOG_MAX_LENGTH</h4>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.194">DEFAULT_TRACE_LOG_MAX_LENGTH</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_TRACE_LOG_MAX_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TRACE_LOG_MAX_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRACE_LOG_MAX_LENGTH</h4>
+<pre>protected static final&nbsp;<a href="https://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/ipc/RpcServer.html#line.195">TRACE_LOG_MAX_LENGTH</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.TRACE_LOG_MAX_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="KEY_WORD_TRUNCATED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_WORD_TRUNCATED</h4>
+<pre>protected static final&nbsp;<a href="https://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/ipc/RpcServer.html#line.196">KEY_WORD_TRUNCATED</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.KEY_WORD_TRUNCATED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="MAPPER">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>MAPPER</h4>
-<pre>protected static final&nbsp;com.fasterxml.jackson.databind.ObjectMapper <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.194">MAPPER</a></pre>
+<pre>protected static final&nbsp;com.fasterxml.jackson.databind.ObjectMapper <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.198">MAPPER</a></pre>
 </li>
 </ul>
 <a name="maxRequestSize">
@@ -1082,7 +1140,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>maxRequestSize</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.196">maxRequestSize</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.200">maxRequestSize</a></pre>
 </li>
 </ul>
 <a name="warnResponseTime">
@@ -1091,7 +1149,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>warnResponseTime</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.197">warnResponseTime</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.201">warnResponseTime</a></pre>
 </li>
 </ul>
 <a name="warnResponseSize">
@@ -1100,7 +1158,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>warnResponseSize</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.198">warnResponseSize</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.202">warnResponseSize</a></pre>
 </li>
 </ul>
 <a name="minClientRequestTimeout">
@@ -1109,7 +1167,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>minClientRequestTimeout</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.200">minClientRequestTimeout</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.204">minClientRequestTimeout</a></pre>
 </li>
 </ul>
 <a name="server">
@@ -1118,7 +1176,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>server</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.202">server</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.206">server</a></pre>
 </li>
 </ul>
 <a name="services">
@@ -1127,7 +1185,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>services</h4>
-<pre>protected final&nbsp;<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.203">services</a></pre>
+<pre>protected final&nbsp;<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.207">services</a></pre>
 </li>
 </ul>
 <a name="scheduler">
@@ -1136,7 +1194,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>scheduler</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.205">scheduler</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.209">scheduler</a></pre>
 </li>
 </ul>
 <a name="userProvider">
@@ -1145,7 +1203,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>userProvider</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.207">userProvider</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.211">userProvider</a></pre>
 </li>
 </ul>
 <a name="reservoir">
@@ -1154,7 +1212,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>reservoir</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.209">reservoir</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.213">reservoir</a></pre>
 </li>
 </ul>
 <a name="minSizeForReservoirUse">
@@ -1163,7 +1221,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>minSizeForReservoirUse</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.213">minSizeForReservoirUse</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.217">minSizeForReservoirUse</a></pre>
 </li>
 </ul>
 <a name="allowFallbackToSimpleAuth">
@@ -1172,7 +1230,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>allowFallbackToSimpleAuth</h4>
-<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.215">allowFallbackToSimpleAuth</a></pre>
+<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.219">allowFallbackToSimpleAuth</a></pre>
 </li>
 </ul>
 <a name="rsRpcServices">
@@ -1181,7 +1239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>rsRpcServices</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.221">rsRpcServices</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.225">rsRpcServices</a></pre>
 <div class="block">Used to get details for scan with a scanner_id<br/>
  TODO try to figure out a better way and remove reference from regionserver package later.</div>
 </li>
@@ -1192,7 +1250,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NIO_BUFFER_LIMIT</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.569">NIO_BUFFER_LIMIT</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.590">NIO_BUFFER_LIMIT</a></pre>
 <div class="block">When the read or write buffer size is larger than this limit, i/o will be
  done in chunks of this size. Most RPC requests and responses would be
  be smaller.</div>
@@ -1216,7 +1274,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.261">RpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.265">RpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                  <a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;bindAddress,
@@ -1254,7 +1312,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinSizeForReservoirUse</h4>
-<pre>static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.325">getMinSizeForReservoirUse</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a>&nbsp;pool)</pre>
+<pre>static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.329">getMinSizeForReservoirUse</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a>&nbsp;pool)</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -1263,7 +1321,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.330">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.334">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">ConfigurationObserver</a></code></span></div>
 <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>
@@ -1279,7 +1337,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>initReconfigurable</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.337">initReconfigurable</a>(org.apache.hadoop.conf.Configuration&nbsp;confToLoad)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.341">initReconfigurable</a>(org.apache.hadoop.conf.Configuration&nbsp;confToLoad)</pre>
 </li>
 </ul>
 <a name="getConf--">
@@ -1288,7 +1346,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getConf</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.351">getConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.355">getConf</a>()</pre>
 </li>
 </ul>
 <a name="isStarted--">
@@ -1297,7 +1355,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>isStarted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.356">isStarted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.360">isStarted</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#isStarted--">isStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1310,7 +1368,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshAuthManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.361">refreshAuthManager</a>(org.apache.hadoop.security.authorize.PolicyProvider&nbsp;pp)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.365">refreshAuthManager</a>(org.apache.hadoop.security.authorize.PolicyProvider&nbsp;pp)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#refreshAuthManager-org.apache.hadoop.security.authorize.PolicyProvider-">RpcServerInterface</a></code></span></div>
 <div class="block">Refresh authentication manager policy.</div>
 <dl>
@@ -1325,7 +1383,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>createSecretManager</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.369">createSecretManager</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.373">createSecretManager</a>()</pre>
 </li>
 </ul>
 <a name="getSecretManager--">
@@ -1334,7 +1392,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getSecretManager</h4>
-<pre>public&nbsp;org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.381">getSecretManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.385">getSecretManager</a>()</pre>
 </li>
 </ul>
 <a name="setSecretManager-org.apache.hadoop.security.token.SecretManager-">
@@ -1343,7 +1401,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>setSecretManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.386">setSecretManager</a>(org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;secretManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.390">setSecretManager</a>(org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;secretManager)</pre>
 </li>
 </ul>
 <a name="call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">
@@ -1352,7 +1410,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message,<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.396">call</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>&nbsp;call,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message,<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.400">call</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>&nbsp;call,
                                                                                       <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&nbsp;status)
                                                                                throws <a href="https://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">This is a server side method, which is invoked over RPC. On success
@@ -1372,7 +1430,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>logResponse</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.486">logResponse</a>(org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.490">logResponse</a>(org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;methodName,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;call,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tag,
@@ -1401,13 +1459,30 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 </dl>
 </li>
 </ul>
+<a name="truncateTraceLog-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>truncateTraceLog</h4>
+<pre><a href="https://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/ipc/RpcServer.html#line.530">truncateTraceLog</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;strParam)</pre>
+<div class="block">Truncate to number of chars decided by conf hbase.ipc.trace.log.max.length
+ if TRACE is on else to 150 chars Refer to Jira HBASE-20826 and HBASE-20942</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>strParam</code> - stringifiedParam to be truncated</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>truncated trace log string</dd>
+</dl>
+</li>
+</ul>
 <a name="setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setErrorHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.525">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;handler)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.546">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;handler)</pre>
 <div class="block">Set the handler for calling out of RPC for error conditions.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1423,7 +1498,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrorHandler</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.530">getErrorHandler</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.551">getErrorHandler</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getErrorHandler--">getErrorHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1436,7 +1511,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.538">getMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.559">getMetrics</a>()</pre>
 <div class="block">Returns the metrics instance for reporting RPC call statistics</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1450,7 +1525,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>addCallSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.543">addCallSize</a>(long&nbsp;diff)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.564">addCallSize</a>(long&nbsp;diff)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#addCallSize-long-">RpcServerInterface</a></code></span></div>
 <div class="block">Add/subtract from the current size of all outstanding calls.  Called on setup of a call to add
  call total size and then again at end of a call to remove the call size.</div>
@@ -1468,7 +1543,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>authorize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.554">authorize</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.575">authorize</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user,
                       org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;connection,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;addr)
                throws org.apache.hadoop.security.authorize.AuthorizationException</pre>
@@ -1489,7 +1564,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>channelRead</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.583">channelRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.604">channelRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)
                    throws <a href="https://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">This is a wrapper around <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true#read-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>ReadableByteChannel.read(java.nio.ByteBuffer)</code></a>.
@@ -1515,7 +1590,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>channelIO</h4>
-<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.605">channelIO</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;readCh,
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.626">channelIO</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;readCh,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;writeCh,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1541,7 +1616,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>allocateByteBuffToReadInto</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServer.CallCleanup</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.643">allocateByteBuffToReadInto</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a>&nbsp;pool,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServer.CallCleanup</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.664">allocateByteBuffToReadInto</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a>&nbsp;pool,
                                                                        int&nbsp;minSizeForPoolUse,
                                                                        int&nbsp;reqLen)</pre>
 <div class="block">This is extracted to a static method for better unit testing. We try to get buffer(s) from pool
@@ -1561,7 +1636,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentCall</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.688">getCurrentCall</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.709">getCurrentCall</a>()</pre>
 <div class="block">Needed for features such as delayed calls.  We need to be able to store the current call
  so that we can complete it later or ask questions of what is supported by the current ongoing
  call.</div>
@@ -1577,7 +1652,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>isInRpcCallContext</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.692">isInRpcCallContext</a>()</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.713">isInRpcCallContext</a>()</pre>
 </li>
 </ul>
 <a name="getRequestUser--">
@@ -1586,7 +1661,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUser</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.701">getRequestUser</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.722">getRequestUser</a>()</pre>
 <div class="block">Returns the user credentials associated with the current RPC request or not present if no
  credentials were provided.</div>
 <dl>
@@ -1601,7 +1676,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumOpenConnections</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.710">getNumOpenConnections</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.731">getNumOpenConnections</a>()</pre>
 <div class="block">The number of open RPC conections</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1615,7 +1690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUserName</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.716">getRequestUserName</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.737">getRequestUserName</a>()</pre>
 <div class="block">Returns the username for any user associated with the current RPC
  request or not present if no user is set.</div>
 </li>
@@ -1626,7 +1701,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteAddress</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.723">getRemoteAddress</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.744">getRemoteAddress</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Address of remote client if a request is ongoing, else null</dd>
@@ -1639,7 +1714,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceAndInterface</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.732">getServiceAndInterface</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.753">getServiceAndInterface</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                                                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1656,7 +1731,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceInterface</h4>
-<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.747">getServiceInterface</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.768">getServiceInterface</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1673,7 +1748,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getService</h4>
-<pre>protected static&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.760">getService</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>protected static&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.781">getService</a>(<a href="https://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/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                                                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1690,7 +1765,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getStatus</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.768">getStatus</a>()</pre>
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.789">getStatus</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteIp--">
@@ -1699,7 +1774,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteIp</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.784">getRemoteIp</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.805">getRemoteIp</a>()</pre>
 <div class="block">Returns the remote side ip address when invoked inside an RPC
   Returns null incase of an error.</div>
 <dl>
@@ -1714,7 +1789,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getScheduler</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.793">getScheduler</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.814">getScheduler</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getScheduler--">getScheduler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1727,7 +1802,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setRsRpcServices</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.798">setRsRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;rsRpcServices)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.819">setRsRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;rsRpcServices)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html
index 8da5286..3f74f00 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html
@@ -231,7 +231,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" titl
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allowFallbackToSimpleAuth">allowFallbackToSimpleAuth</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUDITLOG">AUDITLOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_FAILED_FOR">AUTH_FAILED_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_SUCCESSFUL_FOR">AUTH_SUCCESSFUL_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authManager">authManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authTokenSecretMgr">authTokenSecretMgr</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#bindAddress">bindAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#callQueueSizeInBytes">callQueueSizeInBytes</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#cellBlockBuilder">cellBlockBuilder</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CurCall">CurCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_SIZE">DEFAULT_MAX_CALLQUEUE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_REQUEST_SIZE">DEFAULT_MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT">DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFA
 ULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#LOG">LOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAPPER">MAPPER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxQueueSizeInBytes">maxQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxRequestSi
 ze">maxRequestSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MIN_CLIENT_REQUEST_TIMEOUT">MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minClientRequestTimeout">minClientRequestTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minSizeForReservoirUse">minSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MONITORED_RPC">MONITORED_RPC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#REQUEST_TOO_BIG_EXCEPTION">REQUEST_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#reservoir">reservoir</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#running">running</a>, <a
  href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#saslProps">saslProps</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#scheduler">scheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#secretManager">secretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#server">server</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#services">services</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#started">started</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpKeepAlive">tcpKeepAlive</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userProvider">userProvider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop
 /hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allowFallbackToSimpleAuth">allowFallbackToSimpleAuth</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUDITLOG">AUDITLOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_FAILED_FOR">AUTH_FAILED_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_SUCCESSFUL_FOR">AUTH_SUCCESSFUL_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authManager">authManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authTokenSecretMgr">authTokenSecretMgr</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#bindAddress">bindAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#callQueueSizeInBytes">callQueueSizeInBytes</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#cellBlockBuilder">cellBlockBuilder</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CurCall">CurCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_SIZE">DEFAULT_MAX_CALLQUEUE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_REQUEST_SIZE">DEFAULT_MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT">DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFA
 ULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#LOG">LOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAPPER">MAPPER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcSe
 rver.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxQueueSizeInBytes">maxQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxRequestSize">maxRequestSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MIN_CLIENT_REQUEST_TIMEOUT">MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minClientRequestTimeout">minClientRequestTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minSizeForReservoirUse">minSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MONITORED_RPC">MONITORED_RPC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#
 REQUEST_TOO_BIG_EXCEPTION">REQUEST_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#reservoir">reservoir</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#running">running</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#saslProps">saslProps</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#scheduler">scheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#secretManager">secretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#server">server</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#services">services</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#started">started</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpKeepAlive">tcpKeepAlive</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#TRACE_LOG_MAX_LENGTH">TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userProvider">userProvider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</a></code></li>
 </ul>
 </li>
 </ul>
@@ -362,7 +362,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" titl
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#addCallSize-long-">addCallSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allocateByteBuffToReadInto-org.apache.hadoop.hbase.io.ByteBufferPool-int-int-">allocateByteBuffToReadInto</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authorize-org.apache.hadoop.security.UserGroupInformation-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader-java.net.InetAddress-">authorize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">call</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#createSecretManager--">createSecretManager</a>, <a href="../../../../../
 org/apache/hadoop/hbase/ipc/RpcServer.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getCurrentCall--">getCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getErrorHandler--">getErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMinSizeForReservoirUse-org.apache.hadoop.hbase.io.ByteBufferPool-">getMinSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteAddress--">getRemoteAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteIp--">getRemoteIp</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUser--">getRequestUser</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUserName--">getRequestUserName</a>, <a href="../../../../../org
 /apache/hadoop/hbase/ipc/RpcServer.html#getScheduler--">getScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getSecretManager--">getSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getService-java.util.List-java.lang.String-">getService</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceAndInterface-java.util.List-java.lang.String-">getServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceInterface-java.util.List-java.lang.String-">getServiceInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getStatus--">getStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#initReconfigurable-org.apache.hadoop.conf.Configuration-">initReconfigurable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isInRpcCallContext--">isInRpcCallContext</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/ipc/RpcServer.html#isStarted--">isStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#logResponse-org.apache.hbase.thirdparty.com.google.protobuf.Message-java.lang.String-java.lang.String-java.lang.String-java.lang.String-long-int-int-long-">logResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#refreshAuthManager-org.apache.hadoop.security.authorize.PolicyProvider-">refreshAuthManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">setErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServe
 r.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#addCallSize-long-">addCallSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allocateByteBuffToReadInto-org.apache.hadoop.hbase.io.ByteBufferPool-int-int-">allocateByteBuffToReadInto</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authorize-org.apache.hadoop.security.UserGroupInformation-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader-java.net.InetAddress-">authorize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">call</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#createSecretManager--">createSecretManager</a>, <a href="../../../../../
 org/apache/hadoop/hbase/ipc/RpcServer.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getCurrentCall--">getCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getErrorHandler--">getErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMinSizeForReservoirUse-org.apache.hadoop.hbase.io.ByteBufferPool-">getMinSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteAddress--">getRemoteAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteIp--">getRemoteIp</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUser--">getRequestUser</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUserName--">getRequestUserName</a>, <a href="../../../../../org
 /apache/hadoop/hbase/ipc/RpcServer.html#getScheduler--">getScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getSecretManager--">getSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getService-java.util.List-java.lang.String-">getService</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceAndInterface-java.util.List-java.lang.String-">getServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceInterface-java.util.List-java.lang.String-">getServiceInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getStatus--">getStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#initReconfigurable-org.apache.hadoop.conf.Configuration-">initReconfigurable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isInRpcCallContext--">isInRpcCallContext</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/ipc/RpcServer.html#isStarted--">isStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#logResponse-org.apache.hbase.thirdparty.com.google.protobuf.Message-java.lang.String-java.lang.String-java.lang.String-java.lang.String-long-int-int-long-">logResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#refreshAuthManager-org.apache.hadoop.security.authorize.PolicyProvider-">refreshAuthManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">setErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServe
 r.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#truncateTraceLog-java.lang.String-">truncateTraceLog</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/74f60271/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index a77bff8..4335db6 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,10 +293,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>


[08/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug("{} is already finished, skipping execution", proc);<a name="line.141

<TRUNCATED>

[38/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
index 7c4a28d..8edbe84 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
@@ -377,7 +377,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../
 ../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure
 2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apach
 e/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#s
 etParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedur
 e.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index ddea7b8..7a808ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -216,8 +216,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
index 2ce06a9..ac9d6a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
@@ -312,7 +312,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/P
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
index 4f06177..4a2df6d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
@@ -343,7 +343,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
index 8e71b8d..2985889 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
@@ -312,7 +312,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[17/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
index 51bf304..db6ac15 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
@@ -199,614 +199,635 @@
 <span class="sourceLineNo">191</span>  protected static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.191"></a>
 <span class="sourceLineNo">192</span>  protected static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  protected final int maxRequestSize;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  protected final int warnResponseTime;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  protected final int warnResponseSize;<a name="line.198"></a>
+<span class="sourceLineNo">194</span>  protected static final int DEFAULT_TRACE_LOG_MAX_LENGTH = 1000;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected static final String TRACE_LOG_MAX_LENGTH = "hbase.ipc.trace.log.max.length";<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected static final String KEY_WORD_TRUNCATED = " &lt;TRUNCATED&gt;";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.198"></a>
 <span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected final int minClientRequestTimeout;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  protected final Server server;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  protected final RpcScheduler scheduler;<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected UserProvider userProvider;<a name="line.207"></a>
+<span class="sourceLineNo">200</span>  protected final int maxRequestSize;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected final int warnResponseTime;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final int warnResponseSize;<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  protected final int minClientRequestTimeout;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  protected final Server server;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  protected final ByteBufferPool reservoir;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  // request/response is at least this size.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected final int minSizeForReservoirUse;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private RSRpcServices rsRpcServices;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  @FunctionalInterface<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  protected static interface CallCleanup {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    void run();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  public static class BlockingServiceAndInterface {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    private final BlockingService service;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.service = service;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.serviceInterface = serviceInterface;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return this.serviceInterface;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    public BlockingService getBlockingService() {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return this.service;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Constructs a server listening on the named port and address.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * instance else pass null for no authentication check.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param services A list of services.<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param bindAddress Where to listen<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param conf<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @param scheduler<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public RpcServer(final Server server, final String name,<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (reservoirEnabled) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      // is by default 64 KB.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      // we consider and consider that also for the max buffers to pool<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    } else {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      reservoir = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.server = server;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.services = services;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.bindAddress = bindAddress;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.conf = conf;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // See declaration above for documentation on what this size is.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.maxQueueSizeInBytes =<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.307"></a>
+<span class="sourceLineNo">209</span>  protected final RpcScheduler scheduler;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected UserProvider userProvider;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  protected final ByteBufferPool reservoir;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  // request/response is at least this size.<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  protected final int minSizeForReservoirUse;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  private RSRpcServices rsRpcServices;<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  @FunctionalInterface<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected static interface CallCleanup {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    void run();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public static class BlockingServiceAndInterface {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    private final BlockingService service;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.service = service;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.serviceInterface = serviceInterface;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      return this.serviceInterface;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    public BlockingService getBlockingService() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      return this.service;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  /**<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * Constructs a server listening on the named port and address.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * instance else pass null for no authentication check.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param services A list of services.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @param bindAddress Where to listen<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * @param conf<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * @param scheduler<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  public RpcServer(final Server server, final String name,<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (reservoirEnabled) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      // is by default 64 KB.<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      // we consider and consider that also for the max buffers to pool<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    } else {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      reservoir = null;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.server = server;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.services = services;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.bindAddress = bindAddress;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.conf = conf;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    // See declaration above for documentation on what this size is.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.maxQueueSizeInBytes =<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.307"></a>
 <span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    if (isSecurityEnabled) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      saslProps = Collections.emptyMap();<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    this.scheduler = scheduler;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @VisibleForTesting<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    return pool.getBufferSize() / 6;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    initReconfigurable(newConf);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      LOG.warn("********* WARNING! *********");<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      LOG.warn("impersonation is possible!");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      LOG.warn("****************************");<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  Configuration getConf() {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return conf;<a name="line.352"></a>
+<span class="sourceLineNo">309</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    if (isSecurityEnabled) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    } else {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      saslProps = Collections.emptyMap();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    this.scheduler = scheduler;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>  @VisibleForTesting<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return pool.getBufferSize() / 6;<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>  @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    initReconfigurable(newConf);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<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>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      LOG.warn("********* WARNING! *********");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      LOG.warn("impersonation is possible!");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      LOG.warn("****************************");<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
 <span class="sourceLineNo">353</span>  }<a name="line.353"></a>
 <span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  public boolean isStarted() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return this.started;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    // it'll break if you go via static route.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    synchronized (authManager) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      authManager.refresh(this.conf, pp);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    if (!isSecurityEnabled) return null;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if (server == null) return null;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    Configuration conf = server.getConfiguration();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    long keyUpdateInterval =<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    long maxAge =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return this.secretManager;<a name="line.382"></a>
+<span class="sourceLineNo">355</span>  Configuration getConf() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return conf;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>  @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  public boolean isStarted() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    return this.started;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // it'll break if you go via static route.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    synchronized (authManager) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      authManager.refresh(this.conf, pp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    if (!isSecurityEnabled) return null;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    if (server == null) return null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Configuration conf = server.getConfiguration();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    long keyUpdateInterval =<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    long maxAge =<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.382"></a>
 <span class="sourceLineNo">383</span>  }<a name="line.383"></a>
 <span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @SuppressWarnings("unchecked")<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * the return response has protobuf response payload. On failure, the<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   */<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Override<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      MonitoredRPCHandler status) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    try {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      MethodDescriptor md = call.getMethod();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      Message param = call.getParam();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        call.getReceiveTime());<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      // TODO: Review after we add in encoded data blocks.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      status.setRPCPacket(param);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      status.resume("Servicing call");<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      //get an instance of the method arg type<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      controller.setCallTimeout(call.getTimeout());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      long receiveTime = call.getReceiveTime();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      long startTime = call.getStartTime();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      long endTime = System.currentTimeMillis();<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      int processingTime = (int) (endTime - startTime);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      int qTime = (int) (startTime - receiveTime);<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      if (LOG.isTraceEnabled()) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        LOG.trace(CurCall.get().toString() +<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.418"></a>
-<span class="sourceLineNo">419</span>            " queueTime: " + qTime +<a name="line.419"></a>
-<span class="sourceLineNo">420</span>            " processingTime: " + processingTime +<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            " totalTime: " + totalTime);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      // Use the raw request call size for now.<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      long requestSize = call.getSize();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      long responseSize = result.getSerializedSize();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      if (call.isClientCellBlockSupported()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        // Include the payload size in HBaseRpcController<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        responseSize += call.getResponseCellSize();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>      metrics.dequeuedCall(qTime);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      metrics.processedCall(processingTime);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      metrics.totalCall(totalTime);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      metrics.receivedRequest(requestSize);<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      metrics.sentResponse(responseSize);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // log any RPC responses that are slower than the configured warn<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // response time or larger than configured warning size<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      if (tooSlow || tooLarge) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        // note that large responses will often also be slow.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        logResponse(param,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.444"></a>
-<span class="sourceLineNo">445</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>            responseSize);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    } catch (Throwable e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      // need to pass it over the wire.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      if (e instanceof ServiceException) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        if (e.getCause() == null) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>        } else {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          e = e.getCause();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      // increment the number of requests that were exceptions.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      metrics.exception(e);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      LOG.error("Unexpected throwable object ", e);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      throw new IOException(e.getMessage(), e);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * client Operations.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * @param param The parameters received in the call.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * @param methodName The name of the method invoked<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param call The string representation of the call<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param clientAddress   The address of the client who made this call.<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @param qTime           The duration that the call spent on the queue<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   *                        prior to being initiated, in ms.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      long responseSize) throws IOException {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    // base information that is reported regardless of type of call<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    responseInfo.put("starttimems", startTime);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    responseInfo.put("processingtimems", processingTime);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    responseInfo.put("queuetimems", qTime);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    responseInfo.put("responsesize", responseSize);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    responseInfo.put("client", clientAddress);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    responseInfo.put("method", methodName);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    responseInfo.put("call", call);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      stringifiedParam = stringifiedParam.subSequence(<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          0, LOG.isTraceEnabled() ? 1000 : 150) + " &lt;TRUNCATED&gt;";<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    responseInfo.put("param", stringifiedParam);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      if (request.hasScannerId()) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        long scannerId = request.getScannerId();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (scanDetails != null) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          responseInfo.put("scandetails", scanDetails);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @param handler the handler implementation<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  @Override<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    this.errorHandler = handler;<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>  @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this.errorHandler;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  @Override<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  public MetricsHBaseServer getMetrics() {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return metrics;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  public void addCallSize(final long diff) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    this.callQueueSizeInBytes.add(diff);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>  /**<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * Authorize the incoming client connection.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param user client user<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param connection incoming connection<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param addr InetAddress of incoming connection<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      InetAddress addr) throws AuthorizationException {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (authorize) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      synchronized (authManager) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * be smaller.<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   *<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   * @param channel writable byte channel to write on<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * @param buffer buffer to write<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return number of bytes written<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * @throws java.io.IOException e<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * @see java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   */<a name="line.582"></a>
-<span class="sourceLineNo">583</span>  protected int channelRead(ReadableByteChannel channel,<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                                   ByteBuffer buffer) throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    int count = (buffer.remaining() &lt;= NIO_BUFFER_LIMIT) ?<a name="line.586"></a>
-<span class="sourceLineNo">587</span>           channel.read(buffer) : channelIO(channel, null, buffer);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (count &gt; 0) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      metrics.receivedBytes(count);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    return count;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * Only one of readCh or writeCh should be non-null.<a name="line.596"></a>
+<span class="sourceLineNo">385</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return this.secretManager;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  @SuppressWarnings("unchecked")<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * the return response has protobuf response payload. On failure, the<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @Override<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      MonitoredRPCHandler status) throws IOException {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      MethodDescriptor md = call.getMethod();<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      Message param = call.getParam();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        call.getReceiveTime());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      // TODO: Review after we add in encoded data blocks.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      status.setRPCPacket(param);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      status.resume("Servicing call");<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      //get an instance of the method arg type<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      controller.setCallTimeout(call.getTimeout());<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      long receiveTime = call.getReceiveTime();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      long startTime = call.getStartTime();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      long endTime = System.currentTimeMillis();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      int processingTime = (int) (endTime - startTime);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      int qTime = (int) (startTime - receiveTime);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      if (LOG.isTraceEnabled()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        LOG.trace(CurCall.get().toString() +<a name="line.421"></a>
+<span class="sourceLineNo">422</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            " queueTime: " + qTime +<a name="line.423"></a>
+<span class="sourceLineNo">424</span>            " processingTime: " + processingTime +<a name="line.424"></a>
+<span class="sourceLineNo">425</span>            " totalTime: " + totalTime);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      // Use the raw request call size for now.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      long requestSize = call.getSize();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      long responseSize = result.getSerializedSize();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      if (call.isClientCellBlockSupported()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        // Include the payload size in HBaseRpcController<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        responseSize += call.getResponseCellSize();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      metrics.dequeuedCall(qTime);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      metrics.processedCall(processingTime);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      metrics.totalCall(totalTime);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      metrics.receivedRequest(requestSize);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      metrics.sentResponse(responseSize);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      // log any RPC responses that are slower than the configured warn<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // response time or larger than configured warning size<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      if (tooSlow || tooLarge) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        // note that large responses will often also be slow.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        logResponse(param,<a name="line.447"></a>
+<span class="sourceLineNo">448</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.448"></a>
+<span class="sourceLineNo">449</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.449"></a>
+<span class="sourceLineNo">450</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.450"></a>
+<span class="sourceLineNo">451</span>            responseSize);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    } catch (Throwable e) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      // need to pass it over the wire.<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      if (e instanceof ServiceException) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        if (e.getCause() == null) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        } else {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          e = e.getCause();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // increment the number of requests that were exceptions.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      metrics.exception(e);<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      LOG.error("Unexpected throwable object ", e);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      throw new IOException(e.getMessage(), e);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   * client Operations.<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * @param param The parameters received in the call.<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @param methodName The name of the method invoked<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * @param call The string representation of the call<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.482"></a>
+<span class="sourceLineNo">483</span>   * @param clientAddress   The address of the client who made this call.<a name="line.483"></a>
+<span class="sourceLineNo">484</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * @param qTime           The duration that the call spent on the queue<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   *                        prior to being initiated, in ms.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      long responseSize) throws IOException {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    // base information that is reported regardless of type of call<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    responseInfo.put("starttimems", startTime);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    responseInfo.put("processingtimems", processingTime);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    responseInfo.put("queuetimems", qTime);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    responseInfo.put("responsesize", responseSize);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    responseInfo.put("client", clientAddress);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    responseInfo.put("method", methodName);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    responseInfo.put("call", call);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      stringifiedParam = truncateTraceLog(stringifiedParam);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    responseInfo.put("param", stringifiedParam);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      if (request.hasScannerId()) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        long scannerId = request.getScannerId();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        if (scanDetails != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>          responseInfo.put("scandetails", scanDetails);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * Truncate to number of chars decided by conf hbase.ipc.trace.log.max.length<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * if TRACE is on else to 150 chars Refer to Jira HBASE-20826 and HBASE-20942<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * @param strParam stringifiedParam to be truncated<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * @return truncated trace log string<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   */<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  @VisibleForTesting<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  String truncateTraceLog(String strParam) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    if (LOG.isTraceEnabled()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      int traceLogMaxLength = getConf().getInt(TRACE_LOG_MAX_LENGTH, DEFAULT_TRACE_LOG_MAX_LENGTH);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      int truncatedLength =<a name="line.533"></a>
+<span class="sourceLineNo">534</span>          strParam.length() &lt; traceLogMaxLength ? strParam.length() : traceLogMaxLength;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      String truncatedFlag = truncatedLength == strParam.length() ? "" : KEY_WORD_TRUNCATED;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return strParam.subSequence(0, truncatedLength) + truncatedFlag;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    return strParam.subSequence(0, 150) + KEY_WORD_TRUNCATED;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param handler the handler implementation<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    this.errorHandler = handler;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>  @Override<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return this.errorHandler;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  public MetricsHBaseServer getMetrics() {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    return metrics;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>  @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  public void addCallSize(final long diff) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    this.callQueueSizeInBytes.add(diff);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>  }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>  /**<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * Authorize the incoming client connection.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @param user client user<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * @param connection incoming connection<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * @param addr InetAddress of incoming connection<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      InetAddress addr) throws AuthorizationException {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    if (authorize) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      synchronized (authManager) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>  }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>  /**<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * be smaller.<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.596"></a>
 <span class="sourceLineNo">597</span>   *<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param readCh read channel<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param writeCh write channel<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param buf buffer to read or write into/out of<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @return bytes written<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @throws java.io.IOException e<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @see #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  private static int channelIO(ReadableByteChannel readCh,<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                               WritableByteChannel writeCh,<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                               ByteBuffer buf) throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>    int originalLimit = buf.limit();<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    int initialRemaining = buf.remaining();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    int ret = 0;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    while (buf.remaining() &gt; 0) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      try {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        int ioSize = Math.min(buf.remaining(), NIO_BUFFER_LIMIT);<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        buf.limit(buf.position() + ioSize);<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>        ret = (readCh == null) ? writeCh.write(buf) : readCh.read(buf);<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>        if (ret &lt; ioSize) {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          break;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>      } finally {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        buf.limit(originalLimit);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      }<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    int nBytes = initialRemaining - buf.remaining();<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    return (nBytes &gt; 0) ? nBytes : ret;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * This is extracted to a static method for better unit testing. We try to get buffer(s) from pool<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * as much as possible.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   *<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * @param pool The ByteBufferPool to use<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * @param minSizeForPoolUse Only for buffer size above this, we will try to use pool. Any buffer<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   *           need of size below this, create on heap ByteBuffer.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * @param reqLen Bytes count in request<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
-<span class="sourceLineNo">642</span>  @VisibleForTesting<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  static Pair&lt;ByteBuff, CallCleanup&gt; allocateByteBuffToReadInto(ByteBufferPool pool,<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      int minSizeForPoolUse, int reqLen) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    ByteBuff resultBuf;<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    List&lt;ByteBuffer&gt; bbs = new ArrayList&lt;&gt;((reqLen / pool.getBufferSize()) + 1);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    int remain = reqLen;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    ByteBuffer buf = null;<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    while (remain &gt;= minSizeF

<TRUNCATED>

[42/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html
index db068f2..c2a5af1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html
@@ -351,7 +351,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/Reg
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">g
 etProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/pr
 ocedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonc
 eKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-o
 rg.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pro
 cedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">g
 etProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/pr
 ocedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">
 setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setSt
 ackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#to
 StringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
index 47fe85d..36cc289 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
@@ -477,7 +477,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href=
 "../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcN
 ame--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a 
 href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-"
 >setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSub
 mit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href=
 "../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcN
 ame--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a 
 href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 35d64e9..b063aeb 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -347,11 +347,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
index e0ee4cc..c679efa 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
@@ -299,7 +299,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
index 7c3e7be..3bad750 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
@@ -331,7 +331,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../..
 /../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[39/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
index 54cb5e2..6b6503e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
@@ -403,7 +403,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Proc
 edure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedu
 re2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
 ProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop
 .hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pro
 cedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
index 7f12943..190eae5 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
@@ -338,7 +338,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/M
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apa
 che.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.ha
 doop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdat
 e</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</
 a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetail
 s--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
index 25c9b9d..0830c6b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
@@ -316,7 +316,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
index 718b8a4..08b2e4e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
@@ -432,7 +432,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-jav
 a.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinis
 h-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
index fc6eafc..a04047d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
@@ -418,7 +418,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../..
 /org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedur
 e.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProc
 Name</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hba
 se.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[26/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
index cd9aaf5..4f72101 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
@@ -1749,7 +1749,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <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/HStore.html#line.2432">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2434">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -1758,7 +1758,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DEEP_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2436">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2438">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 </li>
@@ -2857,7 +2857,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>moveCompactedFilesIntoPlace</h4>
-<pre>private&nbsp;<a href="https://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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1442">moveCompactedFilesIntoPlace</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr,
+<pre>private&nbsp;<a href="https://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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1444">moveCompactedFilesIntoPlace</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr,
                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&nbsp;newFiles,
                                                      <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2873,7 +2873,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>moveFileIntoPlace</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1458">moveFileIntoPlace</a>(org.apache.hadoop.fs.Path&nbsp;newFile)
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1460">moveFileIntoPlace</a>(org.apache.hadoop.fs.Path&nbsp;newFile)
                       throws <a href="https://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>
@@ -2887,7 +2887,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>writeCompactionWalRecord</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1470">writeCompactionWalRecord</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesCompacted,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1472">writeCompactionWalRecord</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesCompacted,
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;newFiles)
                                throws <a href="https://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">Writes the compaction WAL record.</div>
@@ -2906,7 +2906,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceStoreFiles</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1490">replaceStoreFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedFiles,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1492">replaceStoreFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedFiles,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;result)
                 throws <a href="https://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>
@@ -2921,7 +2921,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>updateSpaceQuotaAfterFileReplacement</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1521">updateSpaceQuotaAfterFileReplacement</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;sizeStore,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1523">updateSpaceQuotaAfterFileReplacement</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;sizeStore,
                                           <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;oldFiles,
                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;newFiles)</pre>
@@ -2942,7 +2942,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>logCompactionEndMessage</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1548">logCompactionEndMessage</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1550">logCompactionEndMessage</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr,
                                      <a href="https://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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;sfs,
                                      long&nbsp;now,
                                      long&nbsp;compactionStartTime)</pre>
@@ -2961,7 +2961,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>replayCompactionMarker</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1587">replayCompactionMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;compaction,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1589">replayCompactionMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;compaction,
                                    boolean&nbsp;pickCompactionFiles,
                                    boolean&nbsp;removeFiles)
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2982,7 +2982,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRecentForTestingAssumingDefaultPolicy</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1652">compactRecentForTestingAssumingDefaultPolicy</a>(int&nbsp;N)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1654">compactRecentForTestingAssumingDefaultPolicy</a>(int&nbsp;N)
                                                   throws <a href="https://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">This method tries to compact N recent files for testing.
  Note that because compacting "recent" files only makes sense for some policies,
@@ -3002,7 +3002,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>hasReferences</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1704">hasReferences</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1706">hasReferences</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#hasReferences--">hasReferences</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3017,7 +3017,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionProgress</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionProgress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1733">getCompactionProgress</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionProgress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1735">getCompactionProgress</a>()</pre>
 <div class="block">getter for CompactionProgress object</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3031,7 +3031,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldPerformMajorCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1738">shouldPerformMajorCompaction</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1740">shouldPerformMajorCompaction</a>()
                                      throws <a href="https://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/Store.html#shouldPerformMajorCompaction--">Store</a></code></span></div>
 <div class="block">Tests whether we should run a major compaction. For example, if the configured major compaction
@@ -3052,7 +3052,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCompaction</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1750">requestCompaction</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1752">requestCompaction</a>()
                                               throws <a href="https://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>
@@ -3066,7 +3066,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCompaction</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1754">requestCompaction</a>(int&nbsp;priority,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1756">requestCompaction</a>(int&nbsp;priority,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionLifeCycleTracker</a>&nbsp;tracker,
                                                      <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3082,7 +3082,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>addToCompactingFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1836">addToCompactingFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToAdd)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1838">addToCompactingFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToAdd)</pre>
 <div class="block">Adds the files to compacting files. filesCompacting must be locked.</div>
 </li>
 </ul>
@@ -3092,7 +3092,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>removeUnneededFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1848">removeUnneededFiles</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1850">removeUnneededFiles</a>()
                           throws <a href="https://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>
@@ -3106,7 +3106,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>cancelRequestedCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1884">cancelRequestedCompaction</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1886">cancelRequestedCompaction</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction)</pre>
 </li>
 </ul>
 <a name="finishCompactionRequest-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequestImpl-">
@@ -3115,7 +3115,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>finishCompactionRequest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1888">finishCompactionRequest</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1890">finishCompactionRequest</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr)</pre>
 </li>
 </ul>
 <a name="validateStoreFile-org.apache.hadoop.fs.Path-">
@@ -3124,7 +3124,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>validateStoreFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1904">validateStoreFile</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1906">validateStoreFile</a>(org.apache.hadoop.fs.Path&nbsp;path)
                         throws <a href="https://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">Validates a store file by opening and closing it. In HFileV2 this should not be an expensive
  operation.</div>
@@ -3142,7 +3142,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>completeCompaction</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1933">completeCompaction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedFiles)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1935">completeCompaction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedFiles)
                            throws <a href="https://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"><p>It works by processing a compaction that's been written to disk.
 
@@ -3168,7 +3168,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>versionsToReturn</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1952">versionsToReturn</a>(int&nbsp;wantedVersions)</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1954">versionsToReturn</a>(int&nbsp;wantedVersions)</pre>
 </li>
 </ul>
 <a name="canSplit--">
@@ -3177,7 +3177,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>canSplit</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1962">canSplit</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1964">canSplit</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#canSplit--">Store</a></code></span></div>
 <div class="block">Returns whether this store is splittable, i.e., no reference file in this store.</div>
 <dl>
@@ -3192,7 +3192,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitPoint</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1979">getSplitPoint</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1981">getSplitPoint</a>()</pre>
 <div class="block">Determines if Store should be split.</div>
 </li>
 </ul>
@@ -3202,7 +3202,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastCompactSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.1999">getLastCompactSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2001">getLastCompactSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getLastCompactSize--">getLastCompactSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3217,7 +3217,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2004">getSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2006">getSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getSize--">getSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3232,7 +3232,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerMajorCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2008">triggerMajorCompaction</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2010">triggerMajorCompaction</a>()</pre>
 </li>
 </ul>
 <a name="getScanner-org.apache.hadoop.hbase.client.Scan-java.util.NavigableSet-long-">
@@ -3241,7 +3241,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2024">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2026">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;targetCols,
                                   long&nbsp;readPt)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3264,7 +3264,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>createScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2041">createScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2043">createScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;targetCols,
                                         long&nbsp;readPt)
@@ -3281,7 +3281,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>recreateScanners</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2063">recreateScanners</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;currentFileScanners,
+<pre>public&nbsp;<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2065">recreateScanners</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;currentFileScanners,
                                               boolean&nbsp;cacheBlocks,
                                               boolean&nbsp;usePread,
                                               boolean&nbsp;isCompaction,
@@ -3320,7 +3320,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/HStore.html#line.2097">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/HStore.html#line.2099">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -3333,7 +3333,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2102">getStorefilesCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2104">getStorefilesCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getStorefilesCount--">getStorefilesCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3348,7 +3348,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactedFilesCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2107">getCompactedFilesCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2109">getCompactedFilesCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactedFilesCount--">getCompactedFilesCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3363,7 +3363,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileAgeStream</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/LongStream.html?is-external=true" title="class or interface in java.util.stream">LongStream</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2111">getStoreFileAgeStream</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/LongStream.html?is-external=true" title="class or interface in java.util.stream">LongStream</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2113">getStoreFileAgeStream</a>()</pre>
 </li>
 </ul>
 <a name="getMaxStoreFileAge--">
@@ -3372,7 +3372,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxStoreFileAge</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2124">getMaxStoreFileAge</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2126">getMaxStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMaxStoreFileAge--">getMaxStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3387,7 +3387,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinStoreFileAge</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2129">getMinStoreFileAge</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2131">getMinStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMinStoreFileAge--">getMinStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3402,7 +3402,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getAvgStoreFileAge</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalDouble.html?is-external=true" title="class or interface in java.util">OptionalDouble</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2134">getAvgStoreFileAge</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalDouble.html?is-external=true" title="class or interface in java.util">OptionalDouble</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2136">getAvgStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getAvgStoreFileAge--">getAvgStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3417,7 +3417,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumReferenceFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2139">getNumReferenceFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2141">getNumReferenceFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getNumReferenceFiles--">getNumReferenceFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3432,7 +3432,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumHFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2145">getNumHFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2147">getNumHFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getNumHFiles--">getNumHFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3447,7 +3447,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreSizeUncompressed</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2151">getStoreSizeUncompressed</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2153">getStoreSizeUncompressed</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getStoreSizeUncompressed--">getStoreSizeUncompressed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3462,7 +3462,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2156">getStorefilesSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2158">getStorefilesSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getStorefilesSize--">getStorefilesSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3477,7 +3477,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getHFilesSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2162">getHFilesSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2164">getHFilesSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getHFilesSize--">getHFilesSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3492,7 +3492,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2167">getStorefilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;predicate)</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2169">getStorefilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;predicate)</pre>
 </li>
 </ul>
 <a name="getStoreFileFieldSize-java.util.function.ToLongFunction-">
@@ -3501,7 +3501,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileFieldSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2178">getStoreFileFieldSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2180">getStoreFileFieldSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</pre>
 </li>
 </ul>
 <a name="getStorefilesRootLevelIndexSize--">
@@ -3510,7 +3510,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesRootLevelIndexSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2190">getStorefilesRootLevelIndexSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2192">getStorefilesRootLevelIndexSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getStorefilesRootLevelIndexSize--">getStorefilesRootLevelIndexSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3525,7 +3525,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalStaticIndexSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2195">getTotalStaticIndexSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2197">getTotalStaticIndexSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getTotalStaticIndexSize--">Store</a></code></span></div>
 <div class="block">Returns the total size of all index blocks in the data block indexes, including the root level,
  intermediate levels, and the leaf level for multi-level indexes, or just the root level for
@@ -3544,7 +3544,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalStaticBloomSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2200">getTotalStaticBloomSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2202">getTotalStaticBloomSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getTotalStaticBloomSize--">Store</a></code></span></div>
 <div class="block">Returns the total byte size of all Bloom filter bit arrays. For compound Bloom filters even the
  Bloom blocks currently not loaded into the block cache are counted.</div>
@@ -3562,7 +3562,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreSize</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2205">getMemStoreSize</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2207">getMemStoreSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMemStoreSize--">getMemStoreSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3577,7 +3577,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/HStore.html#line.2210">getCompactPriority</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2212">getCompactPriority</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactPriority--">getCompactPriority</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3590,7 +3590,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>throttleCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2218">throttleCompaction</a>(long&nbsp;compactionSize)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2220">throttleCompaction</a>(long&nbsp;compactionSize)</pre>
 </li>
 </ul>
 <a name="getHRegion--">
@@ -3599,7 +3599,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getHRegion</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2222">getHRegion</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2224">getHRegion</a>()</pre>
 </li>
 </ul>
 <a name="getCoprocessorHost--">
@@ -3608,7 +3608,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/HStore.html#line.2226">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/HStore.html#line.2228">getCoprocessorHost</a>()</pre>
 </li>
 </ul>
 <a name="getRegionInfo--">
@@ -3617,7 +3617,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2231">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2233">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3632,7 +3632,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>areWritesEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2236">areWritesEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2238">areWritesEnabled</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#areWritesEnabled--">areWritesEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3645,7 +3645,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getSmallestReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2241">getSmallestReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2243">getSmallestReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getSmallestReadPoint--">getSmallestReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3662,7 +3662,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>upsert</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2256">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2258">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
                    long&nbsp;readpoint,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreSizing)
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3687,7 +3687,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>createFlushContext</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2266">createFlushContext</a>(long&nbsp;cacheFlushId,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2268">createFlushContext</a>(long&nbsp;cacheFlushId,
                                             <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</pre>
 </li>
 </ul>
@@ -3697,7 +3697,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>needsCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2415">needsCompaction</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2417">needsCompaction</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#needsCompaction--">Store</a></code></span></div>
 <div class="block">See if there's too much store files in this store</div>
 <dl>
@@ -3715,7 +3715,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2428">getCacheConfig</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2430">getCacheConfig</a>()</pre>
 <div class="block">Used for tests.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3729,7 +3729,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/HStore.html#line.2443">heapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2445">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>
@@ -3745,7 +3745,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getComparator</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2449">getComparator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2451">getComparator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getComparator--">getComparator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3758,7 +3758,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2453">getScanInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2455">getScanInfo</a>()</pre>
 </li>
 </ul>
 <a name="setScanInfo-org.apache.hadoop.hbase.regionserver.ScanInfo-">
@@ -3767,7 +3767,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setScanInfo</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2461">setScanInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2463">setScanInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo)</pre>
 <div class="block">Set scan info, used by test</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3781,7 +3781,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>hasTooManyStoreFiles</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2466">hasTooManyStoreFiles</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2468">hasTooManyStoreFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#hasTooManyStoreFiles--">hasTooManyStoreFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3796,7 +3796,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2471">getFlushedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2473">getFlushedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedCellsCount--">getFlushedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3811,7 +3811,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2476">getFlushedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2478">getFlushedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedCellsSize--">getFlushedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3826,7 +3826,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedOutputFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2481">getFlushedOutputFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2483">getFlushedOutputFileSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedOutputFileSize--">getFlushedOutputFileSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3841,7 +3841,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2486">getCompactedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2488">getCompactedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactedCellsCount--">getCompactedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3856,7 +3856,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2491">getCompactedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2493">getCompactedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactedCellsSize--">getCompactedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3871,7 +3871,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorCompactedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2496">getMajorCompactedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2498">getMajorCompactedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMajorCompactedCellsCount--">getMajorCompactedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3886,7 +3886,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorCompactedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2501">getMajorCompactedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2503">getMajorCompactedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMajorCompactedCellsSize--">getMajorCompactedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3901,7 +3901,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreEngine</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;?,?,?,?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2510">getStoreEngine</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;?,?,?,?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2512">getStoreEngine</a>()</pre>
 <div class="block">Returns the StoreEngine that is backing this concrete implementation of Store.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3915,7 +3915,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getOffPeakHours</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">OffPeakHours</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2514">getOffPeakHours</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">OffPeakHours</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2516">getOffPeakHours</a>()</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -3924,7 +3924,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/HStore.html#line.2522">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2524">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>
@@ -3939,7 +3939,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/HStore.html#line.2534">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/HStore.html#line.2536">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>
@@ -3955,7 +3955,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/HStore.html#line.2542">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/HStore.html#line.2544">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>
@@ -3971,7 +3971,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionPressure</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2547">getCompactionPressure</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2549">getCompactionPressure</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactionPressure--">Store</a></code></span></div>
 <div class="block">This value can represent the degree of emergency of compaction for this store. It should be
  greater than or equal to 0.0, any value greater than 1.0 means we have too many store files.
@@ -3998,7 +3998,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isPrimaryReplicaStore</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2552">isPrimaryReplicaStore</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2554">isPrimaryReplicaStore</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#isPrimaryReplicaStore--">isPrimaryReplicaStore</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -4011,7 +4011,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>preSnapshotOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2560">preSnapshotOperation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2562">preSnapshotOperation</a>()</pre>
 <div class="block">Sets the store up for a region level snapshot operation.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -4025,7 +4025,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>postSnapshotOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2568">postSnapshotOperation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2570">postSnapshotOperation</a>()</pre>
 <div class="block">Perform tasks needed after the completion of snapshot operation.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -4039,7 +4039,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAndArchiveCompactedFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2575">closeAndArchiveCompactedFiles</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2577">closeAndArchiveCompactedFiles</a>()
                                    throws <a href="https://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 and archives the compacted files under this store</div>
 <dl>
@@ -4054,7 +4054,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>removeCompactedfiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2605">removeCompactedfiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedfiles)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2607">removeCompactedfiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedfiles)
                            throws <a href="https://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">Archives and removes the compacted files</div>
 <dl>
@@ -4071,7 +4071,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2691">getStoreFileSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2693">getStoreFileSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</pre>
 <div class="block">Computes the length of a store file without succumbing to any errors along the way. If an
  error is encountered, the implementation returns <code>0</code> instead of the actual size.</div>
 <dl>
@@ -4088,7 +4088,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>preFlushSeqIDEstimation</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2709">preFlushSeqIDEstimation</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2711">preFlushSeqIDEstimation</a>()</pre>
 </li>
 </ul>
 <a name="isSloppyMemStore--">
@@ -4097,7 +4097,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isSloppyMemStore</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2714">isSloppyMemStore</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2716">isSloppyMemStore</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#isSloppyMemStore--">isSloppyMemStore</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -4112,7 +4112,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>clearCompactedfiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2718">clearCompactedfiles</a>(<a href="https://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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToRemove)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2720">clearCompactedfiles</a>(<a href="https://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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToRemove)
                           throws <a href="https://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>
@@ -4126,7 +4126,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reportArchivedFilesForQuota</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2728">reportArchivedFilesForQuota</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;archivedFiles,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2730">reportArchivedFilesForQuota</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;archivedFiles,
                                  <a href="https://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="https://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;fileSizes)</pre>
 </li>
 </ul>
@@ -4136,7 +4136,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCurrentParallelPutCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line

<TRUNCATED>

[30/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index f242040..7540a86 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -216,11 +216,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 2c29b8a..a5d95b7 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index a2b8adf..d8caead 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3074">HRegion.BatchOperation.Visitor</a></pre>
+public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3075">HRegion.BatchOperation.Visitor</a></pre>
 <div class="block">Visitor interface for batch operations</div>
 </li>
 </ul>
@@ -155,7 +155,7 @@ public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>visit</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3079">visit</a>(int&nbsp;index)
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3080">visit</a>(int&nbsp;index)
        throws <a href="https://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="paramLabel">Parameters:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 9f20806..4523a90 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3044">HRegion.BatchOperation</a>&lt;T&gt;
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3045">HRegion.BatchOperation</a>&lt;T&gt;
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Class that tracks the progress of a batch operations, accumulating status codes and tracking
  the index at which processing is proceeding. These batch operations may get split into
@@ -408,7 +408,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>operations</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3045">operations</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3046">operations</a></pre>
 </li>
 </ul>
 <a name="retCodeDetails">
@@ -417,7 +417,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>retCodeDetails</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3046">retCodeDetails</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3047">retCodeDetails</a></pre>
 </li>
 </ul>
 <a name="walEditsFromCoprocessors">
@@ -426,7 +426,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>walEditsFromCoprocessors</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3047">walEditsFromCoprocessors</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3048">walEditsFromCoprocessors</a></pre>
 </li>
 </ul>
 <a name="familyCellMaps">
@@ -435,7 +435,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>familyCellMaps</h4>
-<pre>protected final&nbsp;<a href="https://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="https://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;[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3049">familyCellMaps</a></pre>
+<pre>protected final&nbsp;<a href="https://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="https://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;[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3050">familyCellMaps</a></pre>
 </li>
 </ul>
 <a name="region">
@@ -444,7 +444,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>region</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3051">region</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3052">region</a></pre>
 </li>
 </ul>
 <a name="nextIndexToProcess">
@@ -453,7 +453,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>nextIndexToProcess</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3052">nextIndexToProcess</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3053">nextIndexToProcess</a></pre>
 </li>
 </ul>
 <a name="observedExceptions">
@@ -462,7 +462,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>observedExceptions</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3053">observedExceptions</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3054">observedExceptions</a></pre>
 </li>
 </ul>
 <a name="durability">
@@ -471,7 +471,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>durability</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3055">durability</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3056">durability</a></pre>
 </li>
 </ul>
 <a name="atomic">
@@ -480,7 +480,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>atomic</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3056">atomic</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3057">atomic</a></pre>
 </li>
 </ul>
 </li>
@@ -499,7 +499,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3058">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3059">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                       <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[]&nbsp;operations)</pre>
 </li>
 </ul>
@@ -517,7 +517,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>visitBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3085">visitBatchOperations</a>(boolean&nbsp;pendingOnly,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3086">visitBatchOperations</a>(boolean&nbsp;pendingOnly,
                                  int&nbsp;lastIndexExclusive,
                                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation.Visitor</a>&nbsp;visitor)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -534,7 +534,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3097">getMutation</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3098">getMutation</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonceGroup-int-">
@@ -543,7 +543,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3099">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3100">getNonceGroup</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonce-int-">
@@ -552,7 +552,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3101">getNonce</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3102">getNonce</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getMutationsForCoprocs--">
@@ -561,7 +561,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3106">getMutationsForCoprocs</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3107">getMutationsForCoprocs</a>()</pre>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 </li>
 </ul>
@@ -571,7 +571,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3108">isInReplay</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3109">isInReplay</a>()</pre>
 </li>
 </ul>
 <a name="getOrigLogSeqNum--">
@@ -580,7 +580,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3110">getOrigLogSeqNum</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3111">getOrigLogSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="startRegionOperation--">
@@ -589,7 +589,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3112">startRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3113">startRegionOperation</a>()
                                    throws <a href="https://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>
@@ -603,7 +603,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3114">closeRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3115">closeRegionOperation</a>()
                                    throws <a href="https://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>
@@ -617,7 +617,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3123">checkAndPrepare</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3124">checkAndPrepare</a>()
                               throws <a href="https://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">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
  CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on
@@ -636,7 +636,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3129">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3130">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                                     throws <a href="https://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">Implement any Put request specific check and prepare logic here. Please refer to
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-"><code>checkAndPrepareMutation(Mutation, long)</code></a> for how its used.</div>
@@ -652,7 +652,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3135">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3136">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                 long&nbsp;timestamp,
                                                 <a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -670,7 +670,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public abstract&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.BatchOperation.html#line.3141">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public abstract&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.BatchOperation.html#line.3142">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                                       throws <a href="https://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">Write mini-batch operations to MemStore</div>
@@ -686,7 +686,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3145">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3146">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                   long&nbsp;writeNumber)
                                            throws <a href="https://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>
@@ -701,7 +701,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3165">isDone</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3166">isDone</a>()</pre>
 </li>
 </ul>
 <a name="size--">
@@ -710,7 +710,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>size</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3169">size</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3170">size</a>()</pre>
 </li>
 </ul>
 <a name="isOperationPending-int-">
@@ -719,7 +719,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isOperationPending</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3173">isOperationPending</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3174">isOperationPending</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getClusterIds--">
@@ -728,7 +728,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterIds</h4>
-<pre>public&nbsp;<a href="https://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="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3177">getClusterIds</a>()</pre>
+<pre>public&nbsp;<a href="https://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="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3178">getClusterIds</a>()</pre>
 </li>
 </ul>
 <a name="isAtomic--">
@@ -737,7 +737,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isAtomic</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3182">isAtomic</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3183">isAtomic</a>()</pre>
 </li>
 </ul>
 <a name="checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-">
@@ -746,7 +746,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepareMutation</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3192">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3193">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                        long&nbsp;timestamp)
                                 throws <a href="https://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">Helper method that checks and prepares only one mutation. This can be used to implement
@@ -765,7 +765,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepareMutation</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3204">checkAndPrepareMutation</a>(int&nbsp;index,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3205">checkAndPrepareMutation</a>(int&nbsp;index,
                                        long&nbsp;timestamp)
                                 throws <a href="https://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>
@@ -780,7 +780,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lockRowsAndBuildMiniBatch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3266">lockRowsAndBuildMiniBatch</a>(<a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3267">lockRowsAndBuildMiniBatch</a>(<a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                                                  throws <a href="https://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">Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which
  a row lock can be acquired. All mutations with locked rows are considered to be
@@ -800,7 +800,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createMiniBatch</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3350">createMiniBatch</a>(int&nbsp;lastIndexExclusive,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3351">createMiniBatch</a>(int&nbsp;lastIndexExclusive,
                                                                  int&nbsp;readyToWriteCount)</pre>
 </li>
 </ul>
@@ -810,7 +810,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALEdits</h4>
-<pre>public&nbsp;<a href="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3360">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;m
 iniBatchOp)
+<pre>public&nbsp;<a href="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3361">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;m
 iniBatchOp)
                                            throws <a href="https://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">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
  present, they are merged to result WALEdit.</div>
@@ -826,7 +826,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3409">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3410">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://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">This method completes mini-batch operations by calling postBatchMutate() CP hook (if
@@ -843,7 +843,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3417">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3418">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                         boolean&nbsp;success)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -859,7 +859,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>doFinishHotnessProtector</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3423">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3424">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</pre>
 </li>
 </ul>
 <a name="applyFamilyMapToMemStore-java.util.Map-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
@@ -868,7 +868,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>applyFamilyMapToMemStore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3460">applyFamilyMapToMemStore</a>(<a href="https://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="https://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>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3461">applyFamilyMapToMemStore</a>(<a href="https://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="https://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,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreAccounting)
                                  throws <a href="https://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">Atomically apply the given map of family->edits to the memstore.

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index 2cf9695..205a889 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5998">HRegion.BulkLoadListener</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5999">HRegion.BulkLoadListener</a></pre>
 <div class="block">Listener class to enable callers of
  bulkLoadHFile() to perform any necessary
  pre/post processing of a given bulkload call</div>
@@ -174,7 +174,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareBulkLoad</h4>
-<pre><a href="https://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/regionserver/HRegion.BulkLoadListener.html#line.6006">prepareBulkLoad</a>(byte[]&nbsp;family,
+<pre><a href="https://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/regionserver/HRegion.BulkLoadListener.html#line.6007">prepareBulkLoad</a>(byte[]&nbsp;family,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath,
                        boolean&nbsp;copyFile)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -196,7 +196,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>doneBulkLoad</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6015">doneBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6016">doneBulkLoad</a>(byte[]&nbsp;family,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath)
            throws <a href="https://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">Called after a successful HFile load</div>
@@ -215,7 +215,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>failedBulkLoad</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6023">failedBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6024">failedBulkLoad</a>(byte[]&nbsp;family,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath)
              throws <a href="https://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">Called after a failed HFile load</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
index 26066fb..2b3e766 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3476">HRegion.MutationBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3477">HRegion.MutationBatchOperation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</pre>
 <div class="block">Batch of mutation operations. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.ReplayBatchOperation</code></a> as most
  of the logic is same.</div>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceGroup</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3477">nonceGroup</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3478">nonceGroup</a></pre>
 </li>
 </ul>
 <a name="nonce">
@@ -351,7 +351,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nonce</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3478">nonce</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3479">nonce</a></pre>
 </li>
 </ul>
 </li>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MutationBatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3479">MutationBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3480">MutationBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;operations,
                               boolean&nbsp;atomic,
                               long&nbsp;nonceGroup,
@@ -389,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3488">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3489">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -402,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3493">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3494">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -415,7 +415,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3498">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3499">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -428,7 +428,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3503">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3504">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 <dl>
@@ -443,7 +443,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3508">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3509">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -456,7 +456,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3513">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3514">getOrigLogSeqNum</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -469,7 +469,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3518">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3519">startRegionOperation</a>()
                           throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -485,7 +485,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3523">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3524">closeRegionOperation</a>()
                           throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -501,7 +501,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3528">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3529">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                         throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPreparePut-org.apache.hadoop.hbase.client.Put-">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Implement any Put request specific check and prepare logic here. Please refer to
@@ -520,7 +520,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3533">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3534">checkAndPrepare</a>()
                      throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -542,7 +542,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3578">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3579">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                        long&nbsp;timestamp,
                                        <a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -563,7 +563,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALEdits</h4>
-<pre>public&nbsp;<a href="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3614">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt
 ;&nbsp;miniBatchOp)
+<pre>public&nbsp;<a href="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3615">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt
 ;&nbsp;miniBatchOp)
                                            throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#buildWALEdits-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
@@ -582,7 +582,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public&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.MutationBatchOperation.html#line.3625">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&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.MutationBatchOperation.html#line.3626">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                     @Nullable
                                                                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -602,7 +602,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3636">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3637">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -622,7 +622,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3648">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3649">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                         boolean&nbsp;success)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -640,7 +640,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>callPreMutateCPHook</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3697">callPreMutateCPHook</a>(int&nbsp;index,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3698">callPreMutateCPHook</a>(int&nbsp;index,
                                  <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                  int[]&nbsp;metrics)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -659,7 +659,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMergeCPMutations</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3734">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3735">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                       <a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks,
                                       long&nbsp;timestamp)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -675,7 +675,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>mergeFamilyMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3769">mergeFamilyMaps</a>(<a href="https://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="https://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>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3770">mergeFamilyMaps</a>(<a href="https://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="https://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,
                              <a href="https://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="https://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;toBeMerged)</pre>
 </li>
 </ul>


[35/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
index 35cbba5..f29330d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
@@ -356,7 +356,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 5d217f4..c036415 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -437,19 +437,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
index 3b90780..2078458 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
@@ -180,7 +180,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureS
 tateSerializer-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChild
 ren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../..
 /org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRoot
 ProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Proced
 ure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedur
 e2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutT
 imestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Proc
 edure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcI
 d</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironm
 ent-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnF
 inish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[24/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
index 420e804..7c1a8c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
@@ -798,7 +798,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRequest</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.57">splitRequest</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.59">splitRequest</a></pre>
 </li>
 </ul>
 <a name="splitSuccess">
@@ -807,7 +807,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>splitSuccess</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.58">splitSuccess</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.60">splitSuccess</a></pre>
 </li>
 </ul>
 <a name="splitTimeHisto">
@@ -816,7 +816,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>splitTimeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.60">splitTimeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.61">splitTimeHisto</a></pre>
 </li>
 </ul>
 <a name="flushTimeHisto">
@@ -825,7 +825,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushTimeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.63">flushTimeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.64">flushTimeHisto</a></pre>
 </li>
 </ul>
 <a name="flushMemstoreSizeHisto">
@@ -834,7 +834,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushMemstoreSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.64">flushMemstoreSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.65">flushMemstoreSizeHisto</a></pre>
 </li>
 </ul>
 <a name="flushOutputSizeHisto">
@@ -843,7 +843,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushOutputSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.65">flushOutputSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.66">flushOutputSizeHisto</a></pre>
 </li>
 </ul>
 <a name="flushedMemstoreBytes">
@@ -852,7 +852,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushedMemstoreBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.66">flushedMemstoreBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.67">flushedMemstoreBytes</a></pre>
 </li>
 </ul>
 <a name="flushedOutputBytes">
@@ -861,7 +861,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushedOutputBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.67">flushedOutputBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.68">flushedOutputBytes</a></pre>
 </li>
 </ul>
 <a name="compactionTimeHisto">
@@ -870,7 +870,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionTimeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.70">compactionTimeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.71">compactionTimeHisto</a></pre>
 </li>
 </ul>
 <a name="compactionInputFileCountHisto">
@@ -879,7 +879,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionInputFileCountHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.71">compactionInputFileCountHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.72">compactionInputFileCountHisto</a></pre>
 </li>
 </ul>
 <a name="compactionInputSizeHisto">
@@ -888,7 +888,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionInputSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.72">compactionInputSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.73">compactionInputSizeHisto</a></pre>
 </li>
 </ul>
 <a name="compactionOutputFileCountHisto">
@@ -897,7 +897,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionOutputFileCountHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.73">compactionOutputFileCountHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.74">compactionOutputFileCountHisto</a></pre>
 </li>
 </ul>
 <a name="compactionOutputSizeHisto">
@@ -906,7 +906,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionOutputSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.74">compactionOutputSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.75">compactionOutputSizeHisto</a></pre>
 </li>
 </ul>
 <a name="compactedInputBytes">
@@ -915,7 +915,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactedInputBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.75">compactedInputBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.76">compactedInputBytes</a></pre>
 </li>
 </ul>
 <a name="compactedOutputBytes">
@@ -924,7 +924,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactedOutputBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.76">compactedOutputBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.77">compactedOutputBytes</a></pre>
 </li>
 </ul>
 <a name="majorCompactionTimeHisto">
@@ -933,7 +933,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactionTimeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.78">majorCompactionTimeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.79">majorCompactionTimeHisto</a></pre>
 </li>
 </ul>
 <a name="majorCompactionInputFileCountHisto">
@@ -942,7 +942,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactionInputFileCountHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.79">majorCompactionInputFileCountHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.80">majorCompactionInputFileCountHisto</a></pre>
 </li>
 </ul>
 <a name="majorCompactionInputSizeHisto">
@@ -951,7 +951,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactionInputSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.80">majorCompactionInputSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.81">majorCompactionInputSizeHisto</a></pre>
 </li>
 </ul>
 <a name="majorCompactionOutputFileCountHisto">
@@ -960,7 +960,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactionOutputFileCountHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.81">majorCompactionOutputFileCountHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.82">majorCompactionOutputFileCountHisto</a></pre>
 </li>
 </ul>
 <a name="majorCompactionOutputSizeHisto">
@@ -969,7 +969,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactionOutputSizeHisto</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.82">majorCompactionOutputSizeHisto</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.83">majorCompactionOutputSizeHisto</a></pre>
 </li>
 </ul>
 <a name="majorCompactedInputBytes">
@@ -978,7 +978,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactedInputBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.83">majorCompactedInputBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.84">majorCompactedInputBytes</a></pre>
 </li>
 </ul>
 <a name="majorCompactedOutputBytes">
@@ -987,7 +987,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactedOutputBytes</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.84">majorCompactedOutputBytes</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.85">majorCompactedOutputBytes</a></pre>
 </li>
 </ul>
 <a name="infoPauseThresholdExceeded">
@@ -996,7 +996,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>infoPauseThresholdExceeded</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.87">infoPauseThresholdExceeded</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.88">infoPauseThresholdExceeded</a></pre>
 </li>
 </ul>
 <a name="warnPauseThresholdExceeded">
@@ -1005,7 +1005,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>warnPauseThresholdExceeded</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.88">warnPauseThresholdExceeded</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/lib/MutableFastCounter.html" title="class in org.apache.hadoop.metrics2.lib">MutableFastCounter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.89">warnPauseThresholdExceeded</a></pre>
 </li>
 </ul>
 <a name="pausesWithGc">
@@ -1014,7 +1014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>pausesWithGc</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.89">pausesWithGc</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.90">pausesWithGc</a></pre>
 </li>
 </ul>
 <a name="pausesWithoutGc">
@@ -1023,7 +1023,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>pausesWithoutGc</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.90">pausesWithoutGc</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.91">pausesWithoutGc</a></pre>
 </li>
 </ul>
 </li>
@@ -1040,7 +1040,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>MetricsRegionServerSourceImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.92">MetricsRegionServerSourceImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;rsWrap)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.93">MetricsRegionServerSourceImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;rsWrap)</pre>
 </li>
 </ul>
 <a name="MetricsRegionServerSourceImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">
@@ -1049,7 +1049,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsRegionServerSourceImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.96">MetricsRegionServerSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.97">MetricsRegionServerSourceImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsDescription,
                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsContext,
                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsJmxContext,
@@ -1070,7 +1070,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.182">updatePut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.183">updatePut</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updatePut-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Put time histogram</div>
 <dl>
@@ -1087,7 +1087,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.187">updateDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.188">updateDelete</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateDelete-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Delete time histogram</div>
 <dl>
@@ -1104,7 +1104,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.192">updateGet</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.193">updateGet</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateGet-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Get time histogram .</div>
 <dl>
@@ -1121,7 +1121,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.197">updateIncrement</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.198">updateIncrement</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateIncrement-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Increment time histogram.</div>
 <dl>
@@ -1138,7 +1138,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.202">updateAppend</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.203">updateAppend</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateAppend-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Append time histogram.</div>
 <dl>
@@ -1155,7 +1155,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplay</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.207">updateReplay</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.208">updateReplay</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateReplay-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Replay time histogram.</div>
 <dl>
@@ -1172,7 +1172,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.212">updateScanSize</a>(long&nbsp;scanSize)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.213">updateScanSize</a>(long&nbsp;scanSize)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateScanSize-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the scan size.</div>
 <dl>
@@ -1189,7 +1189,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.217">updateScanTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.218">updateScanTime</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateScanTime-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the scan time.</div>
 <dl>
@@ -1204,7 +1204,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSlowPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.222">incrSlowPut</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.223">incrSlowPut</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSlowPut--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment the number of slow Puts that have happened.</div>
 <dl>
@@ -1219,7 +1219,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSlowDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.227">incrSlowDelete</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.228">incrSlowDelete</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSlowDelete--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment the number of slow Deletes that have happened.</div>
 <dl>
@@ -1234,7 +1234,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSlowGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.232">incrSlowGet</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.233">incrSlowGet</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSlowGet--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment the number of slow Gets that have happened.</div>
 <dl>
@@ -1249,7 +1249,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSlowIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.237">incrSlowIncrement</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.238">incrSlowIncrement</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSlowIncrement--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment the number of slow Increments that have happened.</div>
 <dl>
@@ -1264,7 +1264,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSlowAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.242">incrSlowAppend</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.243">incrSlowAppend</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSlowAppend--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment the number of slow Appends that have happened.</div>
 <dl>
@@ -1279,7 +1279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitRequest</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.247">incrSplitRequest</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.248">incrSplitRequest</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSplitRequest--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment number of a requested splits</div>
 <dl>
@@ -1294,7 +1294,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.252">incrSplitSuccess</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.253">incrSplitSuccess</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSplitSuccess--">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Increment number of successful splits</div>
 <dl>
@@ -1309,7 +1309,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateSplitTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.257">updateSplitTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.258">updateSplitTime</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateSplitTime-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the split transaction time histogram</div>
 <dl>
@@ -1326,7 +1326,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFlushTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.262">updateFlushTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.263">updateFlushTime</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateFlushTime-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the flush time histogram</div>
 <dl>
@@ -1343,7 +1343,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFlushMemStoreSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.267">updateFlushMemStoreSize</a>(long&nbsp;bytes)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.268">updateFlushMemStoreSize</a>(long&nbsp;bytes)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateFlushMemStoreSize-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the flush memstore size histogram</div>
 <dl>
@@ -1360,7 +1360,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFlushOutputSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.273">updateFlushOutputSize</a>(long&nbsp;bytes)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.274">updateFlushOutputSize</a>(long&nbsp;bytes)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateFlushOutputSize-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the flush output file size histogram</div>
 <dl>
@@ -1377,7 +1377,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompactionTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.279">updateCompactionTime</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.280">updateCompactionTime</a>(boolean&nbsp;isMajor,
                                  long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCompactionTime-boolean-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the compaction time histogram, both major and minor</div>
@@ -1396,7 +1396,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompactionInputFileCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.287">updateCompactionInputFileCount</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.288">updateCompactionInputFileCount</a>(boolean&nbsp;isMajor,
                                            long&nbsp;c)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCompactionInputFileCount-boolean-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the compaction input number of files histogram</div>
@@ -1415,7 +1415,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompactionInputSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.295">updateCompactionInputSize</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.296">updateCompactionInputSize</a>(boolean&nbsp;isMajor,
                                       long&nbsp;bytes)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCompactionInputSize-boolean-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the compaction total input file size histogram</div>
@@ -1434,7 +1434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompactionOutputFileCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.305">updateCompactionOutputFileCount</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.306">updateCompactionOutputFileCount</a>(boolean&nbsp;isMajor,
                                             long&nbsp;c)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCompactionOutputFileCount-boolean-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the compaction output number of files histogram</div>
@@ -1453,7 +1453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompactionOutputSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.313">updateCompactionOutputSize</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.314">updateCompactionOutputSize</a>(boolean&nbsp;isMajor,
                                        long&nbsp;bytes)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCompactionOutputSize-boolean-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the compaction total output file size</div>
@@ -1472,7 +1472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.331">getMetrics</a>(org.apache.hadoop.metrics2.MetricsCollector&nbsp;metricsCollector,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.332">getMetrics</a>(org.apache.hadoop.metrics2.MetricsCollector&nbsp;metricsCollector,
                        boolean&nbsp;all)</pre>
 <div class="block">Yes this is a get function that doesn't return anything.  Thanks Hadoop for breaking all
  expectations of java programmers.  Instead of returning anything Hadoop metrics expects
@@ -1494,7 +1494,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>addGaugesToMetricsRecordBuilder</h4>
-<pre>private&nbsp;org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.475">addGaugesToMetricsRecordBuilder</a>(org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;mrb)</pre>
+<pre>private&nbsp;org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.476">addGaugesToMetricsRecordBuilder</a>(org.apache.hadoop.metrics2.MetricsRecordBuilder&nbsp;mrb)</pre>
 </li>
 </ul>
 <a name="incInfoThresholdExceeded-int-">
@@ -1503,7 +1503,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incInfoThresholdExceeded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.557">incInfoThresholdExceeded</a>(int&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.558">incInfoThresholdExceeded</a>(int&nbsp;count)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#incInfoThresholdExceeded-int-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Increment the INFO level threshold exceeded count</div>
 <dl>
@@ -1520,7 +1520,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incWarnThresholdExceeded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.562">incWarnThresholdExceeded</a>(int&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.563">incWarnThresholdExceeded</a>(int&nbsp;count)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#incWarnThresholdExceeded-int-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Increment the WARN level threshold exceeded count</div>
 <dl>
@@ -1537,7 +1537,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePauseTimeWithGc</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.567">updatePauseTimeWithGc</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.568">updatePauseTimeWithGc</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#updatePauseTimeWithGc-long-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Update the pause time histogram where GC activity was detected.</div>
 <dl>
@@ -1554,7 +1554,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePauseTimeWithoutGc</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.572">updatePauseTimeWithoutGc</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.573">updatePauseTimeWithoutGc</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#updatePauseTimeWithoutGc-long-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Update the pause time histogram where GC activity was not detected.</div>
 <dl>
@@ -1571,7 +1571,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.577">updateDeleteBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.578">updateDeleteBatch</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateDeleteBatch-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Delete time histogram if a batch contains a delete op</div>
 <dl>
@@ -1588,7 +1588,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.582">updateCheckAndDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.583">updateCheckAndDelete</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCheckAndDelete-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update checkAndDelete histogram</div>
 <dl>
@@ -1605,7 +1605,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.587">updateCheckAndPut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.588">updateCheckAndPut</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCheckAndPut-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update checkAndPut histogram</div>
 <dl>
@@ -1622,7 +1622,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updatePutBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.592">updatePutBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.593">updatePutBatch</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updatePutBatch-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the PutBatch time histogram if a batch contains a Put op</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html
index 41a1aa4..8afad79 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -257,6 +257,10 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 </tr>
 <tr id="i25" class="rowColor">
 <td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getTotalRequestCount--">getTotalRequestCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getWriteRequestCount--">getWriteRequestCount</a></span>()</code>
 <div class="block">Get the total number of mutations that have been issued against this region.</div>
 </td>
@@ -450,13 +454,22 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <div class="block">Get the total number of mutations that have been issued against this region.</div>
 </li>
 </ul>
+<a name="getTotalRequestCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTotalRequestCount</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.110">getTotalRequestCount</a>()</pre>
+</li>
+</ul>
 <a name="getNumFilesCompacted--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumFilesCompacted</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.110">getNumFilesCompacted</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.112">getNumFilesCompacted</a>()</pre>
 </li>
 </ul>
 <a name="getNumBytesCompacted--">
@@ -465,7 +478,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumBytesCompacted</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.112">getNumBytesCompacted</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.114">getNumBytesCompacted</a>()</pre>
 </li>
 </ul>
 <a name="getNumCompactionsCompleted--">
@@ -474,7 +487,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumCompactionsCompleted</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.114">getNumCompactionsCompleted</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.116">getNumCompactionsCompleted</a>()</pre>
 </li>
 </ul>
 <a name="getLastMajorCompactionAge--">
@@ -483,7 +496,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionAge</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.119">getLastMajorCompactionAge</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.121">getLastMajorCompactionAge</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Age of the last major compaction</dd>
@@ -496,7 +509,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumCompactionsFailed</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.126">getNumCompactionsFailed</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.128">getNumCompactionsFailed</a>()</pre>
 <div class="block">Returns the total number of compactions that have been reported as failed on this region.
  Note that a given compaction can be reported as both completed and failed if an exception
  is thrown in the processing after <code>HRegion.compact()</code>.</div>
@@ -508,7 +521,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumCompactionsQueued</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.132">getNumCompactionsQueued</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.134">getNumCompactionsQueued</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the total number of compactions that are currently queued(or being executed) at point
@@ -522,7 +535,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumFlushesQueued</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.138">getNumFlushesQueued</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.140">getNumFlushesQueued</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the total number of flushes currently queued(being executed) for this region at point
@@ -536,7 +549,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxCompactionQueueSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.145">getMaxCompactionQueueSize</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.147">getMaxCompactionQueueSize</a>()</pre>
 <div class="block">Note that this metric is updated periodically and hence might miss some data points.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -550,7 +563,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxFlushQueueSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.152">getMaxFlushQueueSize</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.154">getMaxFlushQueueSize</a>()</pre>
 <div class="block">Note that this metric is updated periodically and hence might miss some data points.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -564,7 +577,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionHashCode</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.154">getRegionHashCode</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.156">getRegionHashCode</a>()</pre>
 </li>
 </ul>
 <a name="getReplicaId--">
@@ -573,7 +586,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReplicaId</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.159">getReplicaId</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#line.161">getReplicaId</a>()</pre>
 <div class="block">Get the replica id of this region.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html
index 9889bfd..5107a69 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.219">MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.224">MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 </li>
@@ -187,7 +187,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HRegionMetricsWrapperRunnable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html#line.219">HRegionMetricsWrapperRunnable</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html#line.224">HRegionMetricsWrapperRunnable</a>()</pre>
 </li>
 </ul>
 </li>
@@ -204,7 +204,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html#line.222">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html#line.227">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html
index 7e515ec..95e0b41 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -384,6 +384,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 </tr>
 <tr id="i26" class="altColor">
 <td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getTotalRequestCount--">getTotalRequestCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getWriteRequestCount--">getWriteRequestCount</a></span>()</code>
 <div class="block">Get the total number of mutations that have been issued against this region.</div>
 </td>
@@ -812,13 +816,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 </dl>
 </li>
 </ul>
+<a name="getTotalRequestCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTotalRequestCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.170">getTotalRequestCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getTotalRequestCount--">getTotalRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getNumCompactionsFailed--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumCompactionsFailed</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.170">getNumCompactionsFailed</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.175">getNumCompactionsFailed</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getNumCompactionsFailed--">MetricsRegionWrapper</a></code></span></div>
 <div class="block">Returns the total number of compactions that have been reported as failed on this region.
  Note that a given compaction can be reported as both completed and failed if an exception
@@ -835,7 +852,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumCompactionsQueued</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.175">getNumCompactionsQueued</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.180">getNumCompactionsQueued</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getNumCompactionsQueued--">getNumCompactionsQueued</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -851,7 +868,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumFlushesQueued</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.180">getNumFlushesQueued</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.185">getNumFlushesQueued</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getNumFlushesQueued--">getNumFlushesQueued</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -867,7 +884,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxCompactionQueueSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.185">getMaxCompactionQueueSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.190">getMaxCompactionQueueSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getMaxCompactionQueueSize--">MetricsRegionWrapper</a></code></span></div>
 <div class="block">Note that this metric is updated periodically and hence might miss some data points.</div>
 <dl>
@@ -884,7 +901,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxFlushQueueSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.190">getMaxFlushQueueSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.195">getMaxFlushQueueSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getMaxFlushQueueSize--">MetricsRegionWrapper</a></code></span></div>
 <div class="block">Note that this metric is updated periodically and hence might miss some data points.</div>
 <dl>
@@ -901,7 +918,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxStoreFileAge</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.195">getMaxStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.200">getMaxStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getMaxStoreFileAge--">getMaxStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -916,7 +933,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinStoreFileAge</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.200">getMinStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.205">getMinStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getMinStoreFileAge--">getMinStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -931,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getAvgStoreFileAge</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.205">getAvgStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.210">getAvgStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getAvgStoreFileAge--">getAvgStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -946,7 +963,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumReferenceFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.210">getNumReferenceFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.215">getNumReferenceFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getNumReferenceFiles--">getNumReferenceFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -961,7 +978,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionHashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.215">getRegionHashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.220">getRegionHashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getRegionHashCode--">getRegionHashCode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></code></dd>
@@ -974,7 +991,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.287">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.292">close</a>()
            throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -992,7 +1009,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReplicaId</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.295">getReplicaId</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#line.300">getReplicaId</a>()</pre>
 <div class="block">Get the replica id of this region.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>


[16/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
index 51bf304..db6ac15 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -199,614 +199,635 @@
 <span class="sourceLineNo">191</span>  protected static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.191"></a>
 <span class="sourceLineNo">192</span>  protected static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  protected final int maxRequestSize;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  protected final int warnResponseTime;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  protected final int warnResponseSize;<a name="line.198"></a>
+<span class="sourceLineNo">194</span>  protected static final int DEFAULT_TRACE_LOG_MAX_LENGTH = 1000;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected static final String TRACE_LOG_MAX_LENGTH = "hbase.ipc.trace.log.max.length";<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected static final String KEY_WORD_TRUNCATED = " &lt;TRUNCATED&gt;";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.198"></a>
 <span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected final int minClientRequestTimeout;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  protected final Server server;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  protected final RpcScheduler scheduler;<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected UserProvider userProvider;<a name="line.207"></a>
+<span class="sourceLineNo">200</span>  protected final int maxRequestSize;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected final int warnResponseTime;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final int warnResponseSize;<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  protected final int minClientRequestTimeout;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  protected final Server server;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  protected final ByteBufferPool reservoir;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  // request/response is at least this size.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected final int minSizeForReservoirUse;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private RSRpcServices rsRpcServices;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  @FunctionalInterface<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  protected static interface CallCleanup {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    void run();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  public static class BlockingServiceAndInterface {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    private final BlockingService service;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.service = service;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.serviceInterface = serviceInterface;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return this.serviceInterface;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    public BlockingService getBlockingService() {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return this.service;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Constructs a server listening on the named port and address.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * instance else pass null for no authentication check.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param services A list of services.<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param bindAddress Where to listen<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param conf<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @param scheduler<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public RpcServer(final Server server, final String name,<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (reservoirEnabled) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      // is by default 64 KB.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      // we consider and consider that also for the max buffers to pool<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    } else {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      reservoir = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.server = server;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.services = services;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.bindAddress = bindAddress;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.conf = conf;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // See declaration above for documentation on what this size is.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.maxQueueSizeInBytes =<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.307"></a>
+<span class="sourceLineNo">209</span>  protected final RpcScheduler scheduler;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected UserProvider userProvider;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  protected final ByteBufferPool reservoir;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  // request/response is at least this size.<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  protected final int minSizeForReservoirUse;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  private RSRpcServices rsRpcServices;<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  @FunctionalInterface<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected static interface CallCleanup {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    void run();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public static class BlockingServiceAndInterface {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    private final BlockingService service;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.service = service;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.serviceInterface = serviceInterface;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      return this.serviceInterface;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    public BlockingService getBlockingService() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      return this.service;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  /**<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * Constructs a server listening on the named port and address.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * instance else pass null for no authentication check.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param services A list of services.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @param bindAddress Where to listen<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * @param conf<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * @param scheduler<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  public RpcServer(final Server server, final String name,<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (reservoirEnabled) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      // is by default 64 KB.<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      // we consider and consider that also for the max buffers to pool<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    } else {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      reservoir = null;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.server = server;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.services = services;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.bindAddress = bindAddress;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.conf = conf;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    // See declaration above for documentation on what this size is.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.maxQueueSizeInBytes =<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.307"></a>
 <span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    if (isSecurityEnabled) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      saslProps = Collections.emptyMap();<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    this.scheduler = scheduler;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @VisibleForTesting<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    return pool.getBufferSize() / 6;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    initReconfigurable(newConf);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      LOG.warn("********* WARNING! *********");<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      LOG.warn("impersonation is possible!");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      LOG.warn("****************************");<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  Configuration getConf() {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return conf;<a name="line.352"></a>
+<span class="sourceLineNo">309</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    if (isSecurityEnabled) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    } else {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      saslProps = Collections.emptyMap();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    this.scheduler = scheduler;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>  @VisibleForTesting<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return pool.getBufferSize() / 6;<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>  @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    initReconfigurable(newConf);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<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>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      LOG.warn("********* WARNING! *********");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      LOG.warn("impersonation is possible!");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      LOG.warn("****************************");<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
 <span class="sourceLineNo">353</span>  }<a name="line.353"></a>
 <span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  public boolean isStarted() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return this.started;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    // it'll break if you go via static route.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    synchronized (authManager) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      authManager.refresh(this.conf, pp);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    if (!isSecurityEnabled) return null;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if (server == null) return null;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    Configuration conf = server.getConfiguration();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    long keyUpdateInterval =<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    long maxAge =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return this.secretManager;<a name="line.382"></a>
+<span class="sourceLineNo">355</span>  Configuration getConf() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return conf;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>  @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  public boolean isStarted() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    return this.started;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // it'll break if you go via static route.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    synchronized (authManager) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      authManager.refresh(this.conf, pp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    if (!isSecurityEnabled) return null;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    if (server == null) return null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Configuration conf = server.getConfiguration();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    long keyUpdateInterval =<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    long maxAge =<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.382"></a>
 <span class="sourceLineNo">383</span>  }<a name="line.383"></a>
 <span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @SuppressWarnings("unchecked")<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * the return response has protobuf response payload. On failure, the<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   */<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Override<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      MonitoredRPCHandler status) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    try {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      MethodDescriptor md = call.getMethod();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      Message param = call.getParam();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        call.getReceiveTime());<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      // TODO: Review after we add in encoded data blocks.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      status.setRPCPacket(param);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      status.resume("Servicing call");<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      //get an instance of the method arg type<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      controller.setCallTimeout(call.getTimeout());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      long receiveTime = call.getReceiveTime();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      long startTime = call.getStartTime();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      long endTime = System.currentTimeMillis();<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      int processingTime = (int) (endTime - startTime);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      int qTime = (int) (startTime - receiveTime);<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      if (LOG.isTraceEnabled()) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        LOG.trace(CurCall.get().toString() +<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.418"></a>
-<span class="sourceLineNo">419</span>            " queueTime: " + qTime +<a name="line.419"></a>
-<span class="sourceLineNo">420</span>            " processingTime: " + processingTime +<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            " totalTime: " + totalTime);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      // Use the raw request call size for now.<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      long requestSize = call.getSize();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      long responseSize = result.getSerializedSize();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      if (call.isClientCellBlockSupported()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        // Include the payload size in HBaseRpcController<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        responseSize += call.getResponseCellSize();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>      metrics.dequeuedCall(qTime);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      metrics.processedCall(processingTime);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      metrics.totalCall(totalTime);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      metrics.receivedRequest(requestSize);<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      metrics.sentResponse(responseSize);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // log any RPC responses that are slower than the configured warn<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // response time or larger than configured warning size<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      if (tooSlow || tooLarge) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        // note that large responses will often also be slow.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        logResponse(param,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.444"></a>
-<span class="sourceLineNo">445</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>            responseSize);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    } catch (Throwable e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      // need to pass it over the wire.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      if (e instanceof ServiceException) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        if (e.getCause() == null) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>        } else {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          e = e.getCause();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      // increment the number of requests that were exceptions.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      metrics.exception(e);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      LOG.error("Unexpected throwable object ", e);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      throw new IOException(e.getMessage(), e);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * client Operations.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * @param param The parameters received in the call.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * @param methodName The name of the method invoked<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param call The string representation of the call<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param clientAddress   The address of the client who made this call.<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @param qTime           The duration that the call spent on the queue<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   *                        prior to being initiated, in ms.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      long responseSize) throws IOException {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    // base information that is reported regardless of type of call<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    responseInfo.put("starttimems", startTime);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    responseInfo.put("processingtimems", processingTime);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    responseInfo.put("queuetimems", qTime);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    responseInfo.put("responsesize", responseSize);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    responseInfo.put("client", clientAddress);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    responseInfo.put("method", methodName);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    responseInfo.put("call", call);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      stringifiedParam = stringifiedParam.subSequence(<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          0, LOG.isTraceEnabled() ? 1000 : 150) + " &lt;TRUNCATED&gt;";<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    responseInfo.put("param", stringifiedParam);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      if (request.hasScannerId()) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        long scannerId = request.getScannerId();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (scanDetails != null) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          responseInfo.put("scandetails", scanDetails);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @param handler the handler implementation<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  @Override<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    this.errorHandler = handler;<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>  @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this.errorHandler;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  @Override<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  public MetricsHBaseServer getMetrics() {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return metrics;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  public void addCallSize(final long diff) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    this.callQueueSizeInBytes.add(diff);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>  /**<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * Authorize the incoming client connection.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param user client user<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param connection incoming connection<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param addr InetAddress of incoming connection<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      InetAddress addr) throws AuthorizationException {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (authorize) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      synchronized (authManager) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * be smaller.<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   *<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   * @param channel writable byte channel to write on<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * @param buffer buffer to write<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return number of bytes written<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * @throws java.io.IOException e<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * @see java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   */<a name="line.582"></a>
-<span class="sourceLineNo">583</span>  protected int channelRead(ReadableByteChannel channel,<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                                   ByteBuffer buffer) throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    int count = (buffer.remaining() &lt;= NIO_BUFFER_LIMIT) ?<a name="line.586"></a>
-<span class="sourceLineNo">587</span>           channel.read(buffer) : channelIO(channel, null, buffer);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (count &gt; 0) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      metrics.receivedBytes(count);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    return count;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * Only one of readCh or writeCh should be non-null.<a name="line.596"></a>
+<span class="sourceLineNo">385</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return this.secretManager;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  @SuppressWarnings("unchecked")<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * the return response has protobuf response payload. On failure, the<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @Override<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      MonitoredRPCHandler status) throws IOException {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      MethodDescriptor md = call.getMethod();<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      Message param = call.getParam();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        call.getReceiveTime());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      // TODO: Review after we add in encoded data blocks.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      status.setRPCPacket(param);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      status.resume("Servicing call");<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      //get an instance of the method arg type<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      controller.setCallTimeout(call.getTimeout());<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      long receiveTime = call.getReceiveTime();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      long startTime = call.getStartTime();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      long endTime = System.currentTimeMillis();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      int processingTime = (int) (endTime - startTime);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      int qTime = (int) (startTime - receiveTime);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      if (LOG.isTraceEnabled()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        LOG.trace(CurCall.get().toString() +<a name="line.421"></a>
+<span class="sourceLineNo">422</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            " queueTime: " + qTime +<a name="line.423"></a>
+<span class="sourceLineNo">424</span>            " processingTime: " + processingTime +<a name="line.424"></a>
+<span class="sourceLineNo">425</span>            " totalTime: " + totalTime);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      // Use the raw request call size for now.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      long requestSize = call.getSize();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      long responseSize = result.getSerializedSize();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      if (call.isClientCellBlockSupported()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        // Include the payload size in HBaseRpcController<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        responseSize += call.getResponseCellSize();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      metrics.dequeuedCall(qTime);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      metrics.processedCall(processingTime);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      metrics.totalCall(totalTime);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      metrics.receivedRequest(requestSize);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      metrics.sentResponse(responseSize);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      // log any RPC responses that are slower than the configured warn<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // response time or larger than configured warning size<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      if (tooSlow || tooLarge) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        // note that large responses will often also be slow.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        logResponse(param,<a name="line.447"></a>
+<span class="sourceLineNo">448</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.448"></a>
+<span class="sourceLineNo">449</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.449"></a>
+<span class="sourceLineNo">450</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.450"></a>
+<span class="sourceLineNo">451</span>            responseSize);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    } catch (Throwable e) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      // need to pass it over the wire.<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      if (e instanceof ServiceException) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        if (e.getCause() == null) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        } else {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          e = e.getCause();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // increment the number of requests that were exceptions.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      metrics.exception(e);<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      LOG.error("Unexpected throwable object ", e);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      throw new IOException(e.getMessage(), e);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   * client Operations.<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * @param param The parameters received in the call.<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @param methodName The name of the method invoked<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * @param call The string representation of the call<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.482"></a>
+<span class="sourceLineNo">483</span>   * @param clientAddress   The address of the client who made this call.<a name="line.483"></a>
+<span class="sourceLineNo">484</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * @param qTime           The duration that the call spent on the queue<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   *                        prior to being initiated, in ms.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      long responseSize) throws IOException {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    // base information that is reported regardless of type of call<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    responseInfo.put("starttimems", startTime);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    responseInfo.put("processingtimems", processingTime);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    responseInfo.put("queuetimems", qTime);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    responseInfo.put("responsesize", responseSize);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    responseInfo.put("client", clientAddress);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    responseInfo.put("method", methodName);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    responseInfo.put("call", call);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      stringifiedParam = truncateTraceLog(stringifiedParam);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    responseInfo.put("param", stringifiedParam);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      if (request.hasScannerId()) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        long scannerId = request.getScannerId();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        if (scanDetails != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>          responseInfo.put("scandetails", scanDetails);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * Truncate to number of chars decided by conf hbase.ipc.trace.log.max.length<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * if TRACE is on else to 150 chars Refer to Jira HBASE-20826 and HBASE-20942<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * @param strParam stringifiedParam to be truncated<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * @return truncated trace log string<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   */<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  @VisibleForTesting<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  String truncateTraceLog(String strParam) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    if (LOG.isTraceEnabled()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      int traceLogMaxLength = getConf().getInt(TRACE_LOG_MAX_LENGTH, DEFAULT_TRACE_LOG_MAX_LENGTH);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      int truncatedLength =<a name="line.533"></a>
+<span class="sourceLineNo">534</span>          strParam.length() &lt; traceLogMaxLength ? strParam.length() : traceLogMaxLength;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      String truncatedFlag = truncatedLength == strParam.length() ? "" : KEY_WORD_TRUNCATED;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return strParam.subSequence(0, truncatedLength) + truncatedFlag;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    return strParam.subSequence(0, 150) + KEY_WORD_TRUNCATED;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param handler the handler implementation<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    this.errorHandler = handler;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>  @Override<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return this.errorHandler;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  public MetricsHBaseServer getMetrics() {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    return metrics;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>  @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  public void addCallSize(final long diff) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    this.callQueueSizeInBytes.add(diff);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>  }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>  /**<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * Authorize the incoming client connection.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @param user client user<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * @param connection incoming connection<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * @param addr InetAddress of incoming connection<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      InetAddress addr) throws AuthorizationException {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    if (authorize) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      synchronized (authManager) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>  }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>  /**<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * be smaller.<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.596"></a>
 <span class="sourceLineNo">597</span>   *<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param readCh read channel<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param writeCh write channel<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param buf buffer to read or write into/out of<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @return bytes written<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @throws java.io.IOException e<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @see #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  private static int channelIO(ReadableByteChannel readCh,<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                               WritableByteChannel writeCh,<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                               ByteBuffer buf) throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>    int originalLimit = buf.limit();<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    int initialRemaining = buf.remaining();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    int ret = 0;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    while (buf.remaining() &gt; 0) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      try {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        int ioSize = Math.min(buf.remaining(), NIO_BUFFER_LIMIT);<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        buf.limit(buf.position() + ioSize);<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>        ret = (readCh == null) ? writeCh.write(buf) : readCh.read(buf);<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>        if (ret &lt; ioSize) {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          break;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>      } finally {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        buf.limit(originalLimit);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      }<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    int nBytes = initialRemaining - buf.remaining();<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    return (nBytes &gt; 0) ? nBytes : ret;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * This is extracted to a static method for better unit testing. We try to get buffer(s) from pool<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * as much as possible.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   *<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * @param pool The ByteBufferPool to use<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * @param minSizeForPoolUse Only for buffer size above this, we will try to use pool. Any buffer<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   *           need of size below this, create on heap ByteBuffer.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * @param reqLen Bytes count in request<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
-<span class="sourceLineNo">642</span>  @VisibleForTesting<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  static Pair&lt;ByteBuff, CallCleanup&gt; allocateByteBuffToReadInto(ByteBufferPool pool,<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      int minSizeForPoolUse, int reqLen) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    ByteBuff resultBuf;<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    List&lt;ByteBuffer&gt; bbs = new ArrayList&lt;&gt;((reqLen / pool.getBufferSize()) + 1);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    int remain = reqLen;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    ByteBuffer buf = null;<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    while (remain &gt;= minSizeForPoolUse &amp;&amp; (buf = pool.getBuffer()) != null) {<a n

<TRUNCATED>

[02/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/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 a8cb7c4..8ec6dad 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
@@ -2831,5851 +2831,5852 @@
 <span class="sourceLineNo">2823</span>    status.setStatus(msg);<a name="line.2823"></a>
 <span class="sourceLineNo">2824</span><a name="line.2824"></a>
 <span class="sourceLineNo">2825</span>    if (rsServices != null &amp;&amp; rsServices.getMetrics() != null) {<a name="line.2825"></a>
-<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(time - startTime,<a name="line.2826"></a>
-<span class="sourceLineNo">2827</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2827"></a>
-<span class="sourceLineNo">2828</span>    }<a name="line.2828"></a>
-<span class="sourceLineNo">2829</span><a name="line.2829"></a>
-<span class="sourceLineNo">2830</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2830"></a>
-<span class="sourceLineNo">2831</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2831"></a>
-<span class="sourceLineNo">2832</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2832"></a>
-<span class="sourceLineNo">2833</span>  }<a name="line.2833"></a>
-<span class="sourceLineNo">2834</span><a name="line.2834"></a>
-<span class="sourceLineNo">2835</span>  /**<a name="line.2835"></a>
-<span class="sourceLineNo">2836</span>   * Method to safely get the next sequence number.<a name="line.2836"></a>
-<span class="sourceLineNo">2837</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2837"></a>
-<span class="sourceLineNo">2838</span>   * @throws IOException<a name="line.2838"></a>
-<span class="sourceLineNo">2839</span>   */<a name="line.2839"></a>
-<span class="sourceLineNo">2840</span>  @VisibleForTesting<a name="line.2840"></a>
-<span class="sourceLineNo">2841</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2841"></a>
-<span class="sourceLineNo">2842</span>    WriteEntry we = mvcc.begin();<a name="line.2842"></a>
-<span class="sourceLineNo">2843</span>    mvcc.completeAndWait(we);<a name="line.2843"></a>
-<span class="sourceLineNo">2844</span>    return we.getWriteNumber();<a name="line.2844"></a>
-<span class="sourceLineNo">2845</span>  }<a name="line.2845"></a>
-<span class="sourceLineNo">2846</span><a name="line.2846"></a>
-<span class="sourceLineNo">2847</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2847"></a>
-<span class="sourceLineNo">2848</span>  // get() methods for client use.<a name="line.2848"></a>
-<span class="sourceLineNo">2849</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2849"></a>
-<span class="sourceLineNo">2850</span><a name="line.2850"></a>
-<span class="sourceLineNo">2851</span>  @Override<a name="line.2851"></a>
-<span class="sourceLineNo">2852</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2852"></a>
-<span class="sourceLineNo">2853</span>   return getScanner(scan, null);<a name="line.2853"></a>
-<span class="sourceLineNo">2854</span>  }<a name="line.2854"></a>
-<span class="sourceLineNo">2855</span><a name="line.2855"></a>
-<span class="sourceLineNo">2856</span>  @Override<a name="line.2856"></a>
-<span class="sourceLineNo">2857</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2857"></a>
-<span class="sourceLineNo">2858</span>      throws IOException {<a name="line.2858"></a>
-<span class="sourceLineNo">2859</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2859"></a>
-<span class="sourceLineNo">2860</span>  }<a name="line.2860"></a>
-<span class="sourceLineNo">2861</span><a name="line.2861"></a>
-<span class="sourceLineNo">2862</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2862"></a>
-<span class="sourceLineNo">2863</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2863"></a>
-<span class="sourceLineNo">2864</span>    startRegionOperation(Operation.SCAN);<a name="line.2864"></a>
-<span class="sourceLineNo">2865</span>    try {<a name="line.2865"></a>
-<span class="sourceLineNo">2866</span>      // Verify families are all valid<a name="line.2866"></a>
-<span class="sourceLineNo">2867</span>      if (!scan.hasFamilies()) {<a name="line.2867"></a>
-<span class="sourceLineNo">2868</span>        // Adding all families to scanner<a name="line.2868"></a>
-<span class="sourceLineNo">2869</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2869"></a>
-<span class="sourceLineNo">2870</span>          scan.addFamily(family);<a name="line.2870"></a>
-<span class="sourceLineNo">2871</span>        }<a name="line.2871"></a>
-<span class="sourceLineNo">2872</span>      } else {<a name="line.2872"></a>
-<span class="sourceLineNo">2873</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2873"></a>
-<span class="sourceLineNo">2874</span>          checkFamily(family);<a name="line.2874"></a>
-<span class="sourceLineNo">2875</span>        }<a name="line.2875"></a>
-<span class="sourceLineNo">2876</span>      }<a name="line.2876"></a>
-<span class="sourceLineNo">2877</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2877"></a>
-<span class="sourceLineNo">2878</span>    } finally {<a name="line.2878"></a>
-<span class="sourceLineNo">2879</span>      closeRegionOperation(Operation.SCAN);<a name="line.2879"></a>
-<span class="sourceLineNo">2880</span>    }<a name="line.2880"></a>
-<span class="sourceLineNo">2881</span>  }<a name="line.2881"></a>
-<span class="sourceLineNo">2882</span><a name="line.2882"></a>
-<span class="sourceLineNo">2883</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2883"></a>
-<span class="sourceLineNo">2884</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2884"></a>
-<span class="sourceLineNo">2885</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2885"></a>
-<span class="sourceLineNo">2886</span>      HConstants.NO_NONCE);<a name="line.2886"></a>
-<span class="sourceLineNo">2887</span>  }<a name="line.2887"></a>
-<span class="sourceLineNo">2888</span><a name="line.2888"></a>
-<span class="sourceLineNo">2889</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2889"></a>
-<span class="sourceLineNo">2890</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2890"></a>
-<span class="sourceLineNo">2891</span>    if (scan.isReversed()) {<a name="line.2891"></a>
-<span class="sourceLineNo">2892</span>      if (scan.getFilter() != null) {<a name="line.2892"></a>
-<span class="sourceLineNo">2893</span>        scan.getFilter().setReversed(true);<a name="line.2893"></a>
-<span class="sourceLineNo">2894</span>      }<a name="line.2894"></a>
-<span class="sourceLineNo">2895</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2895"></a>
-<span class="sourceLineNo">2896</span>    }<a name="line.2896"></a>
-<span class="sourceLineNo">2897</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2897"></a>
-<span class="sourceLineNo">2898</span>  }<a name="line.2898"></a>
-<span class="sourceLineNo">2899</span><a name="line.2899"></a>
-<span class="sourceLineNo">2900</span>  /**<a name="line.2900"></a>
-<span class="sourceLineNo">2901</span>   * Prepare a delete for a row mutation processor<a name="line.2901"></a>
-<span class="sourceLineNo">2902</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2902"></a>
-<span class="sourceLineNo">2903</span>   * @throws IOException<a name="line.2903"></a>
-<span class="sourceLineNo">2904</span>   */<a name="line.2904"></a>
-<span class="sourceLineNo">2905</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2905"></a>
-<span class="sourceLineNo">2906</span>    // Check to see if this is a deleteRow insert<a name="line.2906"></a>
-<span class="sourceLineNo">2907</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2907"></a>
-<span class="sourceLineNo">2908</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2908"></a>
-<span class="sourceLineNo">2909</span>        // Don't eat the timestamp<a name="line.2909"></a>
-<span class="sourceLineNo">2910</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2910"></a>
-<span class="sourceLineNo">2911</span>      }<a name="line.2911"></a>
-<span class="sourceLineNo">2912</span>    } else {<a name="line.2912"></a>
-<span class="sourceLineNo">2913</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2913"></a>
-<span class="sourceLineNo">2914</span>        if(family == null) {<a name="line.2914"></a>
-<span class="sourceLineNo">2915</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2915"></a>
-<span class="sourceLineNo">2916</span>        }<a name="line.2916"></a>
-<span class="sourceLineNo">2917</span>        checkFamily(family);<a name="line.2917"></a>
-<span class="sourceLineNo">2918</span>      }<a name="line.2918"></a>
-<span class="sourceLineNo">2919</span>    }<a name="line.2919"></a>
-<span class="sourceLineNo">2920</span>  }<a name="line.2920"></a>
-<span class="sourceLineNo">2921</span><a name="line.2921"></a>
-<span class="sourceLineNo">2922</span>  @Override<a name="line.2922"></a>
-<span class="sourceLineNo">2923</span>  public void delete(Delete delete) throws IOException {<a name="line.2923"></a>
-<span class="sourceLineNo">2924</span>    checkReadOnly();<a name="line.2924"></a>
-<span class="sourceLineNo">2925</span>    checkResources();<a name="line.2925"></a>
-<span class="sourceLineNo">2926</span>    startRegionOperation(Operation.DELETE);<a name="line.2926"></a>
-<span class="sourceLineNo">2927</span>    try {<a name="line.2927"></a>
-<span class="sourceLineNo">2928</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2928"></a>
-<span class="sourceLineNo">2929</span>      doBatchMutate(delete);<a name="line.2929"></a>
-<span class="sourceLineNo">2930</span>    } finally {<a name="line.2930"></a>
-<span class="sourceLineNo">2931</span>      closeRegionOperation(Operation.DELETE);<a name="line.2931"></a>
-<span class="sourceLineNo">2932</span>    }<a name="line.2932"></a>
-<span class="sourceLineNo">2933</span>  }<a name="line.2933"></a>
-<span class="sourceLineNo">2934</span><a name="line.2934"></a>
-<span class="sourceLineNo">2935</span>  /**<a name="line.2935"></a>
-<span class="sourceLineNo">2936</span>   * Row needed by below method.<a name="line.2936"></a>
-<span class="sourceLineNo">2937</span>   */<a name="line.2937"></a>
-<span class="sourceLineNo">2938</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2938"></a>
-<span class="sourceLineNo">2939</span><a name="line.2939"></a>
-<span class="sourceLineNo">2940</span>  /**<a name="line.2940"></a>
-<span class="sourceLineNo">2941</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2941"></a>
-<span class="sourceLineNo">2942</span>   * @param familyMap map of family to edits for the given family.<a name="line.2942"></a>
-<span class="sourceLineNo">2943</span>   * @throws IOException<a name="line.2943"></a>
-<span class="sourceLineNo">2944</span>   */<a name="line.2944"></a>
-<span class="sourceLineNo">2945</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2945"></a>
-<span class="sourceLineNo">2946</span>      Durability durability) throws IOException {<a name="line.2946"></a>
-<span class="sourceLineNo">2947</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2947"></a>
-<span class="sourceLineNo">2948</span>    delete.setFamilyCellMap(familyMap);<a name="line.2948"></a>
-<span class="sourceLineNo">2949</span>    delete.setDurability(durability);<a name="line.2949"></a>
-<span class="sourceLineNo">2950</span>    doBatchMutate(delete);<a name="line.2950"></a>
-<span class="sourceLineNo">2951</span>  }<a name="line.2951"></a>
-<span class="sourceLineNo">2952</span><a name="line.2952"></a>
-<span class="sourceLineNo">2953</span>  /**<a name="line.2953"></a>
-<span class="sourceLineNo">2954</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2954"></a>
-<span class="sourceLineNo">2955</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2955"></a>
-<span class="sourceLineNo">2956</span>   * @param mutation<a name="line.2956"></a>
-<span class="sourceLineNo">2957</span>   * @param familyMap<a name="line.2957"></a>
-<span class="sourceLineNo">2958</span>   * @param byteNow<a name="line.2958"></a>
-<span class="sourceLineNo">2959</span>   * @throws IOException<a name="line.2959"></a>
-<span class="sourceLineNo">2960</span>   */<a name="line.2960"></a>
-<span class="sourceLineNo">2961</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2961"></a>
-<span class="sourceLineNo">2962</span>      byte[] byteNow) throws IOException {<a name="line.2962"></a>
-<span class="sourceLineNo">2963</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2963"></a>
-<span class="sourceLineNo">2964</span><a name="line.2964"></a>
-<span class="sourceLineNo">2965</span>      byte[] family = e.getKey();<a name="line.2965"></a>
-<span class="sourceLineNo">2966</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2966"></a>
-<span class="sourceLineNo">2967</span>      assert cells instanceof RandomAccess;<a name="line.2967"></a>
-<span class="sourceLineNo">2968</span><a name="line.2968"></a>
-<span class="sourceLineNo">2969</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2969"></a>
-<span class="sourceLineNo">2970</span>      int listSize = cells.size();<a name="line.2970"></a>
-<span class="sourceLineNo">2971</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2971"></a>
-<span class="sourceLineNo">2972</span>        Cell cell = cells.get(i);<a name="line.2972"></a>
-<span class="sourceLineNo">2973</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2973"></a>
-<span class="sourceLineNo">2974</span>        //  This is expensive.<a name="line.2974"></a>
-<span class="sourceLineNo">2975</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2975"></a>
-<span class="sourceLineNo">2976</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2976"></a>
-<span class="sourceLineNo">2977</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2977"></a>
-<span class="sourceLineNo">2978</span><a name="line.2978"></a>
-<span class="sourceLineNo">2979</span>          Integer count = kvCount.get(qual);<a name="line.2979"></a>
-<span class="sourceLineNo">2980</span>          if (count == null) {<a name="line.2980"></a>
-<span class="sourceLineNo">2981</span>            kvCount.put(qual, 1);<a name="line.2981"></a>
-<span class="sourceLineNo">2982</span>          } else {<a name="line.2982"></a>
-<span class="sourceLineNo">2983</span>            kvCount.put(qual, count + 1);<a name="line.2983"></a>
-<span class="sourceLineNo">2984</span>          }<a name="line.2984"></a>
-<span class="sourceLineNo">2985</span>          count = kvCount.get(qual);<a name="line.2985"></a>
-<span class="sourceLineNo">2986</span><a name="line.2986"></a>
-<span class="sourceLineNo">2987</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2987"></a>
-<span class="sourceLineNo">2988</span>          get.setMaxVersions(count);<a name="line.2988"></a>
-<span class="sourceLineNo">2989</span>          get.addColumn(family, qual);<a name="line.2989"></a>
-<span class="sourceLineNo">2990</span>          if (coprocessorHost != null) {<a name="line.2990"></a>
-<span class="sourceLineNo">2991</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2991"></a>
-<span class="sourceLineNo">2992</span>                byteNow, get)) {<a name="line.2992"></a>
-<span class="sourceLineNo">2993</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2993"></a>
-<span class="sourceLineNo">2994</span>            }<a name="line.2994"></a>
-<span class="sourceLineNo">2995</span>          } else {<a name="line.2995"></a>
-<span class="sourceLineNo">2996</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2996"></a>
-<span class="sourceLineNo">2997</span>          }<a name="line.2997"></a>
-<span class="sourceLineNo">2998</span>        } else {<a name="line.2998"></a>
-<span class="sourceLineNo">2999</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.2999"></a>
-<span class="sourceLineNo">3000</span>        }<a name="line.3000"></a>
-<span class="sourceLineNo">3001</span>      }<a name="line.3001"></a>
-<span class="sourceLineNo">3002</span>    }<a name="line.3002"></a>
-<span class="sourceLineNo">3003</span>  }<a name="line.3003"></a>
-<span class="sourceLineNo">3004</span><a name="line.3004"></a>
-<span class="sourceLineNo">3005</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3005"></a>
-<span class="sourceLineNo">3006</span>      throws IOException {<a name="line.3006"></a>
-<span class="sourceLineNo">3007</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3007"></a>
-<span class="sourceLineNo">3008</span><a name="line.3008"></a>
-<span class="sourceLineNo">3009</span>    if (result.size() &lt; count) {<a name="line.3009"></a>
-<span class="sourceLineNo">3010</span>      // Nothing to delete<a name="line.3010"></a>
-<span class="sourceLineNo">3011</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3011"></a>
-<span class="sourceLineNo">3012</span>      return;<a name="line.3012"></a>
-<span class="sourceLineNo">3013</span>    }<a name="line.3013"></a>
-<span class="sourceLineNo">3014</span>    if (result.size() &gt; count) {<a name="line.3014"></a>
-<span class="sourceLineNo">3015</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3015"></a>
-<span class="sourceLineNo">3016</span>    }<a name="line.3016"></a>
-<span class="sourceLineNo">3017</span>    Cell getCell = result.get(count - 1);<a name="line.3017"></a>
-<span class="sourceLineNo">3018</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3018"></a>
-<span class="sourceLineNo">3019</span>  }<a name="line.3019"></a>
-<span class="sourceLineNo">3020</span><a name="line.3020"></a>
-<span class="sourceLineNo">3021</span>  @Override<a name="line.3021"></a>
-<span class="sourceLineNo">3022</span>  public void put(Put put) throws IOException {<a name="line.3022"></a>
-<span class="sourceLineNo">3023</span>    checkReadOnly();<a name="line.3023"></a>
-<span class="sourceLineNo">3024</span><a name="line.3024"></a>
-<span class="sourceLineNo">3025</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3025"></a>
-<span class="sourceLineNo">3026</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3026"></a>
-<span class="sourceLineNo">3027</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3027"></a>
-<span class="sourceLineNo">3028</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3028"></a>
-<span class="sourceLineNo">3029</span>    checkResources();<a name="line.3029"></a>
-<span class="sourceLineNo">3030</span>    startRegionOperation(Operation.PUT);<a name="line.3030"></a>
-<span class="sourceLineNo">3031</span>    try {<a name="line.3031"></a>
-<span class="sourceLineNo">3032</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3032"></a>
-<span class="sourceLineNo">3033</span>      doBatchMutate(put);<a name="line.3033"></a>
-<span class="sourceLineNo">3034</span>    } finally {<a name="line.3034"></a>
-<span class="sourceLineNo">3035</span>      closeRegionOperation(Operation.PUT);<a name="line.3035"></a>
-<span class="sourceLineNo">3036</span>    }<a name="line.3036"></a>
-<span class="sourceLineNo">3037</span>  }<a name="line.3037"></a>
-<span class="sourceLineNo">3038</span><a name="line.3038"></a>
-<span class="sourceLineNo">3039</span>  /**<a name="line.3039"></a>
-<span class="sourceLineNo">3040</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3040"></a>
-<span class="sourceLineNo">3041</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3041"></a>
-<span class="sourceLineNo">3042</span>   * mini-batches for processing.<a name="line.3042"></a>
-<span class="sourceLineNo">3043</span>   */<a name="line.3043"></a>
-<span class="sourceLineNo">3044</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3044"></a>
-<span class="sourceLineNo">3045</span>    protected final T[] operations;<a name="line.3045"></a>
-<span class="sourceLineNo">3046</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3046"></a>
-<span class="sourceLineNo">3047</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3047"></a>
-<span class="sourceLineNo">3048</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3048"></a>
-<span class="sourceLineNo">3049</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3049"></a>
-<span class="sourceLineNo">3050</span><a name="line.3050"></a>
-<span class="sourceLineNo">3051</span>    protected final HRegion region;<a name="line.3051"></a>
-<span class="sourceLineNo">3052</span>    protected int nextIndexToProcess = 0;<a name="line.3052"></a>
-<span class="sourceLineNo">3053</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3053"></a>
-<span class="sourceLineNo">3054</span>    //Durability of the batch (highest durability of all operations)<a name="line.3054"></a>
-<span class="sourceLineNo">3055</span>    protected Durability durability;<a name="line.3055"></a>
-<span class="sourceLineNo">3056</span>    protected boolean atomic = false;<a name="line.3056"></a>
-<span class="sourceLineNo">3057</span><a name="line.3057"></a>
-<span class="sourceLineNo">3058</span>    public BatchOperation(final HRegion region, T[] operations) {<a name="line.3058"></a>
-<span class="sourceLineNo">3059</span>      this.operations = operations;<a name="line.3059"></a>
-<span class="sourceLineNo">3060</span>      this.retCodeDetails = new OperationStatus[operations.length];<a name="line.3060"></a>
-<span class="sourceLineNo">3061</span>      Arrays.fill(this.retCodeDetails, OperationStatus.NOT_RUN);<a name="line.3061"></a>
-<span class="sourceLineNo">3062</span>      this.walEditsFromCoprocessors = new WALEdit[operations.length];<a name="line.3062"></a>
-<span class="sourceLineNo">3063</span>      familyCellMaps = new Map[operations.length];<a name="line.3063"></a>
-<span class="sourceLineNo">3064</span><a name="line.3064"></a>
-<span class="sourceLineNo">3065</span>      this.region = region;<a name="line.3065"></a>
-<span class="sourceLineNo">3066</span>      observedExceptions = new ObservedExceptionsInBatch();<a name="line.3066"></a>
-<span class="sourceLineNo">3067</span>      durability = Durability.USE_DEFAULT;<a name="line.3067"></a>
-<span class="sourceLineNo">3068</span>    }<a name="line.3068"></a>
-<span class="sourceLineNo">3069</span><a name="line.3069"></a>
-<span class="sourceLineNo">3070</span>    /**<a name="line.3070"></a>
-<span class="sourceLineNo">3071</span>     * Visitor interface for batch operations<a name="line.3071"></a>
-<span class="sourceLineNo">3072</span>     */<a name="line.3072"></a>
-<span class="sourceLineNo">3073</span>    @FunctionalInterface<a name="line.3073"></a>
-<span class="sourceLineNo">3074</span>    public interface Visitor {<a name="line.3074"></a>
-<span class="sourceLineNo">3075</span>      /**<a name="line.3075"></a>
-<span class="sourceLineNo">3076</span>       * @param index operation index<a name="line.3076"></a>
-<span class="sourceLineNo">3077</span>       * @return If true continue visiting remaining entries, break otherwise<a name="line.3077"></a>
-<span class="sourceLineNo">3078</span>       */<a name="line.3078"></a>
-<span class="sourceLineNo">3079</span>      boolean visit(int index) throws IOException;<a name="line.3079"></a>
-<span class="sourceLineNo">3080</span>    }<a name="line.3080"></a>
-<span class="sourceLineNo">3081</span><a name="line.3081"></a>
-<span class="sourceLineNo">3082</span>    /**<a name="line.3082"></a>
-<span class="sourceLineNo">3083</span>     * Helper method for visiting pending/ all batch operations<a name="line.3083"></a>
-<span class="sourceLineNo">3084</span>     */<a name="line.3084"></a>
-<span class="sourceLineNo">3085</span>    public void visitBatchOperations(boolean pendingOnly, int lastIndexExclusive, Visitor visitor)<a name="line.3085"></a>
-<span class="sourceLineNo">3086</span>        throws IOException {<a name="line.3086"></a>
-<span class="sourceLineNo">3087</span>      assert lastIndexExclusive &lt;= this.size();<a name="line.3087"></a>
-<span class="sourceLineNo">3088</span>      for (int i = nextIndexToProcess; i &lt; lastIndexExclusive; i++) {<a name="line.3088"></a>
-<span class="sourceLineNo">3089</span>        if (!pendingOnly || isOperationPending(i)) {<a name="line.3089"></a>
-<span class="sourceLineNo">3090</span>          if (!visitor.visit(i)) {<a name="line.3090"></a>
-<span class="sourceLineNo">3091</span>            break;<a name="line.3091"></a>
-<span class="sourceLineNo">3092</span>          }<a name="line.3092"></a>
-<span class="sourceLineNo">3093</span>        }<a name="line.3093"></a>
-<span class="sourceLineNo">3094</span>      }<a name="line.3094"></a>
-<span class="sourceLineNo">3095</span>    }<a name="line.3095"></a>
-<span class="sourceLineNo">3096</span><a name="line.3096"></a>
-<span class="sourceLineNo">3097</span>    public abstract Mutation getMutation(int index);<a name="line.3097"></a>
-<span class="sourceLineNo">3098</span><a name="line.3098"></a>
-<span class="sourceLineNo">3099</span>    public abstract long getNonceGroup(int index);<a name="line.3099"></a>
-<span class="sourceLineNo">3100</span><a name="line.3100"></a>
-<span class="sourceLineNo">3101</span>    public abstract long getNonce(int index);<a name="line.3101"></a>
-<span class="sourceLineNo">3102</span><a name="line.3102"></a>
-<span class="sourceLineNo">3103</span>    /**<a name="line.3103"></a>
-<span class="sourceLineNo">3104</span>     * This method is potentially expensive and useful mostly for non-replay CP path.<a name="line.3104"></a>
-<span class="sourceLineNo">3105</span>     */<a name="line.3105"></a>
-<span class="sourceLineNo">3106</span>    public abstract Mutation[] getMutationsForCoprocs();<a name="line.3106"></a>
-<span class="sourceLineNo">3107</span><a name="line.3107"></a>
-<span class="sourceLineNo">3108</span>    public abstract boolean isInReplay();<a name="line.3108"></a>
-<span class="sourceLineNo">3109</span><a name="line.3109"></a>
-<span class="sourceLineNo">3110</span>    public abstract long getOrigLogSeqNum();<a name="line.3110"></a>
-<span class="sourceLineNo">3111</span><a name="line.3111"></a>
-<span class="sourceLineNo">3112</span>    public abstract void startRegionOperation() throws IOException;<a name="line.3112"></a>
-<span class="sourceLineNo">3113</span><a name="line.3113"></a>
-<span class="sourceLineNo">3114</span>    public abstract void closeRegionOperation() throws IOException;<a name="line.3114"></a>
-<span class="sourceLineNo">3115</span><a name="line.3115"></a>
-<span class="sourceLineNo">3116</span>    /**<a name="line.3116"></a>
-<span class="sourceLineNo">3117</span>     * Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs<a name="line.3117"></a>
-<span class="sourceLineNo">3118</span>     * CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on<a name="line.3118"></a>
-<span class="sourceLineNo">3119</span>     * entire batch and will be called from outside of class to check and prepare batch. This can<a name="line.3119"></a>
-<span class="sourceLineNo">3120</span>     * be implemented by calling helper method {@link #checkAndPrepareMutation(int, long)} in a<a name="line.3120"></a>
-<span class="sourceLineNo">3121</span>     * 'for' loop over mutations.<a name="line.3121"></a>
-<span class="sourceLineNo">3122</span>     */<a name="line.3122"></a>
-<span class="sourceLineNo">3123</span>    public abstract void checkAndPrepare() throws IOException;<a name="line.3123"></a>
-<span class="sourceLineNo">3124</span><a name="line.3124"></a>
-<span class="sourceLineNo">3125</span>    /**<a name="line.3125"></a>
-<span class="sourceLineNo">3126</span>     * Implement any Put request specific check and prepare logic here. Please refer to<a name="line.3126"></a>
-<span class="sourceLineNo">3127</span>     * {@link #checkAndPrepareMutation(Mutation, long)} for how its used.<a name="line.3127"></a>
-<span class="sourceLineNo">3128</span>     */<a name="line.3128"></a>
-<span class="sourceLineNo">3129</span>    protected abstract void checkAndPreparePut(final Put p) throws IOException;<a name="line.3129"></a>
-<span class="sourceLineNo">3130</span><a name="line.3130"></a>
-<span class="sourceLineNo">3131</span>    /**<a name="line.3131"></a>
-<span class="sourceLineNo">3132</span>     * If necessary, calls preBatchMutate() CP hook for a mini-batch and updates metrics, cell<a name="line.3132"></a>
-<span class="sourceLineNo">3133</span>     * count, tags and timestamp for all cells of all operations in a mini-batch.<a name="line.3133"></a>
-<span class="sourceLineNo">3134</span>     */<a name="line.3134"></a>
-<span class="sourceLineNo">3135</span>    public abstract void prepareMiniBatchOperations(MiniBatchOperationInProgress&lt;Mutation&gt;<a name="line.3135"></a>
-<span class="sourceLineNo">3136</span>        miniBatchOp, long timestamp, final List&lt;RowLock&gt; acquiredRowLocks) throws IOException;<a name="line.3136"></a>
-<span class="sourceLineNo">3137</span><a name="line.3137"></a>
-<span class="sourceLineNo">3138</span>    /**<a name="line.3138"></a>
-<span class="sourceLineNo">3139</span>     * Write mini-batch operations to MemStore<a name="line.3139"></a>
-<span class="sourceLineNo">3140</span>     */<a name="line.3140"></a>
-<span class="sourceLineNo">3141</span>    public abstract WriteEntry writeMiniBatchOperationsToMemStore(<a name="line.3141"></a>
-<span class="sourceLineNo">3142</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3142"></a>
-<span class="sourceLineNo">3143</span>        throws IOException;<a name="line.3143"></a>
-<span class="sourceLineNo">3144</span><a name="line.3144"></a>
-<span class="sourceLineNo">3145</span>    protected void writeMiniBatchOperationsToMemStore(<a name="line.3145"></a>
-<span class="sourceLineNo">3146</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final long writeNumber)<a name="line.3146"></a>
-<span class="sourceLineNo">3147</span>        throws IOException {<a name="line.3147"></a>
-<span class="sourceLineNo">3148</span>      MemStoreSizing memStoreAccounting = new NonThreadSafeMemStoreSizing();<a name="line.3148"></a>
-<span class="sourceLineNo">3149</span>      visitBatchOperations(true, miniBatchOp.getLastIndexExclusive(), (int index) -&gt; {<a name="line.3149"></a>
-<span class="sourceLineNo">3150</span>        // We need to update the sequence id for following reasons.<a name="line.3150"></a>
-<span class="sourceLineNo">3151</span>        // 1) If the op is in replay mode, FSWALEntry#stampRegionSequenceId won't stamp sequence id.<a name="line.3151"></a>
-<span class="sourceLineNo">3152</span>        // 2) If no WAL, FSWALEntry won't be used<a name="line.3152"></a>
-<span class="sourceLineNo">3153</span>        // we use durability of the original mutation for the mutation passed by CP.<a name="line.3153"></a>
-<span class="sourceLineNo">3154</span>        if (isInReplay() || getMutation(index).getDurability() == Durability.SKIP_WAL) {<a name="line.3154"></a>
-<span class="sourceLineNo">3155</span>          region.updateSequenceId(familyCellMaps[index].values(), writeNumber);<a name="line.3155"></a>
-<span class="sourceLineNo">3156</span>        }<a name="line.3156"></a>
-<span class="sourceLineNo">3157</span>        applyFamilyMapToMemStore(familyCellMaps[index], memStoreAccounting);<a name="line.3157"></a>
-<span class="sourceLineNo">3158</span>        return true;<a name="line.3158"></a>
-<span class="sourceLineNo">3159</span>      });<a name="line.3159"></a>
-<span class="sourceLineNo">3160</span>      // update memStore size<a name="line.3160"></a>
-<span class="sourceLineNo">3161</span>      region.incMemStoreSize(memStoreAccounting.getDataSize(), memStoreAccounting.getHeapSize(),<a name="line.3161"></a>
-<span class="sourceLineNo">3162</span>          memStoreAccounting.getOffHeapSize());<a name="line.3162"></a>
-<span class="sourceLineNo">3163</span>    }<a name="line.3163"></a>
-<span class="sourceLineNo">3164</span><a name="line.3164"></a>
-<span class="sourceLineNo">3165</span>    public boolean isDone() {<a name="line.3165"></a>
-<span class="sourceLineNo">3166</span>      return nextIndexToProcess == operations.length;<a name="line.3166"></a>
-<span class="sourceLineNo">3167</span>    }<a name="line.3167"></a>
-<span class="sourceLineNo">3168</span><a name="line.3168"></a>
-<span class="sourceLineNo">3169</span>    public int size() {<a name="line.3169"></a>
-<span class="sourceLineNo">3170</span>      return operations.length;<a name="line.3170"></a>
-<span class="sourceLineNo">3171</span>    }<a name="line.3171"></a>
-<span class="sourceLineNo">3172</span><a name="line.3172"></a>
-<span class="sourceLineNo">3173</span>    public boolean isOperationPending(int index) {<a name="line.3173"></a>
-<span class="sourceLineNo">3174</span>      return retCodeDetails[index].getOperationStatusCode() == OperationStatusCode.NOT_RUN;<a name="line.3174"></a>
-<span class="sourceLineNo">3175</span>    }<a name="line.3175"></a>
-<span class="sourceLineNo">3176</span><a name="line.3176"></a>
-<span class="sourceLineNo">3177</span>    public List&lt;UUID&gt; getClusterIds() {<a name="line.3177"></a>
-<span class="sourceLineNo">3178</span>      assert size() != 0;<a name="line.3178"></a>
-<span class="sourceLineNo">3179</span>      return getMutation(0).getClusterIds();<a name="line.3179"></a>
-<span class="sourceLineNo">3180</span>    }<a name="line.3180"></a>
-<span class="sourceLineNo">3181</span><a name="line.3181"></a>
-<span class="sourceLineNo">3182</span>    boolean isAtomic() {<a name="line.3182"></a>
-<span class="sourceLineNo">3183</span>      return atomic;<a name="line.3183"></a>
-<span class="sourceLineNo">3184</span>    }<a name="line.3184"></a>
-<span class="sourceLineNo">3185</span><a name="line.3185"></a>
-<span class="sourceLineNo">3186</span>    /**<a name="line.3186"></a>
-<span class="sourceLineNo">3187</span>     * Helper method that checks and prepares only one mutation. This can be used to implement<a name="line.3187"></a>
-<span class="sourceLineNo">3188</span>     * {@link #checkAndPrepare()} for entire Batch.<a name="line.3188"></a>
-<span class="sourceLineNo">3189</span>     * NOTE: As CP prePut()/ preDelete() hooks may modify mutations, this method should be called<a name="line.3189"></a>
-<span class="sourceLineNo">3190</span>     * after prePut()/ preDelete() CP hooks are run for the mutation<a name="line.3190"></a>
-<span class="sourceLineNo">3191</span>     */<a name="line.3191"></a>
-<span class="sourceLineNo">3192</span>    protected void checkAndPrepareMutation(Mutation mutation, final long timestamp)<a name="line.3192"></a>
-<span class="sourceLineNo">3193</span>        throws IOException {<a name="line.3193"></a>
-<span class="sourceLineNo">3194</span>      region.checkRow(mutation.getRow(), "batchMutate");<a name="line.3194"></a>
-<span class="sourceLineNo">3195</span>      if (mutation instanceof Put) {<a name="line.3195"></a>
-<span class="sourceLineNo">3196</span>        // Check the families in the put. If bad, skip this one.<a name="line.3196"></a>
-<span class="sourceLineNo">3197</span>        checkAndPreparePut((Put) mutation);<a name="line.3197"></a>
-<span class="sourceLineNo">3198</span>        region.checkTimestamps(mutation.getFamilyCellMap(), timestamp);<a name="line.3198"></a>
-<span class="sourceLineNo">3199</span>      } else {<a name="line.3199"></a>
-<span class="sourceLineNo">3200</span>        region.prepareDelete((Delete) mutation);<a name="line.3200"></a>
-<span class="sourceLineNo">3201</span>      }<a name="line.3201"></a>
-<span class="sourceLineNo">3202</span>    }<a name="line.3202"></a>
-<span class="sourceLineNo">3203</span><a name="line.3203"></a>
-<span class="sourceLineNo">3204</span>    protected void checkAndPrepareMutation(int index, long timestamp) throws IOException {<a name="line.3204"></a>
-<span class="sourceLineNo">3205</span>      Mutation mutation = getMutation(index);<a name="line.3205"></a>
-<span class="sourceLineNo">3206</span>      try {<a name="line.3206"></a>
-<span class="sourceLineNo">3207</span>        this.checkAndPrepareMutation(mutation, timestamp);<a name="line.3207"></a>
-<span class="sourceLineNo">3208</span><a name="line.3208"></a>
-<span class="sourceLineNo">3209</span>        // store the family map reference to allow for mutations<a name="line.3209"></a>
-<span class="sourceLineNo">3210</span>        familyCellMaps[index] = mutation.getFamilyCellMap();<a name="line.3210"></a>
-<span class="sourceLineNo">3211</span>        // store durability for the batch (highest durability of all operations in the batch)<a name="line.3211"></a>
-<span class="sourceLineNo">3212</span>        Durability tmpDur = region.getEffectiveDurability(mutation.getDurability());<a name="line.3212"></a>
-<span class="sourceLineNo">3213</span>        if (tmpDur.ordinal() &gt; durability.ordinal()) {<a name="line.3213"></a>
-<span class="sourceLineNo">3214</span>          durability = tmpDur;<a name="line.3214"></a>
-<span class="sourceLineNo">3215</span>        }<a name="line.3215"></a>
-<span class="sourceLineNo">3216</span>      } catch (NoSuchColumnFamilyException nscfe) {<a name="line.3216"></a>
-<span class="sourceLineNo">3217</span>        final String msg = "No such column family in batch mutation. ";<a name="line.3217"></a>
-<span class="sourceLineNo">3218</span>        if (observedExceptions.hasSeenNoSuchFamily()) {<a name="line.3218"></a>
-<span class="sourceLineNo">3219</span>          LOG.warn(msg + nscfe.getMessage());<a name="line.3219"></a>
-<span class="sourceLineNo">3220</span>        } else {<a name="line.3220"></a>
-<span class="sourceLineNo">3221</span>          LOG.warn(msg, nscfe);<a name="line.3221"></a>
-<span class="sourceLineNo">3222</span>          observedExceptions.sawNoSuchFamily();<a name="line.3222"></a>
-<span class="sourceLineNo">3223</span>        }<a name="line.3223"></a>
-<span class="sourceLineNo">3224</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3224"></a>
-<span class="sourceLineNo">3225</span>            OperationStatusCode.BAD_FAMILY, nscfe.getMessage());<a name="line.3225"></a>
-<span class="sourceLineNo">3226</span>        if (isAtomic()) { // fail, atomic means all or none<a name="line.3226"></a>
-<span class="sourceLineNo">3227</span>          throw nscfe;<a name="line.3227"></a>
-<span class="sourceLineNo">3228</span>        }<a name="line.3228"></a>
-<span class="sourceLineNo">3229</span>      } catch (FailedSanityCheckException fsce) {<a name="line.3229"></a>
-<span class="sourceLineNo">3230</span>        final String msg = "Batch Mutation did not pass sanity check. ";<a name="line.3230"></a>
-<span class="sourceLineNo">3231</span>        if (observedExceptions.hasSeenFailedSanityCheck()) {<a name="line.3231"></a>
-<span class="sourceLineNo">3232</span>          LOG.warn(msg + fsce.getMessage());<a name="line.3232"></a>
-<span class="sourceLineNo">3233</span>        } else {<a name="line.3233"></a>
-<span class="sourceLineNo">3234</span>          LOG.warn(msg, fsce);<a name="line.3234"></a>
-<span class="sourceLineNo">3235</span>          observedExceptions.sawFailedSanityCheck();<a name="line.3235"></a>
-<span class="sourceLineNo">3236</span>        }<a name="line.3236"></a>
-<span class="sourceLineNo">3237</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3237"></a>
-<span class="sourceLineNo">3238</span>            OperationStatusCode.SANITY_CHECK_FAILURE, fsce.getMessage());<a name="line.3238"></a>
-<span class="sourceLineNo">3239</span>        if (isAtomic()) {<a name="line.3239"></a>
-<span class="sourceLineNo">3240</span>          throw fsce;<a name="line.3240"></a>
-<span class="sourceLineNo">3241</span>        }<a name="line.3241"></a>
-<span class="sourceLineNo">3242</span>      } catch (WrongRegionException we) {<a name="line.3242"></a>
-<span class="sourceLineNo">3243</span>        final String msg = "Batch mutation had a row that does not belong to this region. ";<a name="line.3243"></a>
-<span class="sourceLineNo">3244</span>        if (observedExceptions.hasSeenWrongRegion()) {<a name="line.3244"></a>
-<span class="sourceLineNo">3245</span>          LOG.warn(msg + we.getMessage());<a name="line.3245"></a>
-<span class="sourceLineNo">3246</span>        } else {<a name="line.3246"></a>
-<span class="sourceLineNo">3247</span>          LOG.warn(msg, we);<a name="line.3247"></a>
-<span class="sourceLineNo">3248</span>          observedExceptions.sawWrongRegion();<a name="line.3248"></a>
-<span class="sourceLineNo">3249</span>        }<a name="line.3249"></a>
-<span class="sourceLineNo">3250</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3250"></a>
-<span class="sourceLineNo">3251</span>            OperationStatusCode.SANITY_CHECK_FAILURE, we.getMessage());<a name="line.3251"></a>
-<span class="sourceLineNo">3252</span>        if (isAtomic()) {<a name="line.3252"></a>
-<span class="sourceLineNo">3253</span>          throw we;<a name="line.3253"></a>
-<span class="sourceLineNo">3254</span>        }<a name="line.3254"></a>
-<span class="sourceLineNo">3255</span>      }<a name="line.3255"></a>
-<span class="sourceLineNo">3256</span>    }<a name="line.3256"></a>
-<span class="sourceLineNo">3257</span><a name="line.3257"></a>
-<span class="sourceLineNo">3258</span>    /**<a name="line.3258"></a>
-<span class="sourceLineNo">3259</span>     * Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which<a name="line.3259"></a>
-<span class="sourceLineNo">3260</span>     * a row lock can be acquired. All mutations with locked rows are considered to be<a name="line.3260"></a>
-<span class="sourceLineNo">3261</span>     * In-progress operations and hence the name {@link MiniBatchOperationInProgress}. Mini batch<a name="line.3261"></a>
-<span class="sourceLineNo">3262</span>     * is window over {@link BatchOperation} and contains contiguous pending operations.<a name="line.3262"></a>
-<span class="sourceLineNo">3263</span>     *<a name="line.3263"></a>
-<span class="sourceLineNo">3264</span>     * @param acquiredRowLocks keeps track of rowLocks acquired.<a name="line.3264"></a>
-<span class="sourceLineNo">3265</span>     */<a name="line.3265"></a>
-<span class="sourceLineNo">3266</span>    public MiniBatchOperationInProgress&lt;Mutation&gt; lockRowsAndBuildMiniBatch(<a name="line.3266"></a>
-<span class="sourceLineNo">3267</span>        List&lt;RowLock&gt; acquiredRowLocks) throws IOException {<a name="line.3267"></a>
-<span class="sourceLineNo">3268</span>      int readyToWriteCount = 0;<a name="line.3268"></a>
-<span class="sourceLineNo">3269</span>      int lastIndexExclusive = 0;<a name="line.3269"></a>
-<span class="sourceLineNo">3270</span>      RowLock prevRowLock = null;<a name="line.3270"></a>
-<span class="sourceLineNo">3271</span>      for (; lastIndexExclusive &lt; size(); lastIndexExclusive++) {<a name="line.3271"></a>
-<span class="sourceLineNo">3272</span>        // It reaches the miniBatchSize, stop here and process the miniBatch<a name="line.3272"></a>
-<span class="sourceLineNo">3273</span>        // This only applies to non-atomic batch operations.<a name="line.3273"></a>
-<span class="sourceLineNo">3274</span>        if (!isAtomic() &amp;&amp; (readyToWriteCount == region.miniBatchSize)) {<a name="line.3274"></a>
-<span class="sourceLineNo">3275</span>          break;<a name="line.3275"></a>
-<span class="sourceLineNo">3276</span>        }<a name="line.3276"></a>
-<span class="sourceLineNo">3277</span><a name="line.3277"></a>
-<span class="sourceLineNo">3278</span>        if (!isOperationPending(lastIndexExclusive)) {<a name="line.3278"></a>
-<span class="sourceLineNo">3279</span>          continue;<a name="line.3279"></a>
-<span class="sourceLineNo">3280</span>        }<a name="line.3280"></a>
-<span class="sourceLineNo">3281</span><a name="line.3281"></a>
-<span class="sourceLineNo">3282</span>        // HBASE-19389 Limit concurrency of put with dense (hundreds) columns to avoid exhausting<a name="line.3282"></a>
-<span class="sourceLineNo">3283</span>        // RS handlers, covering both MutationBatchOperation and ReplayBatchOperation<a name="line.3283"></a>
-<span class="sourceLineNo">3284</span>        // The BAD_FAMILY/SANITY_CHECK_FAILURE cases are handled in checkAndPrepare phase and won't<a name="line.3284"></a>
-<span class="sourceLineNo">3285</span>        // pass the isOperationPending check<a name="line.3285"></a>
-<span class="sourceLineNo">3286</span>        Map&lt;byte[], List&lt;Cell&gt;&gt; curFamilyCellMap =<a name="line.3286"></a>
-<span class="sourceLineNo">3287</span>            getMutation(lastIndexExclusive).getFamilyCellMap();<a name="line.3287"></a>
-<span class="sourceLineNo">3288</span>        try {<a name="line.3288"></a>
-<span class="sourceLineNo">3289</span>          // start the protector before acquiring row lock considering performance, and will finish<a name="line.3289"></a>
-<span class="sourceLineNo">3290</span>          // it when encountering exception<a name="line.3290"></a>
-<span class="sourceLineNo">3291</span>          region.storeHotnessProtector.start(curFamilyCellMap);<a name="line.3291"></a>
-<span class="sourceLineNo">3292</span>        } catch (RegionTooBusyException rtbe) {<a name="line.3292"></a>
-<span class="sourceLineNo">3293</span>          region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3293"></a>
-<span class="sourceLineNo">3294</span>          if (isAtomic()) {<a name="line.3294"></a>
-<span class="sourceLineNo">3295</span>            throw rtbe;<a name="line.3295"></a>
-<span class="sourceLineNo">3296</span>          }<a name="line.3296"></a>
-<span class="sourceLineNo">3297</span>          retCodeDetails[lastIndexExclusive] =<a name="line.3297"></a>
-<span class="sourceLineNo">3298</span>              new OperationStatus(OperationStatusCode.STORE_TOO_BUSY, rtbe.getMessage());<a name="line.3298"></a>
-<span class="sourceLineNo">3299</span>          continue;<a name="line.3299"></a>
-<span class="sourceLineNo">3300</span>        }<a name="line.3300"></a>
-<span class="sourceLineNo">3301</span><a name="line.3301"></a>
-<span class="sourceLineNo">3302</span>        Mutation mutation = getMutation(lastIndexExclusive);<a name="line.3302"></a>
-<span class="sourceLineNo">3303</span>        // If we haven't got any rows in our batch, we should block to get the next one.<a name="line.3303"></a>
-<span class="sourceLineNo">3304</span>        RowLock rowLock = null;<a name="line.3304"></a>
-<span class="sourceLineNo">3305</span>        boolean throwException = false;<a name="line.3305"></a>
-<span class="sourceLineNo">3306</span>        try {<a name="line.3306"></a>
-<span class="sourceLineNo">3307</span>          // if atomic then get exclusive lock, else shared lock<a name="line.3307"></a>
-<span class="sourceLineNo">3308</span>          rowLock = region.getRowLockInternal(mutation.getRow(), !isAtomic(), prevRowLock);<a name="line.3308"></a>
-<span class="sourceLineNo">3309</span>        } catch (TimeoutIOException | InterruptedIOException e) {<a name="line.3309"></a>
-<span class="sourceLineNo">3310</span>          // NOTE: We will retry when other exceptions, but we should stop if we receive<a name="line.3310"></a>
-<span class="sourceLineNo">3311</span>          // TimeoutIOException or InterruptedIOException as operation has timed out or<a name="line.3311"></a>
-<span class="sourceLineNo">3312</span>          // interrupted respectively.<a name="line.3312"></a>
-<span class="sourceLineNo">3313</span>          throwException = true;<a name="line.3313"></a>
-<span class="sourceLineNo">3314</span>          throw e;<a name="line.3314"></a>
-<span class="sourceLineNo">3315</span>        } catch (IOException ioe) {<a name="line.3315"></a>
-<span class="sourceLineNo">3316</span>          LOG.warn("Failed getting lock, row=" + Bytes.toStringBinary(mutation.getRow()), ioe);<a name="line.3316"></a>
-<span class="sourceLineNo">3317</span>          if (isAtomic()) { // fail, atomic means all or none<a name="line.3317"></a>
-<span class="sourceLineNo">3318</span>            throwException = true;<a name="line.3318"></a>
-<span class="sourceLineNo">3319</span>            throw ioe;<a name="line.3319"></a>
-<span class="sourceLineNo">3320</span>          }<a name="line.3320"></a>
-<span class="sourceLineNo">3321</span>        } catch (Throwable throwable) {<a name="line.3321"></a>
-<span class="sourceLineNo">3322</span>          throwException = true;<a name="line.3322"></a>
-<span class="sourceLineNo">3323</span>          throw throwable;<a name="line.3323"></a>
-<span class="sourceLineNo">3324</span>        } finally {<a name="line.3324"></a>
-<span class="sourceLineNo">3325</span>          if (throwException) {<a name="line.3325"></a>
-<span class="sourceLineNo">3326</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3326"></a>
-<span class="sourceLineNo">3327</span>          }<a name="line.3327"></a>
-<span class="sourceLineNo">3328</span>        }<a name="line.3328"></a>
-<span class="sourceLineNo">3329</span>        if (rowLock == null) {<a name="line.3329"></a>
-<span class="sourceLineNo">3330</span>          // We failed to grab another lock<a name="line.3330"></a>
-<span class="sourceLineNo">3331</span>          if (isAtomic()) {<a name="line.3331"></a>
-<span class="sourceLineNo">3332</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3332"></a>
-<span class="sourceLineNo">3333</span>            throw new IOException("Can't apply all operations atomically!");<a name="line.3333"></a>
-<span class="sourceLineNo">3334</span>          }<a name="line.3334"></a>
-<span class="sourceLineNo">3335</span>          break; // Stop acquiring more rows for this batch<a name="line.3335"></a>
-<span class="sourceLineNo">3336</span>        } else {<a name="line.3336"></a>
-<span class="sourceLineNo">3337</span>          if (rowLock != prevRowLock) {<a name="line.3337"></a>
-<span class="sourceLineNo">3338</span>            // It is a different row now, add this to the acquiredRowLocks and<a name="line.3338"></a>
-<span class="sourceLineNo">3339</span>            // set prevRowLock to the new returned rowLock<a name="line.3339"></a>
-<span class="sourceLineNo">3340</span>            acquiredRowLocks.add(rowLock);<a name="line.3340"></a>
-<span class="sourceLineNo">3341</span>            prevRowLock = rowLock;<a name="line.3341"></a>
-<span class="sourceLineNo">3342</span>          }<a name="line.3342"></a>
-<span class="sourceLineNo">3343</span>        }<a name="line.3343"></a>
-<span class="sourceLineNo">3344</span><a name="line.3344"></a>
-<span class="sourceLineNo">3345</span>        readyToWriteCount++;<a name="line.3345"></a>
-<span class="sourceLineNo">3346</span>      }<a name="line.3346"></a>
-<span class="sourceLineNo">3347</span>      return createMiniBatch(lastIndexExclusive, readyToWriteCount);<a name="line.3347"></a>
-<span class="sourceLineNo">3348</span>    }<a name="line.3348"></a>
-<span class="sourceLineNo">3349</span><a name="line.3349"></a>
-<span class="sourceLineNo">3350</span>    protected MiniBatchOperationInProgress&lt;Mutation&gt; createMiniBatch(final int lastIndexExclusive,<a name="line.3350"></a>
-<span class="sourceLineNo">3351</span>        final int readyToWriteCount) {<a name="line.3351"></a>
-<span class="sourceLineNo">3352</span>      return new MiniBatchOperationInProgress&lt;&gt;(getMutationsForCoprocs(), retCodeDetails,<a name="line.3352"></a>
-<span class="sourceLineNo">3353</span>          walEditsFromCoprocessors, nextIndexToProcess, lastIndexExclusive, readyToWriteCount);<a name="line.3353"></a>
-<span class="sourceLineNo">3354</span>    }<a name="line.3354"></a>
-<span class="sourceLineNo">3355</span><a name="line.3355"></a>
-<span class="sourceLineNo">3356</span>    /**<a name="line.3356"></a>
-<span class="sourceLineNo">3357</span>     * Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are<a name="line.3357"></a>
-<span class="sourceLineNo">3358</span>     * present, they are merged to result WALEdit.<a name="line.3358"></a>
-<span class="sourceLineNo">3359</span>     */<a name="line.3359"></a>
-<span class="sourceLineNo">3360</span>    public List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; buildWALEdits(<a name="line.3360"></a>
-<span class="sourceLineNo">3361</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) throws IOException {<a name="line.3361"></a>
-<span class="sourceLineNo">3362</span>      List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; walEdits = new ArrayList&lt;&gt;();<a name="line.3362"></a>
-<span class="sourceLineNo">3363</span><a name="line.3363"></a>
-<span class="sourceLineNo">3364</span>      visitBatchOperations(true, nextIndexToProcess + miniBatchOp.size(), new Visitor() {<a name="line.3364"></a>
-<span class="sourceLineNo">3365</span>        private Pair&lt;NonceKey, WALEdit&gt; curWALEditForNonce;<a name="line.3365"></a>
-<span class="sourceLineNo">3366</span><a name="line.3366"></a>
-<span class="sourceLineNo">3367</span>        @Override<a name="line.3367"></a>
-<span class="sourceLineNo">3368</span>        public boolean visit(int index) throws IOException {<a name="line.3368"></a>
-<span class="sourceLineNo">3369</span>          Mutation m = getMutation(index);<a name="line.3369"></a>
-<span class="sourceLineNo">3370</span>          // we use durability of the original mutation for the mutation passed by CP.<a name="line.3370"></a>
-<span class="sourceLineNo">3371</span>          if (region.getEffectiveDurability(m.getDurability()) == Durability.SKIP_WAL) {<a name="line.3371"></a>
-<span class="sourceLineNo">3372</span>            region.recordMutationWithoutWal(m.getFamilyCellMap());<a name="line.3372"></a>
-<span class="sourceLineNo">3373</span>            return true;<a name="line.3373"></a>
-<span class="sourceLineNo">3374</span>          }<a name="line.3374"></a>
-<span class="sourceLineNo">3375</span><a name="line.3375"></a>
-<span class="sourceLineNo">3376</span>          // the batch may contain multiple nonce keys (replay case). If so, write WALEdit for each.<a name="line.3376"></a>
-<span class="sourceLineNo">3377</span>          // Given how nonce keys are originally written, these should be contiguous.<a name="line.3377"></a>
-<span class="sourceLineNo">3378</span>          // They don't have to be, it will still work, just write more WALEdits than needed.<a name="line.3378"></a>
-<span class="sourceLineNo">3379</span>          long nonceGroup = getNonceGroup(index);<a name="line.3379"></a>
-<span class="sourceLineNo">3380</span>          long nonce = getNonce(index);<a name="line.3380"></a>
-<span class="sourceLineNo">3381</span>          if (curWALEditForNonce == null ||<a name="line.3381"></a>
-<span class="sourceLineNo">3382</span>              curWALEditForNonce.getFirst().getNonceGroup() != nonceGroup ||<a name="line.3382"></a>
-<span class="sourceLineNo">3383</span>              curWALEditForNonce.getFirst().getNonce() != nonce) {<a name="line.3383"></a>
-<span class="sourceLineNo">3384</span>            curWALEditForNonce = new Pair&lt;&gt;(new NonceKey(nonceGroup, nonce),<a name="line.3384"></a>
-<span class="sourceLineNo">3385</span>                new WALEdit(miniBatchOp.getCellCount(), isInReplay()));<a name="line.3385"></a>
-<span class="sourceLineNo">3386</span>            walEdits.add(curWALEditForNonce);<a name="line.3386"></a>
-<span class="sourceLineNo">3387</span>          }<a name="line.3387"></a>
-<span class="sourceLineNo">3388</span>          WALEdit walEdit = curWALEditForNonce.getSecond();<a name="line.3388"></a>
-<span class="sourceLineNo">3389</span><a name="line.3389"></a>
-<span class="sourceLineNo">3390</span>          // Add WAL edits from CPs.<a name="line.3390"></a>
-<span class="sourceLineNo">3391</span>          WALEdit fromCP = walEditsFromCoprocessors[index];<a name="line.3391"></a>
-<span class="sourceLineNo">3392</span>          if (fromCP != null) {<a name="line.3392"></a>
-<span class="sourceLineNo">3393</span>            for (Cell cell : fromCP.getCells()) {<a name="line.3393"></a>
-<span class="sourceLineNo">3394</span>              walEdit.add(cell);<a name="line.3394"></a>
-<span class="sourceLineNo">3395</span>            }<a name="line.3395"></a>
-<span class="sourceLineNo">3396</span>          }<a name="line.3396"></a>
-<span class="sourceLineNo">3397</span>          walEdit.add(familyCellMaps[index]);<a name="line.3397"></a>
-<span class="sourceLineNo">3398</span><a name="line.3398"></a>
-<span class="sourceLineNo">3399</span>          return true;<a name="line.3399"></a>
-<span class="sourceLineNo">3400</span>        }<a name="line.3400"></a>
-<span class="sourceLineNo">3401</span>      });<a name="line.3401"></a>
-<span class="sourceLineNo">3402</span>      return walEdits;<a name="line.3402"></a>
-<span class="sourceLineNo">3403</span>    }<a name="line.3403"></a>
-<span class="sourceLineNo">3404</span><a name="line.3404"></a>
-<span class="sourceLineNo">3405</span>    /**<a name="line.3405"></a>
-<span class="sourceLineNo">3406</span>     * This method completes mini-batch operations by calling postBatchMutate() CP hook (if<a name="line.3406"></a>
-<span class="sourceLineNo">3407</span>     * required) and completing mvcc.<a name="line.3407"></a>
-<span class="sourceLineNo">3408</span>     */<a name="line.3408"></a>
-<span class="sourceLineNo">3409</span>    public void completeMiniBatchOperations(<a name="line.3409"></a>
-<span class="sourceLineNo">3410</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3410"></a>
-<span class="sourceLineNo">3411</span>        throws IOException {<a name="line.3411"></a>
-<span class="sourceLineNo">3412</span>      if (writeEntry != null) {<a name="line.3412"></a>
-<span class="sourceLineNo">3413</span>        region.mvcc.completeAndWait(writeEntry);<a name="line.3413"></a>
-<span class="sourceLineNo">3414</span>      }<a name="line.3414"></a>
-<span class="sourceLineNo">3415</span>    }<a name="line.3415"></a>
-<span class="sourceLineNo">3416</span><a name="line.3416"></a>
-<span class="sourceLineNo">3417</span>    public void doPostOpCleanupForMiniBatch(<a name="line.3417"></a>
-<span class="sourceLineNo">3418</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WALEdit walEdit,<a name="line.3418"></a>
-<span class="sourceLineNo">3419</span>        boolean success) throws IOException {<a name="line.3419"></a>
-<span class="sourceLineNo">3420</span>      doFinishHotnessProtector(miniBatchOp);<a name="line.3420"></a>
-<span class="sourceLineNo">3421</span>    }<a name="line.3421"></a>
-<span class="sourceLineNo">3422</span><a name="line.3422"></a>
-<span class="sourceLineNo">3423</span>    private void doFinishHotnessProtector(<a name="line.3423"></a>
-<span class="sourceLineNo">3424</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) {<a name="line.3424"></a>
-<span class="sourceLineNo">3425</span>      // check and return if the protector is not enabled<a name="line.3425"></a>
-<span class="sourceLineNo">3426</span>      if (!region.storeHotnessProtector.isEnable()) {<a name="line.3426"></a>
-<span class="sourceLineNo">3427</span>        return;<a name="line.3427"></a>
-<span class="sourceLineNo">3428</span>      }<a name="line.3428"></a>
-<span class="sourceLineNo">3429</span>      // miniBatchOp is null, if and only if lockRowsAndBuildMiniBatch throwing exception.<a name="line.3429"></a>
-<span class="sourceLineNo">3430</span>      // This case was handled.<a name="line.3430"></a>
-<span class="sourceLineNo">3431</span>      if (miniBatchOp == null) {<a name="line.3431"></a>
-<span class="sourceLineNo">3432</span>        return;<a name="line.3432"></a>
-<span class="sourceLineNo">3433</span>      }<a name="line.3433"></a>
-<span class="sourceLineNo">3434</span><a name="line.3434"></a>
-<span class="sourceLineNo">3435</span>      final int finalLastIndexExclusive = miniBatchOp.getLastIndexExclusive();<a name="line.3435"></a>
-<span class="sourceLineNo">3436</span><a name="line.3436"></a>
-<span class="sourceLineNo">3437</span>      for (int i = nextIndexToProcess; i &lt; finalLastIndexExclusive; i++) {<a name="line.3437"></a>
-<span class="sourceLineNo">3438</span>        switch (retCodeDetails[i].getOperationStatusCode()) {<a name="line.3438"></a>
-<span class="sourceLineNo">3439</span>          case SUCCESS:<a name="line.3439"></a>
-<span class="sourceLineNo">3440</span>          case FAILURE:<a name="line.3440"></a>
-<span class="sourceLineNo">3441</span>            region.storeHotnessProtector.finish(getMutation(i).getFamilyCellMap());<a name="line.3441"></a>
-<span class="sourceLineNo">3442</span>            break;<a name="line.3442"></a>
-<span class="sourceLineNo">3443</span>          default:<a name="line.3443"></a>
-<span class="sourceLineNo">3444</span>            // do nothing<a name="line.3444"></a>
-<span class="sourceLineNo">3445</span>            // We won't start the protector for NOT_RUN/BAD_FAMILY/SANITY_CHECK_FAILURE and the<a name="line.3445"></a>
-<span class="sourceLineNo">3446</span>            // STORE_TOO_BUSY case is handled in StoreHotnessProtector#start<a name="line.3446"></a>
-<span class="sourceLineNo">3447</span>            break;<a name="line.3447"></a>
-<span class="sourceLineNo">3448</span>        }<a name="line.3448"></a>
-<span class="sourceLineNo">3449</span>      }<a name="line.3449"></a>
-<span class="sourceLineNo">3450</span>    }<a name="line.3450"></a>
-<span class="sourceLineNo">3451</span><a name="line.3451"></a>
-<span class="sourceLineNo">3452</span>    /**<a name="line.3452"></a>
-<span class="sourceLineNo">3453</span>     * Atomically apply the given map of family-&gt;edits to the memstore.<a name="line.3453"></a>
-<span class="sourceLineNo">3454</span>     * This handles the consistency control on its own, but the caller<a name="line.3454"></a>
-<span class="sourceLineNo">3455</span>     * should already have locked updatesLock.readLock(). This also does<a name="line.3455"></a>
-<span class="sourceLineNo">3456</span>     * &lt;b&gt;not&lt;/b&gt; check the families for validity.<a name="line.3456"></a>
-<span class="sourceLineNo">3457</span>     *<a name="line.3457"></a>
-<span class="sourceLineNo">3458</span>     * @param familyMap Map of Cells by family<a name="line.3458"></a>
-<span class="sourceLineNo">3459</span>     */<a name="line.3459"></a>
-<span class="sourceLineNo">3460</span>    protected void applyFamilyMapToMemStore(Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.3460"></a>
-<span class="sourceLineNo">3461</span>        MemStoreSizing memstoreAccounting) throws IOException {<a name="line.3461"></a>
-<span class="sourceLineNo">3462</span>      for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.3462"></a>
-<span class="sourceLineNo">3463</span>        byte[] family = e.getKey();<a name="line.3463"></a>
-<span class="sourceLineNo">3464</span>        List&lt;Cell&gt; cells = e.getValue();<a name="line.3464"></a>
-<span class="sourceLineNo">3465</span>        assert cells instanceof RandomAccess;<a name="line.3465"></a>
-<span class="sourceLineNo">3466</span>        region.applyToMemStore(region.getStore(family), cells, false, memstoreAccounting);<a name="line.3466"></a>
-<span class="sourceLineNo">3467</span>      }<a name="line.3467"></a>
-<span class="sourceLineNo">3468</span>    }<a name="line.3468"></a>
-<span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
-<span class="sourceLineNo">3470</span><a name="line.3470"></a>
+<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(getTableDescriptor().getTableName().getNameAsString(),<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>          time - startTime,<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>    }<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span><a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>  }<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span><a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>  /**<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>   * Method to safely get the next sequence number.<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>   * @throws IOException<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span>   */<a name="line.2840"></a>
+<span class="sourceLineNo">2841</span>  @VisibleForTesting<a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span>    WriteEntry we = mvcc.begin();<a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>    mvcc.completeAndWait(we);<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>    return we.getWriteNumber();<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>  }<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span><a name="line.2847"></a>
+<span class="sourceLineNo">2848</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>  // get() methods for client use.<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span><a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>  @Override<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>   return getScanner(scan, null);<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>  }<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span><a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>  @Override<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>      throws IOException {<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>  }<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span><a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>    startRegionOperation(Operation.SCAN);<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>    try {<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>      // Verify families are all valid<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span>      if (!scan.hasFamilies()) {<a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>        // Adding all families to scanner<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span>          scan.addFamily(family);<a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>        }<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>      } else {<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>          checkFamily(family);<a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>        }<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>      }<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>    } finally {<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>      closeRegionOperation(Operation.SCAN);<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>    }<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>  }<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span><a name="line.2883"></a>
+<span class="sourceLineNo">2884</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>      HConstants.NO_NONCE);<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>  }<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span><a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>    if (scan.isReversed()) {<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>      if (scan.getFilter() != null) {<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>        scan.getFilter().setReversed(true);<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>      }<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>    }<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>  }<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span><a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>  /**<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span>   * Prepare a delete for a row mutation processor<a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>   * @throws IOException<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>   */<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>    // Check to see if this is a deleteRow insert<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>        // Don't eat the timestamp<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>      }<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>    } else {<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>        if(family == null) {<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>        }<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>        checkFamily(family);<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>      }<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>    }<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>  }<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span><a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>  @Override<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>  public void delete(Delete delete) throws IOException {<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>    checkReadOnly();<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>    checkResources();<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>    startRegionOperation(Operation.DELETE);<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>    try {<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span>      doBatchMutate(delete);<a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>    } finally {<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span>      closeRegionOperation(Operation.DELETE);<a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>    }<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>  }<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span><a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>  /**<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span>   * Row needed by below method.<a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>   */<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span><a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>  /**<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>   * @param familyMap map of family to edits for the given family.<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>   * @throws IOException<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>   */<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>      Durability durability) throws IOException {<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>    delete.setFamilyCellMap(familyMap);<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>    delete.setDurability(durability);<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>    doBatchMutate(delete);<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>  }<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span><a name="line.2953"></a>
+<span class="sourceLineNo">2954</span>  /**<a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>   * @param mutation<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>   * @param familyMap<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>   * @param byteNow<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>   * @throws IOException<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>   */<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>      byte[] byteNow) throws IOException {<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2964"></a>
+<span class="sourceLineNo">2965</span><a name="line.2965"></a>
+<span class="sourceLineNo">2966</span>      byte[] family = e.getKey();<a name="line.2966"></a>
+<span class="sourceLineNo">2967</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2967"></a>
+<span class="sourceLineNo">2968</span>      assert cells instanceof RandomAccess;<a name="line.2968"></a>
+<span class="sourceLineNo">2969</span><a name="line.2969"></a>
+<span class="sourceLineNo">2970</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2970"></a>
+<span class="sourceLineNo">2971</span>      int listSize = cells.size();<a name="line.2971"></a>
+<span class="sourceLineNo">2972</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2972"></a>
+<span class="sourceLineNo">2973</span>        Cell cell = cells.get(i);<a name="line.2973"></a>
+<span class="sourceLineNo">2974</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2974"></a>
+<span class="sourceLineNo">2975</span>        //  This is expensive.<a name="line.2975"></a>
+<span class="sourceLineNo">2976</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2976"></a>
+<span class="sourceLineNo">2977</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2977"></a>
+<span class="sourceLineNo">2978</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2978"></a>
+<span class="sourceLineNo">2979</span><a name="line.2979"></a>
+<span class="sourceLineNo">2980</span>          Integer count = kvCount.get(qual);<a name="line.2980"></a>
+<span class="sourceLineNo">2981</span>          if (count == null) {<a name="line.2981"></a>
+<span class="sourceLineNo">2982</span>            kvCount.put(qual, 1);<a name="line.2982"></a>
+<span class="sourceLineNo">2983</span>          } else {<a name="line.2983"></a>
+<span class="sourceLineNo">2984</span>            kvCount.put(qual, count + 1);<a name="line.2984"></a>
+<span class="sourceLineNo">2985</span>          }<a name="line.2985"></a>
+<span class="sourceLineNo">2986</span>          count = kvCount.get(qual);<a name="line.2986"></a>
+<span class="sourceLineNo">2987</span><a name="line.2987"></a>
+<span class="sourceLineNo">2988</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2988"></a>
+<span class="sourceLineNo">2989</span>          get.setMaxVersions(count);<a name="line.2989"></a>
+<span class="sourceLineNo">2990</span>          get.addColumn(family, qual);<a name="line.2990"></a>
+<span class="sourceLineNo">2991</span>          if (coprocessorHost != null) {<a name="line.2991"></a>
+<span class="sourceLineNo">2992</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2992"></a>
+<span class="sourceLineNo">2993</span>                byteNow, get)) {<a name="line.2993"></a>
+<span class="sourceLineNo">2994</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2994"></a>
+<span class="sourceLineNo">2995</span>            }<a name="line.2995"></a>
+<span class="sourceLineNo">2996</span>          } else {<a name="line.2996"></a>
+<span class="sourceLineNo">2997</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2997"></a>
+<span class="sourceLineNo">2998</span>          }<a name="line.2998"></a>
+<span class="sourceLineNo">2999</span>        } else {<a name="line.2999"></a>
+<span class="sourceLineNo">3000</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3000"></a>
+<span class="sourceLineNo">3001</span>        }<a name="line.3001"></a>
+<span class="sourceLineNo">3002</span>      }<a name="line.3002"></a>
+<span class="sourceLineNo">3003</span>    }<a name="line.3003"></a>
+<span class="sourceLineNo">3004</span>  }<a name="line.3004"></a>
+<span class="sourceLineNo">3005</span><a name="line.3005"></a>
+<span class="sourceLineNo">3006</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3006"></a>
+<span class="sourceLineNo">3007</span>      throws IOException {<a name="line.3007"></a>
+<span class="sourceLineNo">3008</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3008"></a>
+<span class="sourceLineNo">3009</span><a name="line.3009"></a>
+<span class="sourceLineNo">3010</span>    if (result.size() &lt; count) {<a name="line.3010"></a>
+<span class="sourceLineNo">3011</span>      // Nothing to delete<a name="line.3011"></a>
+<span class="sourceLineNo">3012</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3012"></a>
+<span class="sourceLineNo">3013</span>      return;<a name="line.3013"></a>
+<span class="sourceLineNo">3014</span>    }<a name="line.3014"></a>
+<span class="sourceLineNo">3015</span>    if (result.size() &gt; count) {<a name="line.3015"></a>
+<span class="sourceLineNo">3016</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3016"></a>
+<span class="sourceLineNo">3017</span>    }<a name="line.3017"></a>
+<span class="sourceLineNo">3018</span>    Cell getCell = result.get(count - 1);<a name="line.3018"></a>
+<span class="sourceLineNo">3019</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3019"></a>
+<span class="sourceLineNo">3020</span>  }<a name="line.3020"></a>
+<span class="sourceLineNo">3021</span><a name="line.3021"></a>
+<span class="sourceLineNo">3022</span>  @Override<a name="line.3022"></a>
+<span class="sourceLineNo">3023</span>  public void put(Put put) throws IOException {<a name="line.3023"></a>
+<span class="sourceLineNo">3024</span>    checkReadOnly();<a name="line.3024"></a>
+<span class="sourceLineNo">3025</span><a name="line.3025"></a>
+<span class="sourceLineNo">3026</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3026"></a>
+<span class="sourceLineNo">3027</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3027"></a>
+<span class="sourceLineNo">3028</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3028"></a>
+<span class="sourceLineNo">3029</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3029"></a>
+<span class="sourceLineNo">3030</span>    checkResources();<a name="line.3030"></a>
+<span class="sourceLineNo">3031</span>    startRegionOperation(Operation.PUT);<a name="line.3031"></a>
+<span class="sourceLineNo">3032</span>    try {<a name="line.3032"></a>
+<span class="sourceLineNo">3033</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3033"></a>
+<span class="sourceLineNo">3034</span>      doBatchMutate(put);<a name="line.3034"></a>
+<span class="sourceLineNo">3035</span>    } finally {<a name="line.3035"></a>
+<span class="sourceLineNo">3036</span>      closeRegionOperation(Operation.PUT);<a name="line.3036"></a>
+<span class="sourceLineNo">3037</span>    }<a name="line.3037"></a>
+<span class="sourceLineNo">3038</span>  }<a name="line.3038"></a>
+<span class="sourceLineNo">3039</span><a name="line.3039"></a>
+<span class="sourceLineNo">3040</span>  /**<a name="line.3040"></a>
+<span class="sourceLineNo">3041</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3041"></a>
+<span class="sourceLineNo">3042</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3042"></a>
+<span class="sourceLineNo">3043</span>   * mini-batches for processing.<a name="line.3043"></a>
+<span class="sourceLineNo">3044</span>   */<a name="line.3044"></a>
+<span class="sourceLineNo">3045</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3045"></a>
+<span class="sourceLineNo">3046</span>    protected final T[] operations;<a name="line.3046"></a>
+<span class="sourceLineNo">3047</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3047"></a>
+<span class="sourceLineNo">3048</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3048"></a>
+<span class="sourceLineNo">3049</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3049"></a>
+<span class="sourceLineNo">3050</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3050"></a>
+<span class="sourceLineNo">3051</span><a name="line.3051"></a>
+<span class="sourceLineNo">3052</span>    protected final HRegion region;<a name="line.3052"></a>
+<span class="sourceLineNo">3053</span>    protected int nextIndexToProcess = 0;<a name="line.3053"></a>
+<span class="sourceLineNo">3054</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3054"></a>
+<span class="sourceLineNo">3055</span>    //Dur

<TRUNCATED>

[25/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
index f99e988..6da1265 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
@@ -146,26 +146,30 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#metricRegistry">metricRegistry</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#metricsTable">metricsTable</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerQuotaSource</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#quotaSource">quotaSource</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#regionServerWrapper">regionServerWrapper</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_DEFAULT">RS_ENABLE_TABLE_METRICS_DEFAULT</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_KEY">RS_ENABLE_TABLE_METRICS_KEY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#serverSource">serverSource</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#tableMetrics">tableMetrics</a></span></code>&nbsp;</td>
 </tr>
@@ -184,13 +188,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                   org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
-                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
+                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -256,7 +262,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateCompaction-boolean-long-int-int-long-long-">updateCompaction</a></span>(boolean&nbsp;isMajor,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateCompaction-java.lang.String-boolean-long-int-int-long-long-">updateCompaction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                boolean&nbsp;isMajor,
                 long&nbsp;t,
                 int&nbsp;inputFileCount,
                 int&nbsp;outputFileCount,
@@ -275,7 +282,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateFlush-long-long-long-">updateFlush</a></span>(long&nbsp;t,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateFlush-java.lang.String-long-long-long-">updateFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+           long&nbsp;t,
            long&nbsp;memstoreSize,
            long&nbsp;fileSize)</code>&nbsp;</td>
 </tr>
@@ -392,13 +400,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.48">tableMetrics</a></pre>
 </li>
 </ul>
+<a name="metricsTable">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>metricsTable</h4>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.49">metricsTable</a></pre>
+</li>
+</ul>
 <a name="quotaSource">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>quotaSource</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerQuotaSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.49">quotaSource</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerQuotaSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.50">quotaSource</a></pre>
 </li>
 </ul>
 <a name="metricRegistry">
@@ -407,7 +424,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>metricRegistry</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/MetricRegistry.html" title="interface in org.apache.hadoop.hbase.metrics">MetricRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.51">metricRegistry</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/MetricRegistry.html" title="interface in org.apache.hadoop.hbase.metrics">MetricRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.52">metricRegistry</a></pre>
 </li>
 </ul>
 <a name="bulkLoadTimer">
@@ -416,7 +433,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>bulkLoadTimer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/Timer.html" title="interface in org.apache.hadoop.hbase.metrics">Timer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.52">bulkLoadTimer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/Timer.html" title="interface in org.apache.hadoop.hbase.metrics">Timer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.53">bulkLoadTimer</a></pre>
 </li>
 </ul>
 </li>
@@ -427,25 +444,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">
+<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.MetricsTable-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>MetricsRegionServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.54">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                           org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.55">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                           org.apache.hadoop.conf.Configuration&nbsp;conf,
+                           <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</pre>
 </li>
 </ul>
-<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">
+<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsRegionServer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.70">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.73">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
-                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</pre>
+                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</pre>
 </li>
 </ul>
 </li>
@@ -462,7 +481,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createTableMetrics</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.81">createTableMetrics</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.86">createTableMetrics</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Creates an instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><code>RegionServerTableMetrics</code></a> only if the feature is enabled.</div>
 </li>
 </ul>
@@ -472,7 +491,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetricsSource</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.89">getMetricsSource</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.94">getMetricsSource</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerWrapper--">
@@ -481,7 +500,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerWrapper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.93">getRegionServerWrapper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.98">getRegionServerWrapper</a>()</pre>
 </li>
 </ul>
 <a name="updatePutBatch-org.apache.hadoop.hbase.TableName-long-">
@@ -490,7 +509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePutBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.97">updatePutBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.102">updatePutBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                            long&nbsp;t)</pre>
 </li>
 </ul>
@@ -500,7 +519,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.107">updatePut</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.112">updatePut</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                       long&nbsp;t)</pre>
 </li>
 </ul>
@@ -510,7 +529,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.114">updateDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.119">updateDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                          long&nbsp;t)</pre>
 </li>
 </ul>
@@ -520,7 +539,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.121">updateDeleteBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.126">updateDeleteBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                               long&nbsp;t)</pre>
 </li>
 </ul>
@@ -530,7 +549,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.131">updateCheckAndDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.136">updateCheckAndDelete</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateCheckAndPut-long-">
@@ -539,7 +558,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.135">updateCheckAndPut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.140">updateCheckAndPut</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateGet-org.apache.hadoop.hbase.TableName-long-">
@@ -548,7 +567,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.139">updateGet</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.144">updateGet</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                       long&nbsp;t)</pre>
 </li>
 </ul>
@@ -558,7 +577,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.149">updateIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.154">updateIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                             long&nbsp;t)</pre>
 </li>
 </ul>
@@ -568,7 +587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.159">updateAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.164">updateAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                          long&nbsp;t)</pre>
 </li>
 </ul>
@@ -578,7 +597,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplay</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.169">updateReplay</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.174">updateReplay</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateScanSize-org.apache.hadoop.hbase.TableName-long-">
@@ -587,7 +606,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.173">updateScanSize</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.178">updateScanSize</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                            long&nbsp;scanSize)</pre>
 </li>
 </ul>
@@ -597,7 +616,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.180">updateScanTime</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.185">updateScanTime</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                            long&nbsp;t)</pre>
 </li>
 </ul>
@@ -607,7 +626,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateSplitTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.187">updateSplitTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.192">updateSplitTime</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="incrSplitRequest--">
@@ -616,7 +635,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitRequest</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.191">incrSplitRequest</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.196">incrSplitRequest</a>()</pre>
 </li>
 </ul>
 <a name="incrSplitSuccess--">
@@ -625,27 +644,29 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.195">incrSplitSuccess</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.200">incrSplitSuccess</a>()</pre>
 </li>
 </ul>
-<a name="updateFlush-long-long-long-">
+<a name="updateFlush-java.lang.String-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.199">updateFlush</a>(long&nbsp;t,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.204">updateFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                        long&nbsp;t,
                         long&nbsp;memstoreSize,
                         long&nbsp;fileSize)</pre>
 </li>
 </ul>
-<a name="updateCompaction-boolean-long-int-int-long-long-">
+<a name="updateCompaction-java.lang.String-boolean-long-int-int-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.205">updateCompaction</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.217">updateCompaction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                             boolean&nbsp;isMajor,
                              long&nbsp;t,
                              int&nbsp;inputFileCount,
                              int&nbsp;outputFileCount,
@@ -659,7 +680,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBulkLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.214">updateBulkLoad</a>(long&nbsp;millis)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.234">updateBulkLoad</a>(long&nbsp;millis)</pre>
 </li>
 </ul>
 <a name="incrementNumRegionSizeReportsSent-long-">
@@ -668,7 +689,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementNumRegionSizeReportsSent</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.221">incrementNumRegionSizeReportsSent</a>(long&nbsp;numReportsSent)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.241">incrementNumRegionSizeReportsSent</a>(long&nbsp;numReportsSent)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html#incrementNumRegionSizeReportsSent-long-"><code>MetricsRegionServerQuotaSource.incrementNumRegionSizeReportsSent(long)</code></a></dd>
@@ -681,7 +702,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>incrementRegionSizeReportingChoreTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.228">incrementRegionSizeReportingChoreTime</a>(long&nbsp;time)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.248">incrementRegionSizeReportingChoreTime</a>(long&nbsp;time)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html#incrementRegionSizeReportingChoreTime-long-"><code>MetricsRegionServerQuotaSource.incrementRegionSizeReportingChoreTime(long)</code></a></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html
index e871f66..d18193a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html
@@ -1837,94 +1837,94 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 </dl>
 </li>
 </ul>
-<a name="READ_REQUEST_COUNT_DESC">
+<a name="FILTERED_READ_REQUEST_COUNT">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>READ_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.257">READ_REQUEST_COUNT_DESC</a></pre>
+<h4>FILTERED_READ_REQUEST_COUNT</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.257">FILTERED_READ_REQUEST_COUNT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.FILTERED_READ_REQUEST_COUNT">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="READ_REQUEST_RATE_PER_SECOND">
+<a name="FILTERED_READ_REQUEST_COUNT_DESC">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>READ_REQUEST_RATE_PER_SECOND</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.259">READ_REQUEST_RATE_PER_SECOND</a></pre>
+<h4>FILTERED_READ_REQUEST_COUNT_DESC</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.258">FILTERED_READ_REQUEST_COUNT_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_RATE_PER_SECOND">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.FILTERED_READ_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="READ_REQUEST_RATE_DESC">
+<a name="READ_REQUEST_COUNT_DESC">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>READ_REQUEST_RATE_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.260">READ_REQUEST_RATE_DESC</a></pre>
+<h4>READ_REQUEST_COUNT_DESC</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.260">READ_REQUEST_COUNT_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_RATE_DESC">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="CP_REQUEST_COUNT">
+<a name="READ_REQUEST_RATE_PER_SECOND">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CP_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.262">CP_REQUEST_COUNT</a></pre>
+<h4>READ_REQUEST_RATE_PER_SECOND</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.262">READ_REQUEST_RATE_PER_SECOND</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.CP_REQUEST_COUNT">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_RATE_PER_SECOND">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="CP_REQUEST_COUNT_DESC">
+<a name="READ_REQUEST_RATE_DESC">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CP_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.263">CP_REQUEST_COUNT_DESC</a></pre>
+<h4>READ_REQUEST_RATE_DESC</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.263">READ_REQUEST_RATE_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.CP_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.READ_REQUEST_RATE_DESC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="FILTERED_READ_REQUEST_COUNT">
+<a name="CP_REQUEST_COUNT">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>FILTERED_READ_REQUEST_COUNT</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.265">FILTERED_READ_REQUEST_COUNT</a></pre>
+<h4>CP_REQUEST_COUNT</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.265">CP_REQUEST_COUNT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.FILTERED_READ_REQUEST_COUNT">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.CP_REQUEST_COUNT">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="FILTERED_READ_REQUEST_COUNT_DESC">
+<a name="CP_REQUEST_COUNT_DESC">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>FILTERED_READ_REQUEST_COUNT_DESC</h4>
-<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.266">FILTERED_READ_REQUEST_COUNT_DESC</a></pre>
+<h4>CP_REQUEST_COUNT_DESC</h4>
+<pre>static final&nbsp;<a href="https://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/regionserver/MetricsRegionServerSource.html#line.266">CP_REQUEST_COUNT_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.FILTERED_READ_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.CP_REQUEST_COUNT_DESC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>


[36/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
index eded5df..0782381 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
@@ -320,7 +320,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALProcedure.html
index 68f84c3..abca2f1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALProcedure.html
@@ -307,7 +307,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/P
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apa
 che.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.ha
 doop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdat
 e</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</
 a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassD
 etails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALRemoteProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALRemoteProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALRemoteProcedure.html
index 57c76bc..3c61806 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALRemoteProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALRemoteProcedure.html
@@ -322,7 +322,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/procedure2/RemoteP
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Pr
 ocedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setS
 tackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">
 waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollba
 ck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedT
 ime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.proc
 edure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String
 -java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long
 -">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.html
index b502b74..dc098d3 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.html
@@ -343,7 +343,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a h
 ref="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdH
 ashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache
 /hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner
 -org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/
 Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[28/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/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 07cb760..ee9fe5b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -3241,7 +3241,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FOR_UNIT_TESTS_ONLY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2938">FOR_UNIT_TESTS_ONLY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2939">FOR_UNIT_TESTS_ONLY</a></pre>
 <div class="block">Row needed by below method.</div>
 </li>
 </ul>
@@ -3251,7 +3251,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.8059">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8060">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -3260,7 +3260,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.8076">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8077">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="MOCKED_LIST">
@@ -3269,7 +3269,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="https://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.8471">MOCKED_LIST</a></pre>
+<pre>private static final&nbsp;<a href="https://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.8472">MOCKED_LIST</a></pre>
 <div class="block">A mocked list implementation - discards all updates.</div>
 </li>
 </ul>
@@ -4829,7 +4829,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getNextSequenceId</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2841">getNextSequenceId</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2842">getNextSequenceId</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
                           throws <a href="https://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">Method to safely get the next sequence number.</div>
 <dl>
@@ -4846,7 +4846,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2852">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2853">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
                                      throws <a href="https://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#getScanner-org.apache.hadoop.hbase.client.Scan-">Region</a></code></span></div>
 <div class="block">Return an iterator that scans over the HRegion, returning the indicated
@@ -4871,7 +4871,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2857">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2858">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                             <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                                      throws <a href="https://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#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-">Region</a></code></span></div>
@@ -4900,7 +4900,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2862">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2863">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                              <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                                              long&nbsp;nonceGroup,
                                              long&nbsp;nonce)
@@ -4917,7 +4917,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateRegionScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2883">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2884">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                                  <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                                           throws <a href="https://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>
@@ -4932,7 +4932,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateRegionScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2889">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2890">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                                              <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                                                              long&nbsp;nonceGroup,
                                                              long&nbsp;nonce)
@@ -4949,7 +4949,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2905">prepareDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2906">prepareDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
                    throws <a href="https://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">Prepare a delete for a row mutation processor</div>
 <dl>
@@ -4966,7 +4966,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2923">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2924">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
             throws <a href="https://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#delete-org.apache.hadoop.hbase.client.Delete-">Region</a></code></span></div>
 <div class="block">Deletes the specified cells/row.</div>
@@ -4984,7 +4984,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2945">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://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>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2946">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://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,
             <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)
      throws <a href="https://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">This is used only by unit tests. Not required to be a public API.</div>
@@ -5002,7 +5002,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareDeleteTimestamps</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2961">prepareDeleteTimestamps</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2962">prepareDeleteTimestamps</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                     <a href="https://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="https://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,
                                     byte[]&nbsp;byteNow)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5024,7 +5024,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteLatestVersionTimestamp</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3005">updateDeleteLatestVersionTimestamp</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3006">updateDeleteLatestVersionTimestamp</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                                         <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                                         int&nbsp;count,
                                         byte[]&nbsp;byteNow)
@@ -5041,7 +5041,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3022">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3023">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
          throws <a href="https://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#put-org.apache.hadoop.hbase.client.Put-">Region</a></code></span></div>
 <div class="block">Puts some data in the table.</div>
@@ -5059,7 +5059,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3897">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3898">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
                                      long&nbsp;nonceGroup,
                                      long&nbsp;nonce)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5075,7 +5075,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3902">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3903">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
                                      boolean&nbsp;atomic,
                                      long&nbsp;nonceGroup,
                                      long&nbsp;nonce)
@@ -5092,7 +5092,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3912">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3913">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations)
                               throws <a href="https://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#batchMutate-org.apache.hadoop.hbase.client.Mutation:A-">Region</a></code></span></div>
 <div class="block">Perform a batch of mutations.
@@ -5117,7 +5117,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchReplay</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3916">batchReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;mutations,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3917">batchReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;mutations,
                                      long&nbsp;replaySeqId)
                               throws <a href="https://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>
@@ -5132,7 +5132,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3960">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3961">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
                        throws <a href="https://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">Perform a batch of mutations.
 
@@ -5164,7 +5164,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doMiniBatchMutate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3991">doMiniBatchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3992">doMiniBatchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
                         throws <a href="https://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">Called to do a piece of the batch that came in to <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#batchMutate-org.apache.hadoop.hbase.client.Mutation:A-long-long-"><code>batchMutate(Mutation[], long, long)</code></a>
  In here we also handle replay of edits on region recover.</div>
@@ -5180,7 +5180,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getEffectiveDurability</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4079">getEffectiveDurability</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4080">getEffectiveDurability</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</pre>
 <div class="block">Returns effective durability from the passed durability and
  the table descriptor.</div>
 </li>
@@ -5191,7 +5191,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMutate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4084">checkAndMutate</a>(byte[]&nbsp;row,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4085">checkAndMutate</a>(byte[]&nbsp;row,
                               byte[]&nbsp;family,
                               byte[]&nbsp;qualifier,
                               <a href="../../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase">CompareOperator</a>&nbsp;op,
@@ -5228,7 +5228,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndRowMutate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4091">checkAndRowMutate</a>(byte[]&nbsp;row,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4092">checkAndRowMutate</a>(byte[]&nbsp;row,
                                  byte[]&nbsp;family,
                                  byte[]&nbsp;qualifier,
                                  <a href="../../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase">CompareOperator</a>&nbsp;op,
@@ -5265,7 +5265,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doCheckAndRowMutate</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4100">doCheckAndRowMutate</a>(byte[]&nbsp;row,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4101">doCheckAndRowMutate</a>(byte[]&nbsp;row,
                                     byte[]&nbsp;family,
                                     byte[]&nbsp;qualifier,
                                     <a href="../../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase">CompareOperator</a>&nbsp;op,
@@ -5288,7 +5288,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkMutationType</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4199">checkMutationType</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;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4200">checkMutationType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                byte[]&nbsp;row)
                         throws <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></pre>
 <dl>
@@ -5303,7 +5303,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>matches</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4210">matches</a>(<a href="../../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase">CompareOperator</a>&nbsp;op,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4211">matches</a>(<a href="../../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase">CompareOperator</a>&nbsp;op,
                         int&nbsp;compareResult)</pre>
 </li>
 </ul>
@@ -5313,7 +5313,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doBatchMutate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4238">doBatchMutate</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;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4239">doBatchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation)
                     throws <a href="https://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>
@@ -5327,7 +5327,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionToSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4263">addRegionToSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;desc,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4264">addRegionToSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;desc,
                                 <a href="../../../../../org/apache/hadoop/hbase/errorhandling/ForeignExceptionSnare.html" title="interface in org.apache.hadoop.hbase.errorhandling">ForeignExceptionSnare</a>&nbsp;exnSnare)
                          throws <a href="https://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">Complete taking the snapshot on the region. Writes the region info and adds references to the
@@ -5352,7 +5352,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>updateSequenceId</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4273">updateSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://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;cellItr,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4274">updateSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://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;cellItr,
                               long&nbsp;sequenceId)
                        throws <a href="https://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>
@@ -5367,7 +5367,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCellTimestamps</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4289">updateCellTimestamps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://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;cellItr,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4290">updateCellTimestamps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://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;cellItr,
                                          byte[]&nbsp;now)
                                   throws <a href="https://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">Replace any cell timestamps set to <a href="../../../../../org/apache/hadoop/hbase/HConstants.html#LATEST_TIMESTAMP"><code>HConstants.LATEST_TIMESTAMP</code></a>
@@ -5387,7 +5387,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>rewriteCellTags</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4306">rewriteCellTags</a>(<a href="https://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="https://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>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4307">rewriteCellTags</a>(<a href="https://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="https://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,
                      <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;m)</pre>
 <div class="block">Possibly rewrite incoming cell tags.</div>
 </li>
@@ -5398,7 +5398,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkResources</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4334">checkResources</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4335">checkResources</a>()
              throws <a href="../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -5412,7 +5412,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReadOnly</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4356">checkReadOnly</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4357">checkReadOnly</a>()
                       throws <a href="https://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>
@@ -5426,7 +5426,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReadsEnabled</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4362">checkReadsEnabled</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4363">checkReadsEnabled</a>()
                           throws <a href="https://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>
@@ -5440,7 +5440,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setReadsEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4369">setReadsEnabled</a>(boolean&nbsp;readsEnabled)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4370">setReadsEnabled</a>(boolean&nbsp;readsEnabled)</pre>
 </li>
 </ul>
 <a name="put-byte:A-byte:A-java.util.List-">
@@ -5449,7 +5449,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4382">put</a>(byte[]&nbsp;row,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4383">put</a>(byte[]&nbsp;row,
          byte[]&nbsp;family,
          <a href="https://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;edits)
   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5470,7 +5470,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>applyToMemStore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4398">applyToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4399">applyToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                              <a href="https://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,
                              boolean&nbsp;delta,
                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreAccounting)
@@ -5493,7 +5493,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>applyToMemStore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4412">applyToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4413">applyToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                              <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreAccounting)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5511,7 +5511,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkFamilies</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4427">checkFamilies</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;families)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4428">checkFamilies</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;families)
                    throws <a href="../../../../../org/apache/hadoop/hbase/regionserver/NoSuchColumnFamilyException.html" title="class in org.apache.hadoop.hbase.regionserver">NoSuchColumnFamilyException</a></pre>
 <div class="block">Check the collection of families for validity.</div>
 <dl>
@@ -5528,7 +5528,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTimestamps</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4439">checkTimestamps</a>(<a href="https://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="https://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>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4440">checkTimestamps</a>(<a href="https://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="https://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,
                             long&nbsp;now)
                      throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/FailedSanityCheckException.html" title="class in org.apache.hadoop.hbase.exceptions">FailedSanityCheckException</a></pre>
 <div class="block">Check the collection of families for valid timestamps</div>
@@ -5547,7 +5547,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isFlushSize</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4466">isFlushSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;size)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4467">isFlushSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;size)</pre>
 </li>
 </ul>
 <a name="replayRecoveredEditsIfAny-org.apache.hadoop.fs.Path-java.util.Map-org.apache.hadoop.hbase.util.CancelableProgressable-org.apache.hadoop.hbase.monitoring.MonitoredTask-">
@@ -5556,7 +5556,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayRecoveredEditsIfAny</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4503">replayRecoveredEditsIfAny</a>(org.apache.hadoop.fs.Path&nbsp;regiondir,
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4504">replayRecoveredEditsIfAny</a>(org.apache.hadoop.fs.Path&nbsp;regiondir,
                                          <a href="https://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="https://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;maxSeqIdInStores,
                                          <a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter,
                                          <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
@@ -5604,7 +5604,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayRecoveredEdits</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4606">replayRecoveredEdits</a>(org.apache.hadoop.fs.Path&nbsp;edits,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4607">replayRecoveredEdits</a>(org.apache.hadoop.fs.Path&nbsp;edits,
                                   <a href="https://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="https://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;maxSeqIdInStores,
                                   <a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5620,7 +5620,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALCompactionMarker</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4810">replayWALCompactionMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;compaction,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4811">replayWALCompactionMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;compaction,
                                boolean&nbsp;pickCompactionFiles,
                                boolean&nbsp;removeFiles,
                                long&nbsp;replaySeqId)
@@ -5640,7 +5640,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALFlushMarker</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4871">replayWALFlushMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4872">replayWALFlushMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
                           long&nbsp;replaySeqId)
                    throws <a href="https://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>
@@ -5655,7 +5655,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALFlushStartMarker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4918">replayWALFlushStartMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.4919">replayWALFlushStartMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)
                                               throws <a href="https://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">Replay the flush marker from primary region by creating a corresponding snapshot of
  the store memstores, only if the memstores do not have a higher seqId from an earlier wal
@@ -5672,7 +5672,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALFlushCommitMarker</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5031">replayWALFlushCommitMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5032">replayWALFlushCommitMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)
                          throws <a href="https://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>
@@ -5686,7 +5686,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayFlushInStores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5155">replayFlushInStores</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5156">replayFlushInStores</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
                                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;prepareFlushResult,
                                  boolean&nbsp;dropMemstoreSnapshot)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5708,7 +5708,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>dropMemStoreContents</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5196">dropMemStoreContents</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5197">dropMemStoreContents</a>()
                                   throws <a href="https://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">Be careful, this method will drop all data in the memstore of this region.
  Currently, this method is used to drop memstore to prevent memory leak
@@ -5725,7 +5725,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>dropMemStoreContentsForSeqId</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5218">dropMemStoreContentsForSeqId</a>(long&nbsp;seqId,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5219">dropMemStoreContentsForSeqId</a>(long&nbsp;seqId,
                                                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store)
                                            throws <a href="https://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">Drops the memstore contents after replaying a flush descriptor or region open event replay
@@ -5742,7 +5742,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doDropStoreMemStoreContentsForSeqId</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5249">doDropStoreMemStoreContentsForSeqId</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;s,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5250">doDropStoreMemStoreContentsForSeqId</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;s,
                                                          long&nbsp;currentSeqId)
                                                   throws <a href="https://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>
@@ -5757,7 +5757,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALFlushAbortMarker</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5259">replayWALFlushAbortMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5260">replayWALFlushAbortMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush)</pre>
 </li>
 </ul>
 <a name="replayWALFlushCannotFlushMarker-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor-long-">
@@ -5766,7 +5766,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALFlushCannotFlushMarker</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5265">replayWALFlushCannotFlushMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5266">replayWALFlushCannotFlushMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;flush,
                                              long&nbsp;replaySeqId)</pre>
 </li>
 </ul>
@@ -5776,7 +5776,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrepareFlushResult</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5285">getPrepareFlushResult</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5286">getPrepareFlushResult</a>()</pre>
 </li>
 </ul>
 <a name="replayWALRegionEventMarker-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor-">
@@ -5785,7 +5785,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALRegionEventMarker</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5291">replayWALRegionEventMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor&nbsp;regionEvent)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5292">replayWALRegionEventMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor&nbsp;regionEvent)
                          throws <a href="https://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>
@@ -5799,7 +5799,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>replayWALBulkLoadEventMarker</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5407">replayWALBulkLoadEventMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor&nbsp;bulkLoadEvent)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5408">replayWALBulkLoadEventMarker</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor&nbsp;bulkLoadEvent)
                            throws <a href="https://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>
@@ -5813,7 +5813,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>dropPrepareFlushIfPossible</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5490">dropPrepareFlushIfPossible</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5491">dropPrepareFlushIfPossible</a>()</pre>
 <div class="block">If all stores ended up dropping their snapshots, we can safely drop the prepareFlushResult</div>
 </li>
 </ul>
@@ -5823,7 +5823,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshStoreFiles</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5517">refreshStoreFiles</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5518">refreshStoreFiles</a>()
                           throws <a href="https://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#refreshStoreFiles--">Region</a></code></span></div>
 <div class="block">Check the region's underlying store files, open the files that have not
@@ -5843,7 +5843,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshStoreFiles</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5523">refreshStoreFiles</a>(boolean&nbsp;force)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5524">refreshStoreFiles</a>(boolean&nbsp;force)
                              throws <a href="https://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>
@@ -5857,7 +5857,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>logRegionFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5614">logRegionFiles</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5615">logRegionFiles</a>()</pre>
 </li>
 </ul>
 <a name="checkTargetRegion-byte:A-java.lang.String-java.lang.Object-">
@@ -5866,7 +5866,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTargetRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5626">checkTargetRegion</a>(byte[]&nbsp;encodedRegionName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5627">checkTargetRegion</a>(byte[]&nbsp;encodedRegionName,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;exceptionMsg,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;payload)
                         throws <a href="../../../../../org/apache/hadoop/hbase/regionserver/WrongRegionException.html" title="class in org.apache.hadoop.hbase.regionserver">WrongRegionException</a></pre>
@@ -5884,7 +5884,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreEdit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5649">restoreEdit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;s,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5650">restoreEdit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;s,
                            <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                            <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreAccounting)</pre>
 <div class="block">Used by tests</div>
@@ -5901,7 +5901,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isZeroLengthThenDelete</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5658">isZeroLengthThenDelete</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5659">isZeroLengthThenDelete</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                               org.apache.hadoop.fs.Path&nbsp;p)
                                        throws <a href="https://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>
@@ -5920,7 +5920,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateHStore</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5669">instantiateHStore</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5670">instantiateHStore</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)
                             throws <a href="https://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>
@@ -5934,7 +5934,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5683">getStore</a>(byte[]&nbsp;column)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5684">getStore</a>(byte[]&nbsp;column)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getStore-byte:A-">Region</a></code></span></div>
 <div class="block">Return the Store for the given family
  <p>Use with caution.  Exposed for use of fixup utilities.</div>
@@ -5952,7 +5952,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5691">getStore</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5692">getStore</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</pre>
 <div class="block">Return HStore instance. Does not do any copy: as the number of store is limited, we iterate on
  the list.</div>
 </li>
@@ -5963,7 +5963,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStores</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5697">getStores</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5698">getStores</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getStores--">Region</a></code></span></div>
 <div class="block">Return the list of Stores managed by this region
  <p>Use with caution.  Exposed for use of fixup utilities.</div>
@@ -5981,7 +5981,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileList</h4>
-<pre>public&nbsp;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5702">getStoreFileList</a>(byte[][]&nbsp;columns)
+<pre>public&nbsp;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5703">getStoreFileList</a>(byte[][]&nbsp;columns)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -5999,7 +5999,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkRow</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5730">checkRow</a>(byte[]&nbsp;row,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5731">checkRow</a>(byte[]&nbsp;row,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;op)
        throws <a href="https://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">Make sure this is a valid row for the HRegion</div>
@@ -6015,7 +6015,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLock</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5747">getRowLock</a>(byte[]&nbsp;row)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5748">getRowLock</a>(byte[]&nbsp;row)
                           throws <a href="https://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">Get an exclusive ( write lock ) lock on a given row.</div>
 <dl>
@@ -6034,7 +6034,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLock</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5752">getRowLock</a>(byte[]&nbsp;row,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5753">getRowLock</a>(byte[]&nbsp;row,
                                  boolean&nbsp;readLock)
                           throws <a href="https://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#getRowLock-byte:A-boolean-">Region</a></code></span></div>
@@ -6069,7 +6069,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLockInternal</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5757">getRowLockInternal</a>(byte[]&nbsp;row,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5758">getRowLockInternal</a>(byte[]&nbsp;row,
                                             boolean&nbsp;readLock,
                                             <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&nbsp;prevRowLock)
                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -6085,7 +6085,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseRowLocks</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5841">releaseRowLocks</a>(<a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;rowLocks)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5842">releaseRowLocks</a>(<a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;rowLocks)</pre>
 </li>
 </ul>
 <a name="getReadLockCount--">
@@ -6094,7 +6094,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadLockCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5851">getReadLockCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5852">getReadLockCount</a>()</pre>
 </li>
 </ul>
 <a name="getLockedRows--">
@@ -6103,7 +6103,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getLockedRows</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5855">getLockedRows</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5856">getLockedRows</a>()</pre>
 </li>
 </ul>
 <a name="hasMultipleColumnFamilies-java.util.Collection-">
@@ -6112,7 +6112,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>hasMultipleColumnFamilies</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5962">hasMultipleColumnFamilies</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;familyPaths)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5963">hasMultipleColumnFamilies</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;familyPaths)</pre>
 <div class="block">Determines whether multiple column families are present
  Precondition: familyPaths is not null</div>
 <dl>
@@ -6127,7 +6127,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoadHFiles</h4>
-<pre>public&nbsp;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5988">bulkLoadHFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in jav

<TRUNCATED>

[51/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.


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

Branch: refs/heads/asf-site
Commit: 74f60271df5a05c9a1dc0d3ce2af41cd63b08afc
Parents: 424d7e4
Author: jenkins <bu...@apache.org>
Authored: Fri Aug 31 14:47:10 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Fri Aug 31 14:47:10 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       |   758 +-
 checkstyle.rss                                  |    44 +-
 coc.html                                        |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |   119 +-
 devapidocs/index-all.html                       |   403 +-
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/coprocessor/package-tree.html  |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     8 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/NettyRpcServer.html |     4 +-
 .../RpcServer.BlockingServiceAndInterface.html  |    12 +-
 .../hadoop/hbase/ipc/RpcServer.CallCleanup.html |     4 +-
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |   187 +-
 .../hadoop/hbase/ipc/SimpleRpcServer.html       |     4 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     2 +-
 .../master/assignment/AssignProcedure.html      |     2 +-
 ...signmentManager.RegionInTransitionChore.html |     2 +-
 .../master/assignment/CloseRegionProcedure.html |     2 +-
 .../assignment/GCMergedRegionsProcedure.html    |     2 +-
 .../master/assignment/GCRegionProcedure.html    |     2 +-
 .../assignment/MergeTableRegionsProcedure.html  |     2 +-
 .../master/assignment/MoveRegionProcedure.html  |     2 +-
 .../master/assignment/OpenRegionProcedure.html  |     2 +-
 .../assignment/RegionRemoteProcedureBase.html   |     2 +-
 .../assignment/RegionTransitionProcedure.html   |     2 +-
 .../assignment/SplitTableRegionProcedure.html   |     2 +-
 .../assignment/TransitRegionStateProcedure.html |     2 +-
 .../master/assignment/UnassignProcedure.html    |     2 +-
 .../hbase/master/locking/LockProcedure.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../AbstractStateMachineNamespaceProcedure.html |     2 +-
 .../AbstractStateMachineRegionProcedure.html    |     2 +-
 .../AbstractStateMachineTableProcedure.html     |     2 +-
 .../procedure/CloneSnapshotProcedure.html       |     2 +-
 .../procedure/CreateNamespaceProcedure.html     |     2 +-
 .../master/procedure/CreateTableProcedure.html  |     2 +-
 .../procedure/DeleteNamespaceProcedure.html     |     2 +-
 .../master/procedure/DeleteTableProcedure.html  |     2 +-
 .../master/procedure/DisableTableProcedure.html |     2 +-
 .../master/procedure/EnableTableProcedure.html  |     2 +-
 .../master/procedure/InitMetaProcedure.html     |     2 +-
 .../procedure/ModifyNamespaceProcedure.html     |     2 +-
 .../master/procedure/ModifyTableProcedure.html  |     2 +-
 .../master/procedure/RecoverMetaProcedure.html  |     2 +-
 .../procedure/ReopenTableRegionsProcedure.html  |     2 +-
 .../procedure/RestoreSnapshotProcedure.html     |     2 +-
 .../master/procedure/ServerCrashProcedure.html  |     2 +-
 .../procedure/TruncateTableProcedure.html       |     2 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../replication/AbstractPeerProcedure.html      |     2 +-
 .../master/replication/AddPeerProcedure.html    |     2 +-
 .../replication/DisablePeerProcedure.html       |     2 +-
 .../master/replication/EnablePeerProcedure.html |     2 +-
 .../master/replication/ModifyPeerProcedure.html |     2 +-
 .../replication/RecoverStandbyProcedure.html    |     2 +-
 .../replication/RefreshPeerProcedure.html       |     2 +-
 .../master/replication/RemovePeerProcedure.html |     2 +-
 .../SyncReplicationReplayWALProcedure.html      |     2 +-
 ...SyncReplicationReplayWALRemoteProcedure.html |     2 +-
 ...ransitPeerSyncReplicationStateProcedure.html |     2 +-
 .../replication/UpdatePeerConfigProcedure.html  |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    18 +-
 .../hbase/procedure2/OnePhaseProcedure.html     |     2 +-
 .../hadoop/hbase/procedure2/Procedure.html      |   425 +-
 ...edureExecutor.CompletedProcedureCleaner.html |     2 +-
 .../ProcedureExecutor.FailedProcedure.html      |     2 +-
 ...ProcedureExecutor.KeepAliveWorkerThread.html |     6 +-
 .../ProcedureExecutor.WorkerMonitor.html        |    32 +-
 .../ProcedureExecutor.WorkerThread.html         |    20 +-
 .../hbase/procedure2/ProcedureExecutor.html     |   265 +-
 .../procedure2/ProcedureInMemoryChore.html      |     2 +-
 .../hadoop/hbase/procedure2/ProcedureUtil.html  |     8 +-
 .../hbase/procedure2/SequentialProcedure.html   |     2 +-
 .../hbase/procedure2/StateMachineProcedure.html |     2 +-
 .../hbase/procedure2/TwoPhaseProcedure.html     |     2 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     6 +-
 .../hadoop/hbase/quotas/package-tree.html       |     8 +-
 .../HRegion.BatchOperation.Visitor.html         |     4 +-
 .../regionserver/HRegion.BatchOperation.html    |    78 +-
 .../regionserver/HRegion.BulkLoadListener.html  |     8 +-
 .../HRegion.MutationBatchOperation.html         |    44 +-
 .../regionserver/HRegion.RegionScannerImpl.html |    90 +-
 .../HRegion.ReplayBatchOperation.html           |    32 +-
 .../regionserver/HRegion.RowLockContext.html    |    28 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html |    16 +-
 .../hadoop/hbase/regionserver/HRegion.html      |   360 +-
 .../regionserver/HStore.StoreFlusherImpl.html   |    34 +-
 .../hadoop/hbase/regionserver/HStore.html       |   176 +-
 .../hbase/regionserver/MetricsRegionServer.html |   111 +-
 .../regionserver/MetricsRegionServerSource.html |    56 +-
 .../MetricsRegionServerSourceImpl.html          |   124 +-
 .../regionserver/MetricsRegionWrapper.html      |    37 +-
 ...apperImpl.HRegionMetricsWrapperRunnable.html |     6 +-
 .../regionserver/MetricsRegionWrapperImpl.html  |    43 +-
 .../hadoop/hbase/regionserver/MetricsTable.html |   183 +-
 .../MetricsTableAggregateSource.html            |    27 +-
 .../MetricsTableAggregateSourceImpl.html        |    62 +-
 .../hbase/regionserver/MetricsTableSource.html  |   344 +-
 .../regionserver/MetricsTableSourceImpl.html    |   644 +-
 .../MetricsTableWrapperAggregate.html           |   208 +-
 ...WrapperAggregateImpl.MetricsTableValues.html |   303 +-
 ...gregateImpl.TableMetricsWrapperRunnable.html |     6 +-
 .../MetricsTableWrapperAggregateImpl.html       |   274 +-
 .../class-use/MetricsRegionServerSource.html    |     5 +-
 .../class-use/MetricsRegionServerWrapper.html   |    10 +-
 .../regionserver/class-use/MetricsTable.html    |    23 +
 .../class-use/MetricsTableSource.html           |    24 +-
 .../class-use/MetricsTableWrapperAggregate.html |    14 +-
 .../class-use/RegionServerTableMetrics.html     |     5 +-
 .../hadoop/hbase/regionserver/package-tree.html |    23 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../hbase/regionserver/wal/package-tree.html    |     4 +-
 .../hadoop/hbase/replication/package-tree.html  |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../apache/hadoop/hbase/util/IdLock.Entry.html  |    12 +-
 .../org/apache/hadoop/hbase/util/IdLock.html    |    45 +-
 .../hbase/util/class-use/IdLock.Entry.html      |     7 +
 .../apache/hadoop/hbase/util/package-tree.html  |     8 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../metrics2/class-use/MetricHistogram.html     |    90 +-
 .../lib/class-use/MutableFastCounter.html       |    32 +
 devapidocs/overview-tree.html                   |     4 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../RpcServer.BlockingServiceAndInterface.html  |  1213 +-
 .../hadoop/hbase/ipc/RpcServer.CallCleanup.html |  1213 +-
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |  1213 +-
 .../hbase/procedure2/Procedure.LockState.html   |  1701 +--
 .../hadoop/hbase/procedure2/Procedure.html      |  1701 +--
 ...edureExecutor.CompletedProcedureCleaner.html |  2174 +--
 ...dureExecutor.CompletedProcedureRetainer.html |  2174 +--
 .../ProcedureExecutor.FailedProcedure.html      |  2174 +--
 ...ProcedureExecutor.KeepAliveWorkerThread.html |  2174 +--
 ...edureExecutor.ProcedureExecutorListener.html |  2174 +--
 .../procedure2/ProcedureExecutor.Testing.html   |  2174 +--
 .../ProcedureExecutor.WorkerMonitor.html        |  2174 +--
 .../ProcedureExecutor.WorkerThread.html         |  2174 +--
 .../hbase/procedure2/ProcedureExecutor.html     |  2174 +--
 .../ProcedureUtil.CompatStateSerializer.html    |   206 +-
 .../ProcedureUtil.StateSerializer.html          |   206 +-
 .../hadoop/hbase/procedure2/ProcedureUtil.html  |   206 +-
 .../HRegion.BatchOperation.Visitor.html         | 11677 +++++++++--------
 .../regionserver/HRegion.BatchOperation.html    | 11677 +++++++++--------
 .../regionserver/HRegion.BulkLoadListener.html  | 11677 +++++++++--------
 .../HRegion.FlushResult.Result.html             | 11677 +++++++++--------
 .../hbase/regionserver/HRegion.FlushResult.html | 11677 +++++++++--------
 .../regionserver/HRegion.FlushResultImpl.html   | 11677 +++++++++--------
 .../HRegion.MutationBatchOperation.html         | 11677 +++++++++--------
 .../HRegion.ObservedExceptionsInBatch.html      | 11677 +++++++++--------
 .../HRegion.PrepareFlushResult.html             | 11677 +++++++++--------
 .../regionserver/HRegion.RegionScannerImpl.html | 11677 +++++++++--------
 .../HRegion.ReplayBatchOperation.html           | 11677 +++++++++--------
 .../regionserver/HRegion.RowLockContext.html    | 11677 +++++++++--------
 .../hbase/regionserver/HRegion.RowLockImpl.html | 11677 +++++++++--------
 .../hbase/regionserver/HRegion.WriteState.html  | 11677 +++++++++--------
 .../hadoop/hbase/regionserver/HRegion.html      | 11677 +++++++++--------
 .../HRegionServer.CompactionChecker.html        |     6 +-
 .../HRegionServer.MovedRegionInfo.html          |     6 +-
 .../HRegionServer.MovedRegionsCleaner.html      |     6 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html  |     6 +-
 .../hbase/regionserver/HRegionServer.html       |     6 +-
 .../regionserver/HStore.StoreFlusherImpl.html   |  2648 ++--
 .../hadoop/hbase/regionserver/HStore.html       |  2648 ++--
 .../hbase/regionserver/MetricsRegionServer.html |   376 +-
 .../regionserver/MetricsRegionServerSource.html |    22 +-
 .../MetricsRegionServerSourceImpl.html          |  1079 +-
 .../regionserver/MetricsRegionWrapper.html      |    96 +-
 ...apperImpl.HRegionMetricsWrapperRunnable.html |   203 +-
 .../regionserver/MetricsRegionWrapperImpl.html  |   203 +-
 .../hadoop/hbase/regionserver/MetricsTable.html |    56 +-
 .../MetricsTableAggregateSource.html            |    28 +-
 .../MetricsTableAggregateSourceImpl.html        |   159 +-
 .../hbase/regionserver/MetricsTableSource.html  |   130 +-
 .../regionserver/MetricsTableSourceImpl.html    |   557 +-
 .../MetricsTableWrapperAggregate.html           |    96 +-
 ...WrapperAggregateImpl.MetricsTableValues.html |   456 +-
 ...gregateImpl.TableMetricsWrapperRunnable.html |   456 +-
 .../MetricsTableWrapperAggregateImpl.html       |   456 +-
 .../apache/hadoop/hbase/util/IdLock.Entry.html  |   274 +-
 .../org/apache/hadoop/hbase/util/IdLock.html    |   274 +-
 downloads.html                                  |     4 +-
 export_control.html                             |     4 +-
 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/allclasses-frame.html            |     7 +-
 testdevapidocs/allclasses-noframe.html          |     7 +-
 testdevapidocs/constant-values.html             |    38 +
 testdevapidocs/index-all.html                   |   166 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hbase/class-use/HBaseClassTestRule.html     |    32 +-
 .../class-use/HBaseCommonTestingUtility.html    |    10 +-
 .../hbase/client/TestAsyncRegionAdminApi.html   |    38 +-
 .../TestGetProcedureResult.DummyProcedure.html  |     2 +-
 .../client/procedure/ShellTestProcedure.html    |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 .../TestBlockingIPC.TestFailingRpcServer.html   |     4 +-
 .../ipc/TestNettyIPC.TestFailingRpcServer.html  |     4 +-
 .../ipc/TestRpcServerSlowConnectionSetup.html   |     4 +-
 .../hbase/ipc/TestRpcServerTraceLogging.html    |   416 +
 .../hbase/ipc/TestSimpleRpcScheduler.html       |     4 +-
 .../class-use/TestRpcServerTraceLogging.html    |   125 +
 .../apache/hadoop/hbase/ipc/package-frame.html  |     1 +
 .../hadoop/hbase/ipc/package-summary.html       |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     1 +
 .../hbase/master/DummyRegionProcedure.html      |     2 +-
 ...RegionWhileRSCrash.DummyServerProcedure.html |     2 +-
 ...erPerformanceEvaluation.RegionProcedure.html |     2 +-
 ...lerPerformanceEvaluation.TableProcedure.html |     2 +-
 ...edure.CreateTableProcedureOnHDFSFailure.html |     2 +-
 ...ocedureScheduler.TestNamespaceProcedure.html |     2 +-
 ...terProcedureScheduler.TestPeerProcedure.html |     2 +-
 ...rProcedureScheduler.TestRegionProcedure.html |     2 +-
 ...erProcedureScheduler.TestTableProcedure.html |     2 +-
 ...reScheduler.TestTableProcedureWithEvent.html |     2 +-
 ...ure.TruncateTableProcedureOnHDFSFailure.html |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../TestProcedureDescriber.TestProcedure.html   |     2 +-
 .../hadoop/hbase/procedure/package-tree.html    |     8 +-
 .../ProcedureTestingUtility.NoopProcedure.html  |     4 +-
 .../ProcedureTestingUtility.TestProcedure.html  |     2 +-
 .../TestChildProcedures.TestChildProcedure.html |     2 +-
 .../TestChildProcedures.TestRootProcedure.html  |     6 +-
 .../TestProcedureBypass.RootProcedure.html      |   369 +
 .../TestProcedureBypass.StuckProcedure.html     |   338 +
 .../TestProcedureBypass.SuspendProcedure.html   |   341 +
 .../TestProcedureBypass.TestProcEnv.html        |   244 +
 .../hbase/procedure2/TestProcedureBypass.html   |   537 +
 ...ocedureEvents.TestTimeoutEventProcedure.html |     2 +-
 .../hbase/procedure2/TestProcedureEvents.html   |     4 +-
 ...stProcedureExecution.TestFaultyRollback.html |     2 +-
 ...cedureExecution.TestSequentialProcedure.html |     2 +-
 ...tion.TestWaitingProcedure.TestWaitChild.html |     2 +-
 ...ProcedureExecution.TestWaitingProcedure.html |     2 +-
 ...TestProcedureExecutor.BusyWaitProcedure.html |     2 +-
 ...stProcedureInMemoryChore.TestLatchChore.html |     2 +-
 .../TestProcedureMetrics.ProcedureMetrics.html  |     2 +-
 ...tProcedureNonce.TestSingleStepProcedure.html |     2 +-
 ...ProcedureRecovery.BaseTestStepProcedure.html |     2 +-
 ...y.TestMultiStepProcedure.Step1Procedure.html |     2 +-
 ...y.TestMultiStepProcedure.Step2Procedure.html |     2 +-
 ...rocedureRecovery.TestMultiStepProcedure.html |     2 +-
 ...ocedureRecovery.TestSingleStepProcedure.html |     2 +-
 ...edureRecovery.TestStateMachineProcedure.html |     2 +-
 .../TestProcedureReplayOrder.TestProcedure.html |     2 +-
 ...dureReplayOrder.TestSingleStepProcedure.html |     2 +-
 ...ocedureReplayOrder.TestTwoStepProcedure.html |     2 +-
 ...dulerConcurrency.TestProcedureWithEvent.html |     2 +-
 ...estProcedureSuspended.TestLockProcedure.html |     2 +-
 .../TestProcedureToString.BasicProcedure.html   |     2 +-
 ...tring.DoublingStateStringBasicProcedure.html |     2 +-
 ...ureToString.SimpleStateMachineProcedure.html |     2 +-
 ...eUtil.TestProcedureNoDefaultConstructor.html |     2 +-
 ...teMachineProcedure.SimpleChildProcedure.html |     2 +-
 ...stStateMachineProcedure.TestSMProcedure.html |     2 +-
 ...ineProcedure.TestSMProcedureBadRollback.html |     2 +-
 ...eldProcedures.TestStateMachineProcedure.html |     2 +-
 .../TestYieldProcedures.TestYieldProcedure.html |     2 +-
 .../ProcedureTestingUtility.NoopProcedure.html  |    20 +-
 .../TestProcedureBypass.RootProcedure.html      |   125 +
 .../TestProcedureBypass.StuckProcedure.html     |   125 +
 .../TestProcedureBypass.SuspendProcedure.html   |   125 +
 .../TestProcedureBypass.TestProcEnv.html        |   199 +
 .../class-use/TestProcedureBypass.html          |   125 +
 .../hadoop/hbase/procedure2/package-frame.html  |     5 +
 .../hbase/procedure2/package-summary.html       |   128 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     5 +
 .../hadoop/hbase/procedure2/package-use.html    |    43 +-
 ...LProcedureStore.TestSequentialProcedure.html |     2 +-
 .../regionserver/MetricsRegionWrapperStub.html  |    21 +-
 .../regionserver/MetricsTableWrapperStub.html   |   221 +-
 ...tricsRegionSourceImpl.RegionWrapperStub.html |    21 +-
 .../regionserver/TestMetricsTableAggregate.html |   191 +-
 ...MetricsTableSourceImpl.TableWrapperStub.html |   436 -
 .../TestMetricsTableSourceImpl.html             |    31 +-
 .../TestMiniBatchOperationInProgress.html       |     4 +-
 .../class-use/MetricsTableWrapperStub.html      |    42 +-
 ...MetricsTableSourceImpl.TableWrapperStub.html |   125 -
 .../hbase/regionserver/package-frame.html       |     1 -
 .../hbase/regionserver/package-summary.html     |   256 +-
 .../hadoop/hbase/regionserver/package-tree.html |     7 +-
 .../hadoop/hbase/regionserver/package-use.html  |    55 +-
 ...tAccessController.TestTableDDLProcedure.html |     2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-tree.html               |     7 +-
 .../hbase/client/TestAsyncRegionAdminApi.html   |   888 +-
 .../hbase/ipc/TestRpcServerTraceLogging.html    |   167 +
 .../TestProcedureBypass.RootProcedure.html      |   257 +
 .../TestProcedureBypass.StuckProcedure.html     |   257 +
 .../TestProcedureBypass.SuspendProcedure.html   |   257 +
 .../TestProcedureBypass.TestProcEnv.html        |   257 +
 .../hbase/procedure2/TestProcedureBypass.html   |   257 +
 .../TestYieldProcedures.TestProcEnv.html        |    12 +-
 .../TestYieldProcedures.TestScheduler.html      |    12 +-
 ...TestStateMachineProcedure.ExecutionInfo.html |    12 +-
 ...cedures.TestStateMachineProcedure.State.html |    12 +-
 ...eldProcedures.TestStateMachineProcedure.html |    12 +-
 .../TestYieldProcedures.TestYieldProcedure.html |    12 +-
 .../hbase/procedure2/TestYieldProcedures.html   |    12 +-
 .../regionserver/MetricsRegionWrapperStub.html  |     7 +-
 .../regionserver/MetricsTableWrapperStub.html   |    63 +-
 .../regionserver/TestMetricsRegionServer.html   |    12 +-
 ...tricsRegionSourceImpl.RegionWrapperStub.html |     9 +-
 .../TestMetricsRegionSourceImpl.html            |     9 +-
 .../regionserver/TestMetricsTableAggregate.html |   153 +-
 ...MetricsTableSourceImpl.TableWrapperStub.html |   195 -
 .../TestMetricsTableSourceImpl.html             |   109 +-
 336 files changed, 117510 insertions(+), 109467 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 42572c9..5818afe 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -601,7 +601,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index bcfd8c5..835a321 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.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20180828142947+00'00')
-/CreationDate (D:20180828144359+00'00')
+/ModDate (D:20180831142949+00'00')
+/CreationDate (D:20180831144346+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 1645949..63cb7fe 100644
--- a/book.html
+++ b/book.html
@@ -41151,7 +41151,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-08-28 14:29:47 UTC
+Last updated 2018-08-31 14:29:49 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 4de824e..7961f8a 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="20180828" />
+    <meta name="Date-Revision-yyyymmdd" content="20180831" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-08-28</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-08-31</li>
             </p>
                 </div>
 


[03/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index a8cb7c4..8ec6dad 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -2831,5851 +2831,5852 @@
 <span class="sourceLineNo">2823</span>    status.setStatus(msg);<a name="line.2823"></a>
 <span class="sourceLineNo">2824</span><a name="line.2824"></a>
 <span class="sourceLineNo">2825</span>    if (rsServices != null &amp;&amp; rsServices.getMetrics() != null) {<a name="line.2825"></a>
-<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(time - startTime,<a name="line.2826"></a>
-<span class="sourceLineNo">2827</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2827"></a>
-<span class="sourceLineNo">2828</span>    }<a name="line.2828"></a>
-<span class="sourceLineNo">2829</span><a name="line.2829"></a>
-<span class="sourceLineNo">2830</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2830"></a>
-<span class="sourceLineNo">2831</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2831"></a>
-<span class="sourceLineNo">2832</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2832"></a>
-<span class="sourceLineNo">2833</span>  }<a name="line.2833"></a>
-<span class="sourceLineNo">2834</span><a name="line.2834"></a>
-<span class="sourceLineNo">2835</span>  /**<a name="line.2835"></a>
-<span class="sourceLineNo">2836</span>   * Method to safely get the next sequence number.<a name="line.2836"></a>
-<span class="sourceLineNo">2837</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2837"></a>
-<span class="sourceLineNo">2838</span>   * @throws IOException<a name="line.2838"></a>
-<span class="sourceLineNo">2839</span>   */<a name="line.2839"></a>
-<span class="sourceLineNo">2840</span>  @VisibleForTesting<a name="line.2840"></a>
-<span class="sourceLineNo">2841</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2841"></a>
-<span class="sourceLineNo">2842</span>    WriteEntry we = mvcc.begin();<a name="line.2842"></a>
-<span class="sourceLineNo">2843</span>    mvcc.completeAndWait(we);<a name="line.2843"></a>
-<span class="sourceLineNo">2844</span>    return we.getWriteNumber();<a name="line.2844"></a>
-<span class="sourceLineNo">2845</span>  }<a name="line.2845"></a>
-<span class="sourceLineNo">2846</span><a name="line.2846"></a>
-<span class="sourceLineNo">2847</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2847"></a>
-<span class="sourceLineNo">2848</span>  // get() methods for client use.<a name="line.2848"></a>
-<span class="sourceLineNo">2849</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2849"></a>
-<span class="sourceLineNo">2850</span><a name="line.2850"></a>
-<span class="sourceLineNo">2851</span>  @Override<a name="line.2851"></a>
-<span class="sourceLineNo">2852</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2852"></a>
-<span class="sourceLineNo">2853</span>   return getScanner(scan, null);<a name="line.2853"></a>
-<span class="sourceLineNo">2854</span>  }<a name="line.2854"></a>
-<span class="sourceLineNo">2855</span><a name="line.2855"></a>
-<span class="sourceLineNo">2856</span>  @Override<a name="line.2856"></a>
-<span class="sourceLineNo">2857</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2857"></a>
-<span class="sourceLineNo">2858</span>      throws IOException {<a name="line.2858"></a>
-<span class="sourceLineNo">2859</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2859"></a>
-<span class="sourceLineNo">2860</span>  }<a name="line.2860"></a>
-<span class="sourceLineNo">2861</span><a name="line.2861"></a>
-<span class="sourceLineNo">2862</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2862"></a>
-<span class="sourceLineNo">2863</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2863"></a>
-<span class="sourceLineNo">2864</span>    startRegionOperation(Operation.SCAN);<a name="line.2864"></a>
-<span class="sourceLineNo">2865</span>    try {<a name="line.2865"></a>
-<span class="sourceLineNo">2866</span>      // Verify families are all valid<a name="line.2866"></a>
-<span class="sourceLineNo">2867</span>      if (!scan.hasFamilies()) {<a name="line.2867"></a>
-<span class="sourceLineNo">2868</span>        // Adding all families to scanner<a name="line.2868"></a>
-<span class="sourceLineNo">2869</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2869"></a>
-<span class="sourceLineNo">2870</span>          scan.addFamily(family);<a name="line.2870"></a>
-<span class="sourceLineNo">2871</span>        }<a name="line.2871"></a>
-<span class="sourceLineNo">2872</span>      } else {<a name="line.2872"></a>
-<span class="sourceLineNo">2873</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2873"></a>
-<span class="sourceLineNo">2874</span>          checkFamily(family);<a name="line.2874"></a>
-<span class="sourceLineNo">2875</span>        }<a name="line.2875"></a>
-<span class="sourceLineNo">2876</span>      }<a name="line.2876"></a>
-<span class="sourceLineNo">2877</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2877"></a>
-<span class="sourceLineNo">2878</span>    } finally {<a name="line.2878"></a>
-<span class="sourceLineNo">2879</span>      closeRegionOperation(Operation.SCAN);<a name="line.2879"></a>
-<span class="sourceLineNo">2880</span>    }<a name="line.2880"></a>
-<span class="sourceLineNo">2881</span>  }<a name="line.2881"></a>
-<span class="sourceLineNo">2882</span><a name="line.2882"></a>
-<span class="sourceLineNo">2883</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2883"></a>
-<span class="sourceLineNo">2884</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2884"></a>
-<span class="sourceLineNo">2885</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2885"></a>
-<span class="sourceLineNo">2886</span>      HConstants.NO_NONCE);<a name="line.2886"></a>
-<span class="sourceLineNo">2887</span>  }<a name="line.2887"></a>
-<span class="sourceLineNo">2888</span><a name="line.2888"></a>
-<span class="sourceLineNo">2889</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2889"></a>
-<span class="sourceLineNo">2890</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2890"></a>
-<span class="sourceLineNo">2891</span>    if (scan.isReversed()) {<a name="line.2891"></a>
-<span class="sourceLineNo">2892</span>      if (scan.getFilter() != null) {<a name="line.2892"></a>
-<span class="sourceLineNo">2893</span>        scan.getFilter().setReversed(true);<a name="line.2893"></a>
-<span class="sourceLineNo">2894</span>      }<a name="line.2894"></a>
-<span class="sourceLineNo">2895</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2895"></a>
-<span class="sourceLineNo">2896</span>    }<a name="line.2896"></a>
-<span class="sourceLineNo">2897</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2897"></a>
-<span class="sourceLineNo">2898</span>  }<a name="line.2898"></a>
-<span class="sourceLineNo">2899</span><a name="line.2899"></a>
-<span class="sourceLineNo">2900</span>  /**<a name="line.2900"></a>
-<span class="sourceLineNo">2901</span>   * Prepare a delete for a row mutation processor<a name="line.2901"></a>
-<span class="sourceLineNo">2902</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2902"></a>
-<span class="sourceLineNo">2903</span>   * @throws IOException<a name="line.2903"></a>
-<span class="sourceLineNo">2904</span>   */<a name="line.2904"></a>
-<span class="sourceLineNo">2905</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2905"></a>
-<span class="sourceLineNo">2906</span>    // Check to see if this is a deleteRow insert<a name="line.2906"></a>
-<span class="sourceLineNo">2907</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2907"></a>
-<span class="sourceLineNo">2908</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2908"></a>
-<span class="sourceLineNo">2909</span>        // Don't eat the timestamp<a name="line.2909"></a>
-<span class="sourceLineNo">2910</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2910"></a>
-<span class="sourceLineNo">2911</span>      }<a name="line.2911"></a>
-<span class="sourceLineNo">2912</span>    } else {<a name="line.2912"></a>
-<span class="sourceLineNo">2913</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2913"></a>
-<span class="sourceLineNo">2914</span>        if(family == null) {<a name="line.2914"></a>
-<span class="sourceLineNo">2915</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2915"></a>
-<span class="sourceLineNo">2916</span>        }<a name="line.2916"></a>
-<span class="sourceLineNo">2917</span>        checkFamily(family);<a name="line.2917"></a>
-<span class="sourceLineNo">2918</span>      }<a name="line.2918"></a>
-<span class="sourceLineNo">2919</span>    }<a name="line.2919"></a>
-<span class="sourceLineNo">2920</span>  }<a name="line.2920"></a>
-<span class="sourceLineNo">2921</span><a name="line.2921"></a>
-<span class="sourceLineNo">2922</span>  @Override<a name="line.2922"></a>
-<span class="sourceLineNo">2923</span>  public void delete(Delete delete) throws IOException {<a name="line.2923"></a>
-<span class="sourceLineNo">2924</span>    checkReadOnly();<a name="line.2924"></a>
-<span class="sourceLineNo">2925</span>    checkResources();<a name="line.2925"></a>
-<span class="sourceLineNo">2926</span>    startRegionOperation(Operation.DELETE);<a name="line.2926"></a>
-<span class="sourceLineNo">2927</span>    try {<a name="line.2927"></a>
-<span class="sourceLineNo">2928</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2928"></a>
-<span class="sourceLineNo">2929</span>      doBatchMutate(delete);<a name="line.2929"></a>
-<span class="sourceLineNo">2930</span>    } finally {<a name="line.2930"></a>
-<span class="sourceLineNo">2931</span>      closeRegionOperation(Operation.DELETE);<a name="line.2931"></a>
-<span class="sourceLineNo">2932</span>    }<a name="line.2932"></a>
-<span class="sourceLineNo">2933</span>  }<a name="line.2933"></a>
-<span class="sourceLineNo">2934</span><a name="line.2934"></a>
-<span class="sourceLineNo">2935</span>  /**<a name="line.2935"></a>
-<span class="sourceLineNo">2936</span>   * Row needed by below method.<a name="line.2936"></a>
-<span class="sourceLineNo">2937</span>   */<a name="line.2937"></a>
-<span class="sourceLineNo">2938</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2938"></a>
-<span class="sourceLineNo">2939</span><a name="line.2939"></a>
-<span class="sourceLineNo">2940</span>  /**<a name="line.2940"></a>
-<span class="sourceLineNo">2941</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2941"></a>
-<span class="sourceLineNo">2942</span>   * @param familyMap map of family to edits for the given family.<a name="line.2942"></a>
-<span class="sourceLineNo">2943</span>   * @throws IOException<a name="line.2943"></a>
-<span class="sourceLineNo">2944</span>   */<a name="line.2944"></a>
-<span class="sourceLineNo">2945</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2945"></a>
-<span class="sourceLineNo">2946</span>      Durability durability) throws IOException {<a name="line.2946"></a>
-<span class="sourceLineNo">2947</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2947"></a>
-<span class="sourceLineNo">2948</span>    delete.setFamilyCellMap(familyMap);<a name="line.2948"></a>
-<span class="sourceLineNo">2949</span>    delete.setDurability(durability);<a name="line.2949"></a>
-<span class="sourceLineNo">2950</span>    doBatchMutate(delete);<a name="line.2950"></a>
-<span class="sourceLineNo">2951</span>  }<a name="line.2951"></a>
-<span class="sourceLineNo">2952</span><a name="line.2952"></a>
-<span class="sourceLineNo">2953</span>  /**<a name="line.2953"></a>
-<span class="sourceLineNo">2954</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2954"></a>
-<span class="sourceLineNo">2955</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2955"></a>
-<span class="sourceLineNo">2956</span>   * @param mutation<a name="line.2956"></a>
-<span class="sourceLineNo">2957</span>   * @param familyMap<a name="line.2957"></a>
-<span class="sourceLineNo">2958</span>   * @param byteNow<a name="line.2958"></a>
-<span class="sourceLineNo">2959</span>   * @throws IOException<a name="line.2959"></a>
-<span class="sourceLineNo">2960</span>   */<a name="line.2960"></a>
-<span class="sourceLineNo">2961</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2961"></a>
-<span class="sourceLineNo">2962</span>      byte[] byteNow) throws IOException {<a name="line.2962"></a>
-<span class="sourceLineNo">2963</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2963"></a>
-<span class="sourceLineNo">2964</span><a name="line.2964"></a>
-<span class="sourceLineNo">2965</span>      byte[] family = e.getKey();<a name="line.2965"></a>
-<span class="sourceLineNo">2966</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2966"></a>
-<span class="sourceLineNo">2967</span>      assert cells instanceof RandomAccess;<a name="line.2967"></a>
-<span class="sourceLineNo">2968</span><a name="line.2968"></a>
-<span class="sourceLineNo">2969</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2969"></a>
-<span class="sourceLineNo">2970</span>      int listSize = cells.size();<a name="line.2970"></a>
-<span class="sourceLineNo">2971</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2971"></a>
-<span class="sourceLineNo">2972</span>        Cell cell = cells.get(i);<a name="line.2972"></a>
-<span class="sourceLineNo">2973</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2973"></a>
-<span class="sourceLineNo">2974</span>        //  This is expensive.<a name="line.2974"></a>
-<span class="sourceLineNo">2975</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2975"></a>
-<span class="sourceLineNo">2976</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2976"></a>
-<span class="sourceLineNo">2977</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2977"></a>
-<span class="sourceLineNo">2978</span><a name="line.2978"></a>
-<span class="sourceLineNo">2979</span>          Integer count = kvCount.get(qual);<a name="line.2979"></a>
-<span class="sourceLineNo">2980</span>          if (count == null) {<a name="line.2980"></a>
-<span class="sourceLineNo">2981</span>            kvCount.put(qual, 1);<a name="line.2981"></a>
-<span class="sourceLineNo">2982</span>          } else {<a name="line.2982"></a>
-<span class="sourceLineNo">2983</span>            kvCount.put(qual, count + 1);<a name="line.2983"></a>
-<span class="sourceLineNo">2984</span>          }<a name="line.2984"></a>
-<span class="sourceLineNo">2985</span>          count = kvCount.get(qual);<a name="line.2985"></a>
-<span class="sourceLineNo">2986</span><a name="line.2986"></a>
-<span class="sourceLineNo">2987</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2987"></a>
-<span class="sourceLineNo">2988</span>          get.setMaxVersions(count);<a name="line.2988"></a>
-<span class="sourceLineNo">2989</span>          get.addColumn(family, qual);<a name="line.2989"></a>
-<span class="sourceLineNo">2990</span>          if (coprocessorHost != null) {<a name="line.2990"></a>
-<span class="sourceLineNo">2991</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2991"></a>
-<span class="sourceLineNo">2992</span>                byteNow, get)) {<a name="line.2992"></a>
-<span class="sourceLineNo">2993</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2993"></a>
-<span class="sourceLineNo">2994</span>            }<a name="line.2994"></a>
-<span class="sourceLineNo">2995</span>          } else {<a name="line.2995"></a>
-<span class="sourceLineNo">2996</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2996"></a>
-<span class="sourceLineNo">2997</span>          }<a name="line.2997"></a>
-<span class="sourceLineNo">2998</span>        } else {<a name="line.2998"></a>
-<span class="sourceLineNo">2999</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.2999"></a>
-<span class="sourceLineNo">3000</span>        }<a name="line.3000"></a>
-<span class="sourceLineNo">3001</span>      }<a name="line.3001"></a>
-<span class="sourceLineNo">3002</span>    }<a name="line.3002"></a>
-<span class="sourceLineNo">3003</span>  }<a name="line.3003"></a>
-<span class="sourceLineNo">3004</span><a name="line.3004"></a>
-<span class="sourceLineNo">3005</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3005"></a>
-<span class="sourceLineNo">3006</span>      throws IOException {<a name="line.3006"></a>
-<span class="sourceLineNo">3007</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3007"></a>
-<span class="sourceLineNo">3008</span><a name="line.3008"></a>
-<span class="sourceLineNo">3009</span>    if (result.size() &lt; count) {<a name="line.3009"></a>
-<span class="sourceLineNo">3010</span>      // Nothing to delete<a name="line.3010"></a>
-<span class="sourceLineNo">3011</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3011"></a>
-<span class="sourceLineNo">3012</span>      return;<a name="line.3012"></a>
-<span class="sourceLineNo">3013</span>    }<a name="line.3013"></a>
-<span class="sourceLineNo">3014</span>    if (result.size() &gt; count) {<a name="line.3014"></a>
-<span class="sourceLineNo">3015</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3015"></a>
-<span class="sourceLineNo">3016</span>    }<a name="line.3016"></a>
-<span class="sourceLineNo">3017</span>    Cell getCell = result.get(count - 1);<a name="line.3017"></a>
-<span class="sourceLineNo">3018</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3018"></a>
-<span class="sourceLineNo">3019</span>  }<a name="line.3019"></a>
-<span class="sourceLineNo">3020</span><a name="line.3020"></a>
-<span class="sourceLineNo">3021</span>  @Override<a name="line.3021"></a>
-<span class="sourceLineNo">3022</span>  public void put(Put put) throws IOException {<a name="line.3022"></a>
-<span class="sourceLineNo">3023</span>    checkReadOnly();<a name="line.3023"></a>
-<span class="sourceLineNo">3024</span><a name="line.3024"></a>
-<span class="sourceLineNo">3025</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3025"></a>
-<span class="sourceLineNo">3026</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3026"></a>
-<span class="sourceLineNo">3027</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3027"></a>
-<span class="sourceLineNo">3028</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3028"></a>
-<span class="sourceLineNo">3029</span>    checkResources();<a name="line.3029"></a>
-<span class="sourceLineNo">3030</span>    startRegionOperation(Operation.PUT);<a name="line.3030"></a>
-<span class="sourceLineNo">3031</span>    try {<a name="line.3031"></a>
-<span class="sourceLineNo">3032</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3032"></a>
-<span class="sourceLineNo">3033</span>      doBatchMutate(put);<a name="line.3033"></a>
-<span class="sourceLineNo">3034</span>    } finally {<a name="line.3034"></a>
-<span class="sourceLineNo">3035</span>      closeRegionOperation(Operation.PUT);<a name="line.3035"></a>
-<span class="sourceLineNo">3036</span>    }<a name="line.3036"></a>
-<span class="sourceLineNo">3037</span>  }<a name="line.3037"></a>
-<span class="sourceLineNo">3038</span><a name="line.3038"></a>
-<span class="sourceLineNo">3039</span>  /**<a name="line.3039"></a>
-<span class="sourceLineNo">3040</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3040"></a>
-<span class="sourceLineNo">3041</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3041"></a>
-<span class="sourceLineNo">3042</span>   * mini-batches for processing.<a name="line.3042"></a>
-<span class="sourceLineNo">3043</span>   */<a name="line.3043"></a>
-<span class="sourceLineNo">3044</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3044"></a>
-<span class="sourceLineNo">3045</span>    protected final T[] operations;<a name="line.3045"></a>
-<span class="sourceLineNo">3046</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3046"></a>
-<span class="sourceLineNo">3047</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3047"></a>
-<span class="sourceLineNo">3048</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3048"></a>
-<span class="sourceLineNo">3049</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3049"></a>
-<span class="sourceLineNo">3050</span><a name="line.3050"></a>
-<span class="sourceLineNo">3051</span>    protected final HRegion region;<a name="line.3051"></a>
-<span class="sourceLineNo">3052</span>    protected int nextIndexToProcess = 0;<a name="line.3052"></a>
-<span class="sourceLineNo">3053</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3053"></a>
-<span class="sourceLineNo">3054</span>    //Durability of the batch (highest durability of all operations)<a name="line.3054"></a>
-<span class="sourceLineNo">3055</span>    protected Durability durability;<a name="line.3055"></a>
-<span class="sourceLineNo">3056</span>    protected boolean atomic = false;<a name="line.3056"></a>
-<span class="sourceLineNo">3057</span><a name="line.3057"></a>
-<span class="sourceLineNo">3058</span>    public BatchOperation(final HRegion region, T[] operations) {<a name="line.3058"></a>
-<span class="sourceLineNo">3059</span>      this.operations = operations;<a name="line.3059"></a>
-<span class="sourceLineNo">3060</span>      this.retCodeDetails = new OperationStatus[operations.length];<a name="line.3060"></a>
-<span class="sourceLineNo">3061</span>      Arrays.fill(this.retCodeDetails, OperationStatus.NOT_RUN);<a name="line.3061"></a>
-<span class="sourceLineNo">3062</span>      this.walEditsFromCoprocessors = new WALEdit[operations.length];<a name="line.3062"></a>
-<span class="sourceLineNo">3063</span>      familyCellMaps = new Map[operations.length];<a name="line.3063"></a>
-<span class="sourceLineNo">3064</span><a name="line.3064"></a>
-<span class="sourceLineNo">3065</span>      this.region = region;<a name="line.3065"></a>
-<span class="sourceLineNo">3066</span>      observedExceptions = new ObservedExceptionsInBatch();<a name="line.3066"></a>
-<span class="sourceLineNo">3067</span>      durability = Durability.USE_DEFAULT;<a name="line.3067"></a>
-<span class="sourceLineNo">3068</span>    }<a name="line.3068"></a>
-<span class="sourceLineNo">3069</span><a name="line.3069"></a>
-<span class="sourceLineNo">3070</span>    /**<a name="line.3070"></a>
-<span class="sourceLineNo">3071</span>     * Visitor interface for batch operations<a name="line.3071"></a>
-<span class="sourceLineNo">3072</span>     */<a name="line.3072"></a>
-<span class="sourceLineNo">3073</span>    @FunctionalInterface<a name="line.3073"></a>
-<span class="sourceLineNo">3074</span>    public interface Visitor {<a name="line.3074"></a>
-<span class="sourceLineNo">3075</span>      /**<a name="line.3075"></a>
-<span class="sourceLineNo">3076</span>       * @param index operation index<a name="line.3076"></a>
-<span class="sourceLineNo">3077</span>       * @return If true continue visiting remaining entries, break otherwise<a name="line.3077"></a>
-<span class="sourceLineNo">3078</span>       */<a name="line.3078"></a>
-<span class="sourceLineNo">3079</span>      boolean visit(int index) throws IOException;<a name="line.3079"></a>
-<span class="sourceLineNo">3080</span>    }<a name="line.3080"></a>
-<span class="sourceLineNo">3081</span><a name="line.3081"></a>
-<span class="sourceLineNo">3082</span>    /**<a name="line.3082"></a>
-<span class="sourceLineNo">3083</span>     * Helper method for visiting pending/ all batch operations<a name="line.3083"></a>
-<span class="sourceLineNo">3084</span>     */<a name="line.3084"></a>
-<span class="sourceLineNo">3085</span>    public void visitBatchOperations(boolean pendingOnly, int lastIndexExclusive, Visitor visitor)<a name="line.3085"></a>
-<span class="sourceLineNo">3086</span>        throws IOException {<a name="line.3086"></a>
-<span class="sourceLineNo">3087</span>      assert lastIndexExclusive &lt;= this.size();<a name="line.3087"></a>
-<span class="sourceLineNo">3088</span>      for (int i = nextIndexToProcess; i &lt; lastIndexExclusive; i++) {<a name="line.3088"></a>
-<span class="sourceLineNo">3089</span>        if (!pendingOnly || isOperationPending(i)) {<a name="line.3089"></a>
-<span class="sourceLineNo">3090</span>          if (!visitor.visit(i)) {<a name="line.3090"></a>
-<span class="sourceLineNo">3091</span>            break;<a name="line.3091"></a>
-<span class="sourceLineNo">3092</span>          }<a name="line.3092"></a>
-<span class="sourceLineNo">3093</span>        }<a name="line.3093"></a>
-<span class="sourceLineNo">3094</span>      }<a name="line.3094"></a>
-<span class="sourceLineNo">3095</span>    }<a name="line.3095"></a>
-<span class="sourceLineNo">3096</span><a name="line.3096"></a>
-<span class="sourceLineNo">3097</span>    public abstract Mutation getMutation(int index);<a name="line.3097"></a>
-<span class="sourceLineNo">3098</span><a name="line.3098"></a>
-<span class="sourceLineNo">3099</span>    public abstract long getNonceGroup(int index);<a name="line.3099"></a>
-<span class="sourceLineNo">3100</span><a name="line.3100"></a>
-<span class="sourceLineNo">3101</span>    public abstract long getNonce(int index);<a name="line.3101"></a>
-<span class="sourceLineNo">3102</span><a name="line.3102"></a>
-<span class="sourceLineNo">3103</span>    /**<a name="line.3103"></a>
-<span class="sourceLineNo">3104</span>     * This method is potentially expensive and useful mostly for non-replay CP path.<a name="line.3104"></a>
-<span class="sourceLineNo">3105</span>     */<a name="line.3105"></a>
-<span class="sourceLineNo">3106</span>    public abstract Mutation[] getMutationsForCoprocs();<a name="line.3106"></a>
-<span class="sourceLineNo">3107</span><a name="line.3107"></a>
-<span class="sourceLineNo">3108</span>    public abstract boolean isInReplay();<a name="line.3108"></a>
-<span class="sourceLineNo">3109</span><a name="line.3109"></a>
-<span class="sourceLineNo">3110</span>    public abstract long getOrigLogSeqNum();<a name="line.3110"></a>
-<span class="sourceLineNo">3111</span><a name="line.3111"></a>
-<span class="sourceLineNo">3112</span>    public abstract void startRegionOperation() throws IOException;<a name="line.3112"></a>
-<span class="sourceLineNo">3113</span><a name="line.3113"></a>
-<span class="sourceLineNo">3114</span>    public abstract void closeRegionOperation() throws IOException;<a name="line.3114"></a>
-<span class="sourceLineNo">3115</span><a name="line.3115"></a>
-<span class="sourceLineNo">3116</span>    /**<a name="line.3116"></a>
-<span class="sourceLineNo">3117</span>     * Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs<a name="line.3117"></a>
-<span class="sourceLineNo">3118</span>     * CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on<a name="line.3118"></a>
-<span class="sourceLineNo">3119</span>     * entire batch and will be called from outside of class to check and prepare batch. This can<a name="line.3119"></a>
-<span class="sourceLineNo">3120</span>     * be implemented by calling helper method {@link #checkAndPrepareMutation(int, long)} in a<a name="line.3120"></a>
-<span class="sourceLineNo">3121</span>     * 'for' loop over mutations.<a name="line.3121"></a>
-<span class="sourceLineNo">3122</span>     */<a name="line.3122"></a>
-<span class="sourceLineNo">3123</span>    public abstract void checkAndPrepare() throws IOException;<a name="line.3123"></a>
-<span class="sourceLineNo">3124</span><a name="line.3124"></a>
-<span class="sourceLineNo">3125</span>    /**<a name="line.3125"></a>
-<span class="sourceLineNo">3126</span>     * Implement any Put request specific check and prepare logic here. Please refer to<a name="line.3126"></a>
-<span class="sourceLineNo">3127</span>     * {@link #checkAndPrepareMutation(Mutation, long)} for how its used.<a name="line.3127"></a>
-<span class="sourceLineNo">3128</span>     */<a name="line.3128"></a>
-<span class="sourceLineNo">3129</span>    protected abstract void checkAndPreparePut(final Put p) throws IOException;<a name="line.3129"></a>
-<span class="sourceLineNo">3130</span><a name="line.3130"></a>
-<span class="sourceLineNo">3131</span>    /**<a name="line.3131"></a>
-<span class="sourceLineNo">3132</span>     * If necessary, calls preBatchMutate() CP hook for a mini-batch and updates metrics, cell<a name="line.3132"></a>
-<span class="sourceLineNo">3133</span>     * count, tags and timestamp for all cells of all operations in a mini-batch.<a name="line.3133"></a>
-<span class="sourceLineNo">3134</span>     */<a name="line.3134"></a>
-<span class="sourceLineNo">3135</span>    public abstract void prepareMiniBatchOperations(MiniBatchOperationInProgress&lt;Mutation&gt;<a name="line.3135"></a>
-<span class="sourceLineNo">3136</span>        miniBatchOp, long timestamp, final List&lt;RowLock&gt; acquiredRowLocks) throws IOException;<a name="line.3136"></a>
-<span class="sourceLineNo">3137</span><a name="line.3137"></a>
-<span class="sourceLineNo">3138</span>    /**<a name="line.3138"></a>
-<span class="sourceLineNo">3139</span>     * Write mini-batch operations to MemStore<a name="line.3139"></a>
-<span class="sourceLineNo">3140</span>     */<a name="line.3140"></a>
-<span class="sourceLineNo">3141</span>    public abstract WriteEntry writeMiniBatchOperationsToMemStore(<a name="line.3141"></a>
-<span class="sourceLineNo">3142</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3142"></a>
-<span class="sourceLineNo">3143</span>        throws IOException;<a name="line.3143"></a>
-<span class="sourceLineNo">3144</span><a name="line.3144"></a>
-<span class="sourceLineNo">3145</span>    protected void writeMiniBatchOperationsToMemStore(<a name="line.3145"></a>
-<span class="sourceLineNo">3146</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final long writeNumber)<a name="line.3146"></a>
-<span class="sourceLineNo">3147</span>        throws IOException {<a name="line.3147"></a>
-<span class="sourceLineNo">3148</span>      MemStoreSizing memStoreAccounting = new NonThreadSafeMemStoreSizing();<a name="line.3148"></a>
-<span class="sourceLineNo">3149</span>      visitBatchOperations(true, miniBatchOp.getLastIndexExclusive(), (int index) -&gt; {<a name="line.3149"></a>
-<span class="sourceLineNo">3150</span>        // We need to update the sequence id for following reasons.<a name="line.3150"></a>
-<span class="sourceLineNo">3151</span>        // 1) If the op is in replay mode, FSWALEntry#stampRegionSequenceId won't stamp sequence id.<a name="line.3151"></a>
-<span class="sourceLineNo">3152</span>        // 2) If no WAL, FSWALEntry won't be used<a name="line.3152"></a>
-<span class="sourceLineNo">3153</span>        // we use durability of the original mutation for the mutation passed by CP.<a name="line.3153"></a>
-<span class="sourceLineNo">3154</span>        if (isInReplay() || getMutation(index).getDurability() == Durability.SKIP_WAL) {<a name="line.3154"></a>
-<span class="sourceLineNo">3155</span>          region.updateSequenceId(familyCellMaps[index].values(), writeNumber);<a name="line.3155"></a>
-<span class="sourceLineNo">3156</span>        }<a name="line.3156"></a>
-<span class="sourceLineNo">3157</span>        applyFamilyMapToMemStore(familyCellMaps[index], memStoreAccounting);<a name="line.3157"></a>
-<span class="sourceLineNo">3158</span>        return true;<a name="line.3158"></a>
-<span class="sourceLineNo">3159</span>      });<a name="line.3159"></a>
-<span class="sourceLineNo">3160</span>      // update memStore size<a name="line.3160"></a>
-<span class="sourceLineNo">3161</span>      region.incMemStoreSize(memStoreAccounting.getDataSize(), memStoreAccounting.getHeapSize(),<a name="line.3161"></a>
-<span class="sourceLineNo">3162</span>          memStoreAccounting.getOffHeapSize());<a name="line.3162"></a>
-<span class="sourceLineNo">3163</span>    }<a name="line.3163"></a>
-<span class="sourceLineNo">3164</span><a name="line.3164"></a>
-<span class="sourceLineNo">3165</span>    public boolean isDone() {<a name="line.3165"></a>
-<span class="sourceLineNo">3166</span>      return nextIndexToProcess == operations.length;<a name="line.3166"></a>
-<span class="sourceLineNo">3167</span>    }<a name="line.3167"></a>
-<span class="sourceLineNo">3168</span><a name="line.3168"></a>
-<span class="sourceLineNo">3169</span>    public int size() {<a name="line.3169"></a>
-<span class="sourceLineNo">3170</span>      return operations.length;<a name="line.3170"></a>
-<span class="sourceLineNo">3171</span>    }<a name="line.3171"></a>
-<span class="sourceLineNo">3172</span><a name="line.3172"></a>
-<span class="sourceLineNo">3173</span>    public boolean isOperationPending(int index) {<a name="line.3173"></a>
-<span class="sourceLineNo">3174</span>      return retCodeDetails[index].getOperationStatusCode() == OperationStatusCode.NOT_RUN;<a name="line.3174"></a>
-<span class="sourceLineNo">3175</span>    }<a name="line.3175"></a>
-<span class="sourceLineNo">3176</span><a name="line.3176"></a>
-<span class="sourceLineNo">3177</span>    public List&lt;UUID&gt; getClusterIds() {<a name="line.3177"></a>
-<span class="sourceLineNo">3178</span>      assert size() != 0;<a name="line.3178"></a>
-<span class="sourceLineNo">3179</span>      return getMutation(0).getClusterIds();<a name="line.3179"></a>
-<span class="sourceLineNo">3180</span>    }<a name="line.3180"></a>
-<span class="sourceLineNo">3181</span><a name="line.3181"></a>
-<span class="sourceLineNo">3182</span>    boolean isAtomic() {<a name="line.3182"></a>
-<span class="sourceLineNo">3183</span>      return atomic;<a name="line.3183"></a>
-<span class="sourceLineNo">3184</span>    }<a name="line.3184"></a>
-<span class="sourceLineNo">3185</span><a name="line.3185"></a>
-<span class="sourceLineNo">3186</span>    /**<a name="line.3186"></a>
-<span class="sourceLineNo">3187</span>     * Helper method that checks and prepares only one mutation. This can be used to implement<a name="line.3187"></a>
-<span class="sourceLineNo">3188</span>     * {@link #checkAndPrepare()} for entire Batch.<a name="line.3188"></a>
-<span class="sourceLineNo">3189</span>     * NOTE: As CP prePut()/ preDelete() hooks may modify mutations, this method should be called<a name="line.3189"></a>
-<span class="sourceLineNo">3190</span>     * after prePut()/ preDelete() CP hooks are run for the mutation<a name="line.3190"></a>
-<span class="sourceLineNo">3191</span>     */<a name="line.3191"></a>
-<span class="sourceLineNo">3192</span>    protected void checkAndPrepareMutation(Mutation mutation, final long timestamp)<a name="line.3192"></a>
-<span class="sourceLineNo">3193</span>        throws IOException {<a name="line.3193"></a>
-<span class="sourceLineNo">3194</span>      region.checkRow(mutation.getRow(), "batchMutate");<a name="line.3194"></a>
-<span class="sourceLineNo">3195</span>      if (mutation instanceof Put) {<a name="line.3195"></a>
-<span class="sourceLineNo">3196</span>        // Check the families in the put. If bad, skip this one.<a name="line.3196"></a>
-<span class="sourceLineNo">3197</span>        checkAndPreparePut((Put) mutation);<a name="line.3197"></a>
-<span class="sourceLineNo">3198</span>        region.checkTimestamps(mutation.getFamilyCellMap(), timestamp);<a name="line.3198"></a>
-<span class="sourceLineNo">3199</span>      } else {<a name="line.3199"></a>
-<span class="sourceLineNo">3200</span>        region.prepareDelete((Delete) mutation);<a name="line.3200"></a>
-<span class="sourceLineNo">3201</span>      }<a name="line.3201"></a>
-<span class="sourceLineNo">3202</span>    }<a name="line.3202"></a>
-<span class="sourceLineNo">3203</span><a name="line.3203"></a>
-<span class="sourceLineNo">3204</span>    protected void checkAndPrepareMutation(int index, long timestamp) throws IOException {<a name="line.3204"></a>
-<span class="sourceLineNo">3205</span>      Mutation mutation = getMutation(index);<a name="line.3205"></a>
-<span class="sourceLineNo">3206</span>      try {<a name="line.3206"></a>
-<span class="sourceLineNo">3207</span>        this.checkAndPrepareMutation(mutation, timestamp);<a name="line.3207"></a>
-<span class="sourceLineNo">3208</span><a name="line.3208"></a>
-<span class="sourceLineNo">3209</span>        // store the family map reference to allow for mutations<a name="line.3209"></a>
-<span class="sourceLineNo">3210</span>        familyCellMaps[index] = mutation.getFamilyCellMap();<a name="line.3210"></a>
-<span class="sourceLineNo">3211</span>        // store durability for the batch (highest durability of all operations in the batch)<a name="line.3211"></a>
-<span class="sourceLineNo">3212</span>        Durability tmpDur = region.getEffectiveDurability(mutation.getDurability());<a name="line.3212"></a>
-<span class="sourceLineNo">3213</span>        if (tmpDur.ordinal() &gt; durability.ordinal()) {<a name="line.3213"></a>
-<span class="sourceLineNo">3214</span>          durability = tmpDur;<a name="line.3214"></a>
-<span class="sourceLineNo">3215</span>        }<a name="line.3215"></a>
-<span class="sourceLineNo">3216</span>      } catch (NoSuchColumnFamilyException nscfe) {<a name="line.3216"></a>
-<span class="sourceLineNo">3217</span>        final String msg = "No such column family in batch mutation. ";<a name="line.3217"></a>
-<span class="sourceLineNo">3218</span>        if (observedExceptions.hasSeenNoSuchFamily()) {<a name="line.3218"></a>
-<span class="sourceLineNo">3219</span>          LOG.warn(msg + nscfe.getMessage());<a name="line.3219"></a>
-<span class="sourceLineNo">3220</span>        } else {<a name="line.3220"></a>
-<span class="sourceLineNo">3221</span>          LOG.warn(msg, nscfe);<a name="line.3221"></a>
-<span class="sourceLineNo">3222</span>          observedExceptions.sawNoSuchFamily();<a name="line.3222"></a>
-<span class="sourceLineNo">3223</span>        }<a name="line.3223"></a>
-<span class="sourceLineNo">3224</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3224"></a>
-<span class="sourceLineNo">3225</span>            OperationStatusCode.BAD_FAMILY, nscfe.getMessage());<a name="line.3225"></a>
-<span class="sourceLineNo">3226</span>        if (isAtomic()) { // fail, atomic means all or none<a name="line.3226"></a>
-<span class="sourceLineNo">3227</span>          throw nscfe;<a name="line.3227"></a>
-<span class="sourceLineNo">3228</span>        }<a name="line.3228"></a>
-<span class="sourceLineNo">3229</span>      } catch (FailedSanityCheckException fsce) {<a name="line.3229"></a>
-<span class="sourceLineNo">3230</span>        final String msg = "Batch Mutation did not pass sanity check. ";<a name="line.3230"></a>
-<span class="sourceLineNo">3231</span>        if (observedExceptions.hasSeenFailedSanityCheck()) {<a name="line.3231"></a>
-<span class="sourceLineNo">3232</span>          LOG.warn(msg + fsce.getMessage());<a name="line.3232"></a>
-<span class="sourceLineNo">3233</span>        } else {<a name="line.3233"></a>
-<span class="sourceLineNo">3234</span>          LOG.warn(msg, fsce);<a name="line.3234"></a>
-<span class="sourceLineNo">3235</span>          observedExceptions.sawFailedSanityCheck();<a name="line.3235"></a>
-<span class="sourceLineNo">3236</span>        }<a name="line.3236"></a>
-<span class="sourceLineNo">3237</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3237"></a>
-<span class="sourceLineNo">3238</span>            OperationStatusCode.SANITY_CHECK_FAILURE, fsce.getMessage());<a name="line.3238"></a>
-<span class="sourceLineNo">3239</span>        if (isAtomic()) {<a name="line.3239"></a>
-<span class="sourceLineNo">3240</span>          throw fsce;<a name="line.3240"></a>
-<span class="sourceLineNo">3241</span>        }<a name="line.3241"></a>
-<span class="sourceLineNo">3242</span>      } catch (WrongRegionException we) {<a name="line.3242"></a>
-<span class="sourceLineNo">3243</span>        final String msg = "Batch mutation had a row that does not belong to this region. ";<a name="line.3243"></a>
-<span class="sourceLineNo">3244</span>        if (observedExceptions.hasSeenWrongRegion()) {<a name="line.3244"></a>
-<span class="sourceLineNo">3245</span>          LOG.warn(msg + we.getMessage());<a name="line.3245"></a>
-<span class="sourceLineNo">3246</span>        } else {<a name="line.3246"></a>
-<span class="sourceLineNo">3247</span>          LOG.warn(msg, we);<a name="line.3247"></a>
-<span class="sourceLineNo">3248</span>          observedExceptions.sawWrongRegion();<a name="line.3248"></a>
-<span class="sourceLineNo">3249</span>        }<a name="line.3249"></a>
-<span class="sourceLineNo">3250</span>        retCodeDetails[index] = new OperationStatus(<a name="line.3250"></a>
-<span class="sourceLineNo">3251</span>            OperationStatusCode.SANITY_CHECK_FAILURE, we.getMessage());<a name="line.3251"></a>
-<span class="sourceLineNo">3252</span>        if (isAtomic()) {<a name="line.3252"></a>
-<span class="sourceLineNo">3253</span>          throw we;<a name="line.3253"></a>
-<span class="sourceLineNo">3254</span>        }<a name="line.3254"></a>
-<span class="sourceLineNo">3255</span>      }<a name="line.3255"></a>
-<span class="sourceLineNo">3256</span>    }<a name="line.3256"></a>
-<span class="sourceLineNo">3257</span><a name="line.3257"></a>
-<span class="sourceLineNo">3258</span>    /**<a name="line.3258"></a>
-<span class="sourceLineNo">3259</span>     * Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which<a name="line.3259"></a>
-<span class="sourceLineNo">3260</span>     * a row lock can be acquired. All mutations with locked rows are considered to be<a name="line.3260"></a>
-<span class="sourceLineNo">3261</span>     * In-progress operations and hence the name {@link MiniBatchOperationInProgress}. Mini batch<a name="line.3261"></a>
-<span class="sourceLineNo">3262</span>     * is window over {@link BatchOperation} and contains contiguous pending operations.<a name="line.3262"></a>
-<span class="sourceLineNo">3263</span>     *<a name="line.3263"></a>
-<span class="sourceLineNo">3264</span>     * @param acquiredRowLocks keeps track of rowLocks acquired.<a name="line.3264"></a>
-<span class="sourceLineNo">3265</span>     */<a name="line.3265"></a>
-<span class="sourceLineNo">3266</span>    public MiniBatchOperationInProgress&lt;Mutation&gt; lockRowsAndBuildMiniBatch(<a name="line.3266"></a>
-<span class="sourceLineNo">3267</span>        List&lt;RowLock&gt; acquiredRowLocks) throws IOException {<a name="line.3267"></a>
-<span class="sourceLineNo">3268</span>      int readyToWriteCount = 0;<a name="line.3268"></a>
-<span class="sourceLineNo">3269</span>      int lastIndexExclusive = 0;<a name="line.3269"></a>
-<span class="sourceLineNo">3270</span>      RowLock prevRowLock = null;<a name="line.3270"></a>
-<span class="sourceLineNo">3271</span>      for (; lastIndexExclusive &lt; size(); lastIndexExclusive++) {<a name="line.3271"></a>
-<span class="sourceLineNo">3272</span>        // It reaches the miniBatchSize, stop here and process the miniBatch<a name="line.3272"></a>
-<span class="sourceLineNo">3273</span>        // This only applies to non-atomic batch operations.<a name="line.3273"></a>
-<span class="sourceLineNo">3274</span>        if (!isAtomic() &amp;&amp; (readyToWriteCount == region.miniBatchSize)) {<a name="line.3274"></a>
-<span class="sourceLineNo">3275</span>          break;<a name="line.3275"></a>
-<span class="sourceLineNo">3276</span>        }<a name="line.3276"></a>
-<span class="sourceLineNo">3277</span><a name="line.3277"></a>
-<span class="sourceLineNo">3278</span>        if (!isOperationPending(lastIndexExclusive)) {<a name="line.3278"></a>
-<span class="sourceLineNo">3279</span>          continue;<a name="line.3279"></a>
-<span class="sourceLineNo">3280</span>        }<a name="line.3280"></a>
-<span class="sourceLineNo">3281</span><a name="line.3281"></a>
-<span class="sourceLineNo">3282</span>        // HBASE-19389 Limit concurrency of put with dense (hundreds) columns to avoid exhausting<a name="line.3282"></a>
-<span class="sourceLineNo">3283</span>        // RS handlers, covering both MutationBatchOperation and ReplayBatchOperation<a name="line.3283"></a>
-<span class="sourceLineNo">3284</span>        // The BAD_FAMILY/SANITY_CHECK_FAILURE cases are handled in checkAndPrepare phase and won't<a name="line.3284"></a>
-<span class="sourceLineNo">3285</span>        // pass the isOperationPending check<a name="line.3285"></a>
-<span class="sourceLineNo">3286</span>        Map&lt;byte[], List&lt;Cell&gt;&gt; curFamilyCellMap =<a name="line.3286"></a>
-<span class="sourceLineNo">3287</span>            getMutation(lastIndexExclusive).getFamilyCellMap();<a name="line.3287"></a>
-<span class="sourceLineNo">3288</span>        try {<a name="line.3288"></a>
-<span class="sourceLineNo">3289</span>          // start the protector before acquiring row lock considering performance, and will finish<a name="line.3289"></a>
-<span class="sourceLineNo">3290</span>          // it when encountering exception<a name="line.3290"></a>
-<span class="sourceLineNo">3291</span>          region.storeHotnessProtector.start(curFamilyCellMap);<a name="line.3291"></a>
-<span class="sourceLineNo">3292</span>        } catch (RegionTooBusyException rtbe) {<a name="line.3292"></a>
-<span class="sourceLineNo">3293</span>          region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3293"></a>
-<span class="sourceLineNo">3294</span>          if (isAtomic()) {<a name="line.3294"></a>
-<span class="sourceLineNo">3295</span>            throw rtbe;<a name="line.3295"></a>
-<span class="sourceLineNo">3296</span>          }<a name="line.3296"></a>
-<span class="sourceLineNo">3297</span>          retCodeDetails[lastIndexExclusive] =<a name="line.3297"></a>
-<span class="sourceLineNo">3298</span>              new OperationStatus(OperationStatusCode.STORE_TOO_BUSY, rtbe.getMessage());<a name="line.3298"></a>
-<span class="sourceLineNo">3299</span>          continue;<a name="line.3299"></a>
-<span class="sourceLineNo">3300</span>        }<a name="line.3300"></a>
-<span class="sourceLineNo">3301</span><a name="line.3301"></a>
-<span class="sourceLineNo">3302</span>        Mutation mutation = getMutation(lastIndexExclusive);<a name="line.3302"></a>
-<span class="sourceLineNo">3303</span>        // If we haven't got any rows in our batch, we should block to get the next one.<a name="line.3303"></a>
-<span class="sourceLineNo">3304</span>        RowLock rowLock = null;<a name="line.3304"></a>
-<span class="sourceLineNo">3305</span>        boolean throwException = false;<a name="line.3305"></a>
-<span class="sourceLineNo">3306</span>        try {<a name="line.3306"></a>
-<span class="sourceLineNo">3307</span>          // if atomic then get exclusive lock, else shared lock<a name="line.3307"></a>
-<span class="sourceLineNo">3308</span>          rowLock = region.getRowLockInternal(mutation.getRow(), !isAtomic(), prevRowLock);<a name="line.3308"></a>
-<span class="sourceLineNo">3309</span>        } catch (TimeoutIOException | InterruptedIOException e) {<a name="line.3309"></a>
-<span class="sourceLineNo">3310</span>          // NOTE: We will retry when other exceptions, but we should stop if we receive<a name="line.3310"></a>
-<span class="sourceLineNo">3311</span>          // TimeoutIOException or InterruptedIOException as operation has timed out or<a name="line.3311"></a>
-<span class="sourceLineNo">3312</span>          // interrupted respectively.<a name="line.3312"></a>
-<span class="sourceLineNo">3313</span>          throwException = true;<a name="line.3313"></a>
-<span class="sourceLineNo">3314</span>          throw e;<a name="line.3314"></a>
-<span class="sourceLineNo">3315</span>        } catch (IOException ioe) {<a name="line.3315"></a>
-<span class="sourceLineNo">3316</span>          LOG.warn("Failed getting lock, row=" + Bytes.toStringBinary(mutation.getRow()), ioe);<a name="line.3316"></a>
-<span class="sourceLineNo">3317</span>          if (isAtomic()) { // fail, atomic means all or none<a name="line.3317"></a>
-<span class="sourceLineNo">3318</span>            throwException = true;<a name="line.3318"></a>
-<span class="sourceLineNo">3319</span>            throw ioe;<a name="line.3319"></a>
-<span class="sourceLineNo">3320</span>          }<a name="line.3320"></a>
-<span class="sourceLineNo">3321</span>        } catch (Throwable throwable) {<a name="line.3321"></a>
-<span class="sourceLineNo">3322</span>          throwException = true;<a name="line.3322"></a>
-<span class="sourceLineNo">3323</span>          throw throwable;<a name="line.3323"></a>
-<span class="sourceLineNo">3324</span>        } finally {<a name="line.3324"></a>
-<span class="sourceLineNo">3325</span>          if (throwException) {<a name="line.3325"></a>
-<span class="sourceLineNo">3326</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3326"></a>
-<span class="sourceLineNo">3327</span>          }<a name="line.3327"></a>
-<span class="sourceLineNo">3328</span>        }<a name="line.3328"></a>
-<span class="sourceLineNo">3329</span>        if (rowLock == null) {<a name="line.3329"></a>
-<span class="sourceLineNo">3330</span>          // We failed to grab another lock<a name="line.3330"></a>
-<span class="sourceLineNo">3331</span>          if (isAtomic()) {<a name="line.3331"></a>
-<span class="sourceLineNo">3332</span>            region.storeHotnessProtector.finish(curFamilyCellMap);<a name="line.3332"></a>
-<span class="sourceLineNo">3333</span>            throw new IOException("Can't apply all operations atomically!");<a name="line.3333"></a>
-<span class="sourceLineNo">3334</span>          }<a name="line.3334"></a>
-<span class="sourceLineNo">3335</span>          break; // Stop acquiring more rows for this batch<a name="line.3335"></a>
-<span class="sourceLineNo">3336</span>        } else {<a name="line.3336"></a>
-<span class="sourceLineNo">3337</span>          if (rowLock != prevRowLock) {<a name="line.3337"></a>
-<span class="sourceLineNo">3338</span>            // It is a different row now, add this to the acquiredRowLocks and<a name="line.3338"></a>
-<span class="sourceLineNo">3339</span>            // set prevRowLock to the new returned rowLock<a name="line.3339"></a>
-<span class="sourceLineNo">3340</span>            acquiredRowLocks.add(rowLock);<a name="line.3340"></a>
-<span class="sourceLineNo">3341</span>            prevRowLock = rowLock;<a name="line.3341"></a>
-<span class="sourceLineNo">3342</span>          }<a name="line.3342"></a>
-<span class="sourceLineNo">3343</span>        }<a name="line.3343"></a>
-<span class="sourceLineNo">3344</span><a name="line.3344"></a>
-<span class="sourceLineNo">3345</span>        readyToWriteCount++;<a name="line.3345"></a>
-<span class="sourceLineNo">3346</span>      }<a name="line.3346"></a>
-<span class="sourceLineNo">3347</span>      return createMiniBatch(lastIndexExclusive, readyToWriteCount);<a name="line.3347"></a>
-<span class="sourceLineNo">3348</span>    }<a name="line.3348"></a>
-<span class="sourceLineNo">3349</span><a name="line.3349"></a>
-<span class="sourceLineNo">3350</span>    protected MiniBatchOperationInProgress&lt;Mutation&gt; createMiniBatch(final int lastIndexExclusive,<a name="line.3350"></a>
-<span class="sourceLineNo">3351</span>        final int readyToWriteCount) {<a name="line.3351"></a>
-<span class="sourceLineNo">3352</span>      return new MiniBatchOperationInProgress&lt;&gt;(getMutationsForCoprocs(), retCodeDetails,<a name="line.3352"></a>
-<span class="sourceLineNo">3353</span>          walEditsFromCoprocessors, nextIndexToProcess, lastIndexExclusive, readyToWriteCount);<a name="line.3353"></a>
-<span class="sourceLineNo">3354</span>    }<a name="line.3354"></a>
-<span class="sourceLineNo">3355</span><a name="line.3355"></a>
-<span class="sourceLineNo">3356</span>    /**<a name="line.3356"></a>
-<span class="sourceLineNo">3357</span>     * Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are<a name="line.3357"></a>
-<span class="sourceLineNo">3358</span>     * present, they are merged to result WALEdit.<a name="line.3358"></a>
-<span class="sourceLineNo">3359</span>     */<a name="line.3359"></a>
-<span class="sourceLineNo">3360</span>    public List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; buildWALEdits(<a name="line.3360"></a>
-<span class="sourceLineNo">3361</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) throws IOException {<a name="line.3361"></a>
-<span class="sourceLineNo">3362</span>      List&lt;Pair&lt;NonceKey, WALEdit&gt;&gt; walEdits = new ArrayList&lt;&gt;();<a name="line.3362"></a>
-<span class="sourceLineNo">3363</span><a name="line.3363"></a>
-<span class="sourceLineNo">3364</span>      visitBatchOperations(true, nextIndexToProcess + miniBatchOp.size(), new Visitor() {<a name="line.3364"></a>
-<span class="sourceLineNo">3365</span>        private Pair&lt;NonceKey, WALEdit&gt; curWALEditForNonce;<a name="line.3365"></a>
-<span class="sourceLineNo">3366</span><a name="line.3366"></a>
-<span class="sourceLineNo">3367</span>        @Override<a name="line.3367"></a>
-<span class="sourceLineNo">3368</span>        public boolean visit(int index) throws IOException {<a name="line.3368"></a>
-<span class="sourceLineNo">3369</span>          Mutation m = getMutation(index);<a name="line.3369"></a>
-<span class="sourceLineNo">3370</span>          // we use durability of the original mutation for the mutation passed by CP.<a name="line.3370"></a>
-<span class="sourceLineNo">3371</span>          if (region.getEffectiveDurability(m.getDurability()) == Durability.SKIP_WAL) {<a name="line.3371"></a>
-<span class="sourceLineNo">3372</span>            region.recordMutationWithoutWal(m.getFamilyCellMap());<a name="line.3372"></a>
-<span class="sourceLineNo">3373</span>            return true;<a name="line.3373"></a>
-<span class="sourceLineNo">3374</span>          }<a name="line.3374"></a>
-<span class="sourceLineNo">3375</span><a name="line.3375"></a>
-<span class="sourceLineNo">3376</span>          // the batch may contain multiple nonce keys (replay case). If so, write WALEdit for each.<a name="line.3376"></a>
-<span class="sourceLineNo">3377</span>          // Given how nonce keys are originally written, these should be contiguous.<a name="line.3377"></a>
-<span class="sourceLineNo">3378</span>          // They don't have to be, it will still work, just write more WALEdits than needed.<a name="line.3378"></a>
-<span class="sourceLineNo">3379</span>          long nonceGroup = getNonceGroup(index);<a name="line.3379"></a>
-<span class="sourceLineNo">3380</span>          long nonce = getNonce(index);<a name="line.3380"></a>
-<span class="sourceLineNo">3381</span>          if (curWALEditForNonce == null ||<a name="line.3381"></a>
-<span class="sourceLineNo">3382</span>              curWALEditForNonce.getFirst().getNonceGroup() != nonceGroup ||<a name="line.3382"></a>
-<span class="sourceLineNo">3383</span>              curWALEditForNonce.getFirst().getNonce() != nonce) {<a name="line.3383"></a>
-<span class="sourceLineNo">3384</span>            curWALEditForNonce = new Pair&lt;&gt;(new NonceKey(nonceGroup, nonce),<a name="line.3384"></a>
-<span class="sourceLineNo">3385</span>                new WALEdit(miniBatchOp.getCellCount(), isInReplay()));<a name="line.3385"></a>
-<span class="sourceLineNo">3386</span>            walEdits.add(curWALEditForNonce);<a name="line.3386"></a>
-<span class="sourceLineNo">3387</span>          }<a name="line.3387"></a>
-<span class="sourceLineNo">3388</span>          WALEdit walEdit = curWALEditForNonce.getSecond();<a name="line.3388"></a>
-<span class="sourceLineNo">3389</span><a name="line.3389"></a>
-<span class="sourceLineNo">3390</span>          // Add WAL edits from CPs.<a name="line.3390"></a>
-<span class="sourceLineNo">3391</span>          WALEdit fromCP = walEditsFromCoprocessors[index];<a name="line.3391"></a>
-<span class="sourceLineNo">3392</span>          if (fromCP != null) {<a name="line.3392"></a>
-<span class="sourceLineNo">3393</span>            for (Cell cell : fromCP.getCells()) {<a name="line.3393"></a>
-<span class="sourceLineNo">3394</span>              walEdit.add(cell);<a name="line.3394"></a>
-<span class="sourceLineNo">3395</span>            }<a name="line.3395"></a>
-<span class="sourceLineNo">3396</span>          }<a name="line.3396"></a>
-<span class="sourceLineNo">3397</span>          walEdit.add(familyCellMaps[index]);<a name="line.3397"></a>
-<span class="sourceLineNo">3398</span><a name="line.3398"></a>
-<span class="sourceLineNo">3399</span>          return true;<a name="line.3399"></a>
-<span class="sourceLineNo">3400</span>        }<a name="line.3400"></a>
-<span class="sourceLineNo">3401</span>      });<a name="line.3401"></a>
-<span class="sourceLineNo">3402</span>      return walEdits;<a name="line.3402"></a>
-<span class="sourceLineNo">3403</span>    }<a name="line.3403"></a>
-<span class="sourceLineNo">3404</span><a name="line.3404"></a>
-<span class="sourceLineNo">3405</span>    /**<a name="line.3405"></a>
-<span class="sourceLineNo">3406</span>     * This method completes mini-batch operations by calling postBatchMutate() CP hook (if<a name="line.3406"></a>
-<span class="sourceLineNo">3407</span>     * required) and completing mvcc.<a name="line.3407"></a>
-<span class="sourceLineNo">3408</span>     */<a name="line.3408"></a>
-<span class="sourceLineNo">3409</span>    public void completeMiniBatchOperations(<a name="line.3409"></a>
-<span class="sourceLineNo">3410</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WriteEntry writeEntry)<a name="line.3410"></a>
-<span class="sourceLineNo">3411</span>        throws IOException {<a name="line.3411"></a>
-<span class="sourceLineNo">3412</span>      if (writeEntry != null) {<a name="line.3412"></a>
-<span class="sourceLineNo">3413</span>        region.mvcc.completeAndWait(writeEntry);<a name="line.3413"></a>
-<span class="sourceLineNo">3414</span>      }<a name="line.3414"></a>
-<span class="sourceLineNo">3415</span>    }<a name="line.3415"></a>
-<span class="sourceLineNo">3416</span><a name="line.3416"></a>
-<span class="sourceLineNo">3417</span>    public void doPostOpCleanupForMiniBatch(<a name="line.3417"></a>
-<span class="sourceLineNo">3418</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp, final WALEdit walEdit,<a name="line.3418"></a>
-<span class="sourceLineNo">3419</span>        boolean success) throws IOException {<a name="line.3419"></a>
-<span class="sourceLineNo">3420</span>      doFinishHotnessProtector(miniBatchOp);<a name="line.3420"></a>
-<span class="sourceLineNo">3421</span>    }<a name="line.3421"></a>
-<span class="sourceLineNo">3422</span><a name="line.3422"></a>
-<span class="sourceLineNo">3423</span>    private void doFinishHotnessProtector(<a name="line.3423"></a>
-<span class="sourceLineNo">3424</span>        final MiniBatchOperationInProgress&lt;Mutation&gt; miniBatchOp) {<a name="line.3424"></a>
-<span class="sourceLineNo">3425</span>      // check and return if the protector is not enabled<a name="line.3425"></a>
-<span class="sourceLineNo">3426</span>      if (!region.storeHotnessProtector.isEnable()) {<a name="line.3426"></a>
-<span class="sourceLineNo">3427</span>        return;<a name="line.3427"></a>
-<span class="sourceLineNo">3428</span>      }<a name="line.3428"></a>
-<span class="sourceLineNo">3429</span>      // miniBatchOp is null, if and only if lockRowsAndBuildMiniBatch throwing exception.<a name="line.3429"></a>
-<span class="sourceLineNo">3430</span>      // This case was handled.<a name="line.3430"></a>
-<span class="sourceLineNo">3431</span>      if (miniBatchOp == null) {<a name="line.3431"></a>
-<span class="sourceLineNo">3432</span>        return;<a name="line.3432"></a>
-<span class="sourceLineNo">3433</span>      }<a name="line.3433"></a>
-<span class="sourceLineNo">3434</span><a name="line.3434"></a>
-<span class="sourceLineNo">3435</span>      final int finalLastIndexExclusive = miniBatchOp.getLastIndexExclusive();<a name="line.3435"></a>
-<span class="sourceLineNo">3436</span><a name="line.3436"></a>
-<span class="sourceLineNo">3437</span>      for (int i = nextIndexToProcess; i &lt; finalLastIndexExclusive; i++) {<a name="line.3437"></a>
-<span class="sourceLineNo">3438</span>        switch (retCodeDetails[i].getOperationStatusCode()) {<a name="line.3438"></a>
-<span class="sourceLineNo">3439</span>          case SUCCESS:<a name="line.3439"></a>
-<span class="sourceLineNo">3440</span>          case FAILURE:<a name="line.3440"></a>
-<span class="sourceLineNo">3441</span>            region.storeHotnessProtector.finish(getMutation(i).getFamilyCellMap());<a name="line.3441"></a>
-<span class="sourceLineNo">3442</span>            break;<a name="line.3442"></a>
-<span class="sourceLineNo">3443</span>          default:<a name="line.3443"></a>
-<span class="sourceLineNo">3444</span>            // do nothing<a name="line.3444"></a>
-<span class="sourceLineNo">3445</span>            // We won't start the protector for NOT_RUN/BAD_FAMILY/SANITY_CHECK_FAILURE and the<a name="line.3445"></a>
-<span class="sourceLineNo">3446</span>            // STORE_TOO_BUSY case is handled in StoreHotnessProtector#start<a name="line.3446"></a>
-<span class="sourceLineNo">3447</span>            break;<a name="line.3447"></a>
-<span class="sourceLineNo">3448</span>        }<a name="line.3448"></a>
-<span class="sourceLineNo">3449</span>      }<a name="line.3449"></a>
-<span class="sourceLineNo">3450</span>    }<a name="line.3450"></a>
-<span class="sourceLineNo">3451</span><a name="line.3451"></a>
-<span class="sourceLineNo">3452</span>    /**<a name="line.3452"></a>
-<span class="sourceLineNo">3453</span>     * Atomically apply the given map of family-&gt;edits to the memstore.<a name="line.3453"></a>
-<span class="sourceLineNo">3454</span>     * This handles the consistency control on its own, but the caller<a name="line.3454"></a>
-<span class="sourceLineNo">3455</span>     * should already have locked updatesLock.readLock(). This also does<a name="line.3455"></a>
-<span class="sourceLineNo">3456</span>     * &lt;b&gt;not&lt;/b&gt; check the families for validity.<a name="line.3456"></a>
-<span class="sourceLineNo">3457</span>     *<a name="line.3457"></a>
-<span class="sourceLineNo">3458</span>     * @param familyMap Map of Cells by family<a name="line.3458"></a>
-<span class="sourceLineNo">3459</span>     */<a name="line.3459"></a>
-<span class="sourceLineNo">3460</span>    protected void applyFamilyMapToMemStore(Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.3460"></a>
-<span class="sourceLineNo">3461</span>        MemStoreSizing memstoreAccounting) throws IOException {<a name="line.3461"></a>
-<span class="sourceLineNo">3462</span>      for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.3462"></a>
-<span class="sourceLineNo">3463</span>        byte[] family = e.getKey();<a name="line.3463"></a>
-<span class="sourceLineNo">3464</span>        List&lt;Cell&gt; cells = e.getValue();<a name="line.3464"></a>
-<span class="sourceLineNo">3465</span>        assert cells instanceof RandomAccess;<a name="line.3465"></a>
-<span class="sourceLineNo">3466</span>        region.applyToMemStore(region.getStore(family), cells, false, memstoreAccounting);<a name="line.3466"></a>
-<span class="sourceLineNo">3467</span>      }<a name="line.3467"></a>
-<span class="sourceLineNo">3468</span>    }<a name="line.3468"></a>
-<span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
-<span class="sourceLineNo">3470</span><a name="line.3470"></a>
+<span class="sourceLineNo">2826</span>      rsServices.getMetrics().updateFlush(getTableDescriptor().getTableName().getNameAsString(),<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>          time - startTime,<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span>          mss.getDataSize(), flushedOutputFileSize);<a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>    }<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span><a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>    return new FlushResultImpl(compactionRequested ?<a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>        FlushResult.Result.FLUSHED_COMPACTION_NEEDED :<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>          FlushResult.Result.FLUSHED_NO_COMPACTION_NEEDED, flushOpSeqId);<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>  }<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span><a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>  /**<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>   * Method to safely get the next sequence number.<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>   * @return Next sequence number unassociated with any actual edit.<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>   * @throws IOException<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span>   */<a name="line.2840"></a>
+<span class="sourceLineNo">2841</span>  @VisibleForTesting<a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>  protected long getNextSequenceId(final WAL wal) throws IOException {<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span>    WriteEntry we = mvcc.begin();<a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>    mvcc.completeAndWait(we);<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>    return we.getWriteNumber();<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>  }<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span><a name="line.2847"></a>
+<span class="sourceLineNo">2848</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>  // get() methods for client use.<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span><a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>  @Override<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>  public RegionScannerImpl getScanner(Scan scan) throws IOException {<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>   return getScanner(scan, null);<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>  }<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span><a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>  @Override<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>  public RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners)<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>      throws IOException {<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>    return getScanner(scan, additionalScanners, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>  }<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span><a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>  private RegionScannerImpl getScanner(Scan scan, List&lt;KeyValueScanner&gt; additionalScanners,<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>      long nonceGroup, long nonce) throws IOException {<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>    startRegionOperation(Operation.SCAN);<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>    try {<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>      // Verify families are all valid<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span>      if (!scan.hasFamilies()) {<a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>        // Adding all families to scanner<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>        for (byte[] family : this.htableDescriptor.getColumnFamilyNames()) {<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span>          scan.addFamily(family);<a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>        }<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>      } else {<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>        for (byte[] family : scan.getFamilyMap().keySet()) {<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>          checkFamily(family);<a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>        }<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>      }<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>      return instantiateRegionScanner(scan, additionalScanners, nonceGroup, nonce);<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>    } finally {<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>      closeRegionOperation(Operation.SCAN);<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>    }<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>  }<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span><a name="line.2883"></a>
+<span class="sourceLineNo">2884</span>  protected RegionScanner instantiateRegionScanner(Scan scan,<a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>      List&lt;KeyValueScanner&gt; additionalScanners) throws IOException {<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>    return instantiateRegionScanner(scan, additionalScanners, HConstants.NO_NONCE,<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>      HConstants.NO_NONCE);<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>  }<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span><a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>  protected RegionScannerImpl instantiateRegionScanner(Scan scan,<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>      List&lt;KeyValueScanner&gt; additionalScanners, long nonceGroup, long nonce) throws IOException {<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>    if (scan.isReversed()) {<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>      if (scan.getFilter() != null) {<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>        scan.getFilter().setReversed(true);<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>      }<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span>      return new ReversedRegionScannerImpl(scan, additionalScanners, this);<a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>    }<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>    return new RegionScannerImpl(scan, additionalScanners, this, nonceGroup, nonce);<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>  }<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span><a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>  /**<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span>   * Prepare a delete for a row mutation processor<a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>   * @param delete The passed delete is modified by this method. WARNING!<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>   * @throws IOException<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>   */<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>  public void prepareDelete(Delete delete) throws IOException {<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>    // Check to see if this is a deleteRow insert<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>    if(delete.getFamilyCellMap().isEmpty()){<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>      for(byte [] family : this.htableDescriptor.getColumnFamilyNames()){<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>        // Don't eat the timestamp<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span>        delete.addFamily(family, delete.getTimestamp());<a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>      }<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>    } else {<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>      for(byte [] family : delete.getFamilyCellMap().keySet()) {<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>        if(family == null) {<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>          throw new NoSuchColumnFamilyException("Empty family is invalid");<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>        }<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>        checkFamily(family);<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>      }<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>    }<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>  }<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span><a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>  @Override<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>  public void delete(Delete delete) throws IOException {<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>    checkReadOnly();<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>    checkResources();<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>    startRegionOperation(Operation.DELETE);<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>    try {<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span>      doBatchMutate(delete);<a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>    } finally {<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span>      closeRegionOperation(Operation.DELETE);<a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>    }<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>  }<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span><a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>  /**<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span>   * Row needed by below method.<a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>   */<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>  private static final byte [] FOR_UNIT_TESTS_ONLY = Bytes.toBytes("ForUnitTestsOnly");<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span><a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>  /**<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>   * This is used only by unit tests. Not required to be a public API.<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>   * @param familyMap map of family to edits for the given family.<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>   * @throws IOException<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>   */<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>  void delete(NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>      Durability durability) throws IOException {<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>    Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>    delete.setFamilyCellMap(familyMap);<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>    delete.setDurability(durability);<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>    doBatchMutate(delete);<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>  }<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span><a name="line.2953"></a>
+<span class="sourceLineNo">2954</span>  /**<a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>   * Set up correct timestamps in the KVs in Delete object.<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>   * &lt;p&gt;Caller should have the row and region locks.<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>   * @param mutation<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>   * @param familyMap<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>   * @param byteNow<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>   * @throws IOException<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>   */<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>  public void prepareDeleteTimestamps(Mutation mutation, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap,<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>      byte[] byteNow) throws IOException {<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e : familyMap.entrySet()) {<a name="line.2964"></a>
+<span class="sourceLineNo">2965</span><a name="line.2965"></a>
+<span class="sourceLineNo">2966</span>      byte[] family = e.getKey();<a name="line.2966"></a>
+<span class="sourceLineNo">2967</span>      List&lt;Cell&gt; cells = e.getValue();<a name="line.2967"></a>
+<span class="sourceLineNo">2968</span>      assert cells instanceof RandomAccess;<a name="line.2968"></a>
+<span class="sourceLineNo">2969</span><a name="line.2969"></a>
+<span class="sourceLineNo">2970</span>      Map&lt;byte[], Integer&gt; kvCount = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.2970"></a>
+<span class="sourceLineNo">2971</span>      int listSize = cells.size();<a name="line.2971"></a>
+<span class="sourceLineNo">2972</span>      for (int i=0; i &lt; listSize; i++) {<a name="line.2972"></a>
+<span class="sourceLineNo">2973</span>        Cell cell = cells.get(i);<a name="line.2973"></a>
+<span class="sourceLineNo">2974</span>        //  Check if time is LATEST, change to time of most recent addition if so<a name="line.2974"></a>
+<span class="sourceLineNo">2975</span>        //  This is expensive.<a name="line.2975"></a>
+<span class="sourceLineNo">2976</span>        if (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP<a name="line.2976"></a>
+<span class="sourceLineNo">2977</span>            &amp;&amp; PrivateCellUtil.isDeleteType(cell)) {<a name="line.2977"></a>
+<span class="sourceLineNo">2978</span>          byte[] qual = CellUtil.cloneQualifier(cell);<a name="line.2978"></a>
+<span class="sourceLineNo">2979</span><a name="line.2979"></a>
+<span class="sourceLineNo">2980</span>          Integer count = kvCount.get(qual);<a name="line.2980"></a>
+<span class="sourceLineNo">2981</span>          if (count == null) {<a name="line.2981"></a>
+<span class="sourceLineNo">2982</span>            kvCount.put(qual, 1);<a name="line.2982"></a>
+<span class="sourceLineNo">2983</span>          } else {<a name="line.2983"></a>
+<span class="sourceLineNo">2984</span>            kvCount.put(qual, count + 1);<a name="line.2984"></a>
+<span class="sourceLineNo">2985</span>          }<a name="line.2985"></a>
+<span class="sourceLineNo">2986</span>          count = kvCount.get(qual);<a name="line.2986"></a>
+<span class="sourceLineNo">2987</span><a name="line.2987"></a>
+<span class="sourceLineNo">2988</span>          Get get = new Get(CellUtil.cloneRow(cell));<a name="line.2988"></a>
+<span class="sourceLineNo">2989</span>          get.setMaxVersions(count);<a name="line.2989"></a>
+<span class="sourceLineNo">2990</span>          get.addColumn(family, qual);<a name="line.2990"></a>
+<span class="sourceLineNo">2991</span>          if (coprocessorHost != null) {<a name="line.2991"></a>
+<span class="sourceLineNo">2992</span>            if (!coprocessorHost.prePrepareTimeStampForDeleteVersion(mutation, cell,<a name="line.2992"></a>
+<span class="sourceLineNo">2993</span>                byteNow, get)) {<a name="line.2993"></a>
+<span class="sourceLineNo">2994</span>              updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2994"></a>
+<span class="sourceLineNo">2995</span>            }<a name="line.2995"></a>
+<span class="sourceLineNo">2996</span>          } else {<a name="line.2996"></a>
+<span class="sourceLineNo">2997</span>            updateDeleteLatestVersionTimestamp(cell, get, count, byteNow);<a name="line.2997"></a>
+<span class="sourceLineNo">2998</span>          }<a name="line.2998"></a>
+<span class="sourceLineNo">2999</span>        } else {<a name="line.2999"></a>
+<span class="sourceLineNo">3000</span>          PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3000"></a>
+<span class="sourceLineNo">3001</span>        }<a name="line.3001"></a>
+<span class="sourceLineNo">3002</span>      }<a name="line.3002"></a>
+<span class="sourceLineNo">3003</span>    }<a name="line.3003"></a>
+<span class="sourceLineNo">3004</span>  }<a name="line.3004"></a>
+<span class="sourceLineNo">3005</span><a name="line.3005"></a>
+<span class="sourceLineNo">3006</span>  void updateDeleteLatestVersionTimestamp(Cell cell, Get get, int count, byte[] byteNow)<a name="line.3006"></a>
+<span class="sourceLineNo">3007</span>      throws IOException {<a name="line.3007"></a>
+<span class="sourceLineNo">3008</span>    List&lt;Cell&gt; result = get(get, false);<a name="line.3008"></a>
+<span class="sourceLineNo">3009</span><a name="line.3009"></a>
+<span class="sourceLineNo">3010</span>    if (result.size() &lt; count) {<a name="line.3010"></a>
+<span class="sourceLineNo">3011</span>      // Nothing to delete<a name="line.3011"></a>
+<span class="sourceLineNo">3012</span>      PrivateCellUtil.updateLatestStamp(cell, byteNow);<a name="line.3012"></a>
+<span class="sourceLineNo">3013</span>      return;<a name="line.3013"></a>
+<span class="sourceLineNo">3014</span>    }<a name="line.3014"></a>
+<span class="sourceLineNo">3015</span>    if (result.size() &gt; count) {<a name="line.3015"></a>
+<span class="sourceLineNo">3016</span>      throw new RuntimeException("Unexpected size: " + result.size());<a name="line.3016"></a>
+<span class="sourceLineNo">3017</span>    }<a name="line.3017"></a>
+<span class="sourceLineNo">3018</span>    Cell getCell = result.get(count - 1);<a name="line.3018"></a>
+<span class="sourceLineNo">3019</span>    PrivateCellUtil.setTimestamp(cell, getCell.getTimestamp());<a name="line.3019"></a>
+<span class="sourceLineNo">3020</span>  }<a name="line.3020"></a>
+<span class="sourceLineNo">3021</span><a name="line.3021"></a>
+<span class="sourceLineNo">3022</span>  @Override<a name="line.3022"></a>
+<span class="sourceLineNo">3023</span>  public void put(Put put) throws IOException {<a name="line.3023"></a>
+<span class="sourceLineNo">3024</span>    checkReadOnly();<a name="line.3024"></a>
+<span class="sourceLineNo">3025</span><a name="line.3025"></a>
+<span class="sourceLineNo">3026</span>    // Do a rough check that we have resources to accept a write.  The check is<a name="line.3026"></a>
+<span class="sourceLineNo">3027</span>    // 'rough' in that between the resource check and the call to obtain a<a name="line.3027"></a>
+<span class="sourceLineNo">3028</span>    // read lock, resources may run out.  For now, the thought is that this<a name="line.3028"></a>
+<span class="sourceLineNo">3029</span>    // will be extremely rare; we'll deal with it when it happens.<a name="line.3029"></a>
+<span class="sourceLineNo">3030</span>    checkResources();<a name="line.3030"></a>
+<span class="sourceLineNo">3031</span>    startRegionOperation(Operation.PUT);<a name="line.3031"></a>
+<span class="sourceLineNo">3032</span>    try {<a name="line.3032"></a>
+<span class="sourceLineNo">3033</span>      // All edits for the given row (across all column families) must happen atomically.<a name="line.3033"></a>
+<span class="sourceLineNo">3034</span>      doBatchMutate(put);<a name="line.3034"></a>
+<span class="sourceLineNo">3035</span>    } finally {<a name="line.3035"></a>
+<span class="sourceLineNo">3036</span>      closeRegionOperation(Operation.PUT);<a name="line.3036"></a>
+<span class="sourceLineNo">3037</span>    }<a name="line.3037"></a>
+<span class="sourceLineNo">3038</span>  }<a name="line.3038"></a>
+<span class="sourceLineNo">3039</span><a name="line.3039"></a>
+<span class="sourceLineNo">3040</span>  /**<a name="line.3040"></a>
+<span class="sourceLineNo">3041</span>   * Class that tracks the progress of a batch operations, accumulating status codes and tracking<a name="line.3041"></a>
+<span class="sourceLineNo">3042</span>   * the index at which processing is proceeding. These batch operations may get split into<a name="line.3042"></a>
+<span class="sourceLineNo">3043</span>   * mini-batches for processing.<a name="line.3043"></a>
+<span class="sourceLineNo">3044</span>   */<a name="line.3044"></a>
+<span class="sourceLineNo">3045</span>  private abstract static class BatchOperation&lt;T&gt; {<a name="line.3045"></a>
+<span class="sourceLineNo">3046</span>    protected final T[] operations;<a name="line.3046"></a>
+<span class="sourceLineNo">3047</span>    protected final OperationStatus[] retCodeDetails;<a name="line.3047"></a>
+<span class="sourceLineNo">3048</span>    protected final WALEdit[] walEditsFromCoprocessors;<a name="line.3048"></a>
+<span class="sourceLineNo">3049</span>    // reference family cell maps directly so coprocessors can mutate them if desired<a name="line.3049"></a>
+<span class="sourceLineNo">3050</span>    protected final Map&lt;byte[], List&lt;Cell&gt;&gt;[] familyCellMaps;<a name="line.3050"></a>
+<span class="sourceLineNo">3051</span><a name="line.3051"></a>
+<span class="sourceLineNo">3052</span>    protected final HRegion region;<a name="line.3052"></a>
+<span class="sourceLineNo">3053</span>    protected int nextIndexToProcess = 0;<a name="line.3053"></a>
+<span class="sourceLineNo">3054</span>    protected final ObservedExceptionsInBatch observedExceptions;<a name="line.3054"></a>
+<span c

<TRUNCATED>

[47/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 2cd8945..ffd12ac 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 1149347..115c0f8 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -555,23 +555,23 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
index 329f62f..e67b778 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
@@ -201,8 +201,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index f5a4f70..40d40b3 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 0e80419..9d8e0a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -274,12 +274,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServer.html
index ed3270e..01ee3a7 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServer.html
@@ -185,7 +185,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" titl
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allowFallbackToSimpleAuth">allowFallbackToSimpleAuth</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUDITLOG">AUDITLOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_FAILED_FOR">AUTH_FAILED_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_SUCCESSFUL_FOR">AUTH_SUCCESSFUL_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authManager">authManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authTokenSecretMgr">authTokenSecretMgr</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#callQueueSizeInBytes">callQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#cellBlockBuilder">cellBlockBuilder</
 a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CurCall">CurCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_SIZE">DEFAULT_MAX_CALLQUEUE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_REQUEST_SIZE">DEFAULT_MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT">DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop
 /hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAPPER">MAPPER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxQueueSizeInBytes">maxQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxRequestSize">maxRequestSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.htm
 l#MIN_CLIENT_REQUEST_TIMEOUT">MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minClientRequestTimeout">minClientRequestTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minSizeForReservoirUse">minSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MONITORED_RPC">MONITORED_RPC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#REQUEST_TOO_BIG_EXCEPTION">REQUEST_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#reservoir">reservoir</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#running">running</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#saslProps">saslProps</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#scheduler">scheduler
 </a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#secretManager">secretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#server">server</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#services">services</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#started">started</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpKeepAlive">tcpKeepAlive</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userProvider">userProvider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a>, <
 a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allowFallbackToSimpleAuth">allowFallbackToSimpleAuth</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUDITLOG">AUDITLOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_FAILED_FOR">AUTH_FAILED_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_SUCCESSFUL_FOR">AUTH_SUCCESSFUL_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authManager">authManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authTokenSecretMgr">authTokenSecretMgr</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#callQueueSizeInBytes">callQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#cellBlockBuilder">cellBlockBuilder</
 a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CurCall">CurCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_SIZE">DEFAULT_MAX_CALLQUEUE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_REQUEST_SIZE">DEFAULT_MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT">DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/ha
 doop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAPPER">MAPPER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxQueueSizeInBytes">maxQueueSizeInBytes</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxRequestSize">maxRequestSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MIN_CLIENT_REQUEST_TIMEOUT">MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minClientRequestTimeout">minClientRequestTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minSizeForReservoirUse">minSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MONITORED_RPC">MONITORED_RPC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#REQUEST_TOO_BIG_EXCEPTION">REQUEST_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#reservoir">reservoir</a>, <a href="../../../../../org
 /apache/hadoop/hbase/ipc/RpcServer.html#running">running</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#saslProps">saslProps</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#scheduler">scheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#secretManager">secretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#server">server</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#services">services</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#started">started</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpKeepAlive">tcpKeepAlive</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#TRACE_LOG_MAX_LENGTH">TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userP
 rovider">userProvider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</a></code></li>
 </ul>
 </li>
 </ul>
@@ -280,7 +280,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" titl
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#addCallSize-long-">addCallSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allocateByteBuffToReadInto-org.apache.hadoop.hbase.io.ByteBufferPool-int-int-">allocateByteBuffToReadInto</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authorize-org.apache.hadoop.security.UserGroupInformation-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader-java.net.InetAddress-">authorize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">call</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#createSecretManager--">createSecretManager</a>, <a href="../../../../../
 org/apache/hadoop/hbase/ipc/RpcServer.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getCurrentCall--">getCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getErrorHandler--">getErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMinSizeForReservoirUse-org.apache.hadoop.hbase.io.ByteBufferPool-">getMinSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteAddress--">getRemoteAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteIp--">getRemoteIp</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUser--">getRequestUser</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUserName--">getRequestUserName</a>, <a href="../../../../../org
 /apache/hadoop/hbase/ipc/RpcServer.html#getScheduler--">getScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getSecretManager--">getSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getService-java.util.List-java.lang.String-">getService</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceAndInterface-java.util.List-java.lang.String-">getServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceInterface-java.util.List-java.lang.String-">getServiceInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getStatus--">getStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#initReconfigurable-org.apache.hadoop.conf.Configuration-">initReconfigurable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isInRpcCallContext--">isInRpcCallContext</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/ipc/RpcServer.html#isStarted--">isStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#logResponse-org.apache.hbase.thirdparty.com.google.protobuf.Message-java.lang.String-java.lang.String-java.lang.String-java.lang.String-long-int-int-long-">logResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#refreshAuthManager-org.apache.hadoop.security.authorize.PolicyProvider-">refreshAuthManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">setErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServe
 r.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#addCallSize-long-">addCallSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allocateByteBuffToReadInto-org.apache.hadoop.hbase.io.ByteBufferPool-int-int-">allocateByteBuffToReadInto</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authorize-org.apache.hadoop.security.UserGroupInformation-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader-java.net.InetAddress-">authorize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">call</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#createSecretManager--">createSecretManager</a>, <a href="../../../../../
 org/apache/hadoop/hbase/ipc/RpcServer.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getCurrentCall--">getCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getErrorHandler--">getErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMinSizeForReservoirUse-org.apache.hadoop.hbase.io.ByteBufferPool-">getMinSizeForReservoirUse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteAddress--">getRemoteAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteIp--">getRemoteIp</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUser--">getRequestUser</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUserName--">getRequestUserName</a>, <a href="../../../../../org
 /apache/hadoop/hbase/ipc/RpcServer.html#getScheduler--">getScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getSecretManager--">getSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getService-java.util.List-java.lang.String-">getService</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceAndInterface-java.util.List-java.lang.String-">getServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceInterface-java.util.List-java.lang.String-">getServiceInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getStatus--">getStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#initReconfigurable-org.apache.hadoop.conf.Configuration-">initReconfigurable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isInRpcCallContext--">isInRpcCallContext</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/ipc/RpcServer.html#isStarted--">isStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#logResponse-org.apache.hbase.thirdparty.com.google.protobuf.Message-java.lang.String-java.lang.String-java.lang.String-java.lang.String-long-int-int-long-">logResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#refreshAuthManager-org.apache.hadoop.security.authorize.PolicyProvider-">refreshAuthManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">setErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServe
 r.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#truncateTraceLog-java.lang.String-">truncateTraceLog</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/74f60271/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
index 0218c46..cf1e5fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.234">RpcServer.BlockingServiceAndInterface</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.238">RpcServer.BlockingServiceAndInterface</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Datastructure for passing a <code>BlockingService</code> and its associated class of
  protobuf service interface.  For example, a server that fielded what is defined
@@ -214,7 +214,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>service</h4>
-<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.235">service</a></pre>
+<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.239">service</a></pre>
 </li>
 </ul>
 <a name="serviceInterface">
@@ -223,7 +223,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>serviceInterface</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.236">serviceInterface</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.240">serviceInterface</a></pre>
 </li>
 </ul>
 </li>
@@ -240,7 +240,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockingServiceAndInterface</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.237">BlockingServiceAndInterface</a>(org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;service,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.241">BlockingServiceAndInterface</a>(org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;service,
                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;serviceInterface)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceInterface</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.242">getServiceInterface</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.246">getServiceInterface</a>()</pre>
 </li>
 </ul>
 <a name="getBlockingService--">
@@ -267,7 +267,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getBlockingService</h4>
-<pre>public&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.245">getBlockingService</a>()</pre>
+<pre>public&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.249">getBlockingService</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
index 89615ce..dc6caad 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.224">RpcServer.CallCleanup</a></pre>
+protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.228">RpcServer.CallCleanup</a></pre>
 </li>
 </ul>
 </div>
@@ -154,7 +154,7 @@ protected static interface <a href="../../../../../src-html/org/apache/hadoop/hb
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html#line.225">run</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html#line.229">run</a>()</pre>
 </li>
 </ul>
 </li>


[29/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index b6f0498..6641f94 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6252">HRegion.RegionScannerImpl</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6253">HRegion.RegionScannerImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">RegionScannerImpl is used to combine scanners from multiple Stores (aka column families).</div>
@@ -425,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>storeHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6255">storeHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6256">storeHeap</a></pre>
 </li>
 </ul>
 <a name="joinedHeap">
@@ -434,7 +434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6258">joinedHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6259">joinedHeap</a></pre>
 <div class="block">Heap of key-values that are not essential for the provided filters and are thus read
  on demand, if on-demand column family loading is enabled.</div>
 </li>
@@ -445,7 +445,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedContinuationRow</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6262">joinedContinuationRow</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6263">joinedContinuationRow</a></pre>
 <div class="block">If the joined heap data gathering is interrupted due to scan limits, this will
  contain the row for which we are populating the values.</div>
 </li>
@@ -456,7 +456,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterClosed</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6263">filterClosed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6264">filterClosed</a></pre>
 </li>
 </ul>
 <a name="stopRow">
@@ -465,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>stopRow</h4>
-<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6265">stopRow</a></pre>
+<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6266">stopRow</a></pre>
 </li>
 </ul>
 <a name="includeStopRow">
@@ -474,7 +474,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStopRow</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6266">includeStopRow</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6267">includeStopRow</a></pre>
 </li>
 </ul>
 <a name="region">
@@ -483,7 +483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>region</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6267">region</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6268">region</a></pre>
 </li>
 </ul>
 <a name="comparator">
@@ -492,7 +492,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>comparator</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6268">comparator</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6269">comparator</a></pre>
 </li>
 </ul>
 <a name="readPt">
@@ -501,7 +501,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>readPt</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6270">readPt</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6271">readPt</a></pre>
 </li>
 </ul>
 <a name="maxResultSize">
@@ -510,7 +510,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>maxResultSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6271">maxResultSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6272">maxResultSize</a></pre>
 </li>
 </ul>
 <a name="defaultScannerContext">
@@ -519,7 +519,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>defaultScannerContext</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6272">defaultScannerContext</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6273">defaultScannerContext</a></pre>
 </li>
 </ul>
 <a name="filter">
@@ -528,7 +528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>filter</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6273">filter</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6274">filter</a></pre>
 </li>
 </ul>
 </li>
@@ -545,7 +545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6280">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6281">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -561,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6285">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6286">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                   long&nbsp;nonceGroup,
@@ -587,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6276">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6277">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -602,7 +602,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeScanners</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6323">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6324">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                   <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                            throws <a href="https://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>
@@ -617,7 +617,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeKVHeap</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6355">initializeKVHeap</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6356">initializeKVHeap</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                                 <a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;joinedScanners,
                                 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -633,7 +633,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>handleException</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6364">handleException</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6365">handleException</a>(<a href="https://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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 </li>
 </ul>
@@ -643,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6385">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6386">getMaxResultSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMaxResultSize--">getMaxResultSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -659,7 +659,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMvccReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6390">getMvccReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6391">getMvccReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMvccReadPoint--">getMvccReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -674,7 +674,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getBatch</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6395">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6396">getBatch</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getBatch--">getBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -690,7 +690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>resetFilters</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6404">resetFilters</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6405">resetFilters</a>()
                      throws <a href="https://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">Reset both the filter and the old filter.</div>
 <dl>
@@ -705,7 +705,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6411">next</a>(<a href="https://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;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6412">next</a>(<a href="https://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;outResults)
              throws <a href="https://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/InternalScanner.html#next-java.util.List-">InternalScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values.</div>
@@ -727,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6418">next</a>(<a href="https://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;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6419">next</a>(<a href="https://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;outResults,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
              throws <a href="https://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/InternalScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">InternalScanner</a></code></span></div>
@@ -750,7 +750,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6434">nextRaw</a>(<a href="https://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;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6435">nextRaw</a>(<a href="https://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;outResults)
                 throws <a href="https://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/RegionScanner.html#nextRaw-java.util.List-">RegionScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values. This is a special internal method to be called from
@@ -775,7 +775,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6440">nextRaw</a>(<a href="https://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;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6441">nextRaw</a>(<a href="https://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;outResults,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                 throws <a href="https://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/RegionScanner.html#nextRaw-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">RegionScanner</a></code></span></div>
@@ -821,7 +821,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateFromJoinedHeap</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6477">populateFromJoinedHeap</a>(<a href="https://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;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6478">populateFromJoinedHeap</a>(<a href="https://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;results,
                                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                                 throws <a href="https://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>
@@ -838,7 +838,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateResult</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6501">populateResult</a>(<a href="https://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;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6502">populateResult</a>(<a href="https://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;results,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;heap,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
@@ -863,7 +863,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>moreCellsInRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6542">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6543">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 <div class="block">Based on the nextKv in the heap, and the current row, decide whether or not there are more
  cells to be read in the heap. If the row of the nextKv in the heap matches the current row
@@ -883,7 +883,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6550">isFilterDone</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6551">isFilterDone</a>()
                      throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -901,7 +901,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDoneInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6554">isFilterDoneInternal</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6555">isFilterDoneInternal</a>()
                               throws <a href="https://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>
@@ -915,7 +915,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6558">nextInternal</a>(<a href="https://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;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6559">nextInternal</a>(<a href="https://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;results,
                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                       throws <a href="https://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>
@@ -930,7 +930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsFilteredMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6781">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6782">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="incrementCountOfRowsScannedMetric-org.apache.hadoop.hbase.regionserver.ScannerContext-">
@@ -939,7 +939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsScannedMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6789">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6790">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="joinedHeapMayHaveData-org.apache.hadoop.hbase.Cell-">
@@ -948,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeapMayHaveData</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6800">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6801">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
                                throws <a href="https://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="paramLabel">Parameters:</span></dt>
@@ -966,7 +966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6827">filterRow</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6828">filterRow</a>()
                    throws <a href="https://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">This function is to maintain backward compatibility for 0.94 filters. HBASE-6429 combines
  both filterRow & filterRow(<code>List&lt;KeyValue&gt; kvs</code>) functions. While 0.94 code or older,
@@ -985,7 +985,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRowKey</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6834">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6835">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
                       throws <a href="https://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>
@@ -999,7 +999,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRow</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6838">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6839">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                           <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;curRowCell)
                    throws <a href="https://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>
@@ -1014,7 +1014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldStop</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6853">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6854">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 </li>
 </ul>
 <a name="close--">
@@ -1023,7 +1023,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6865">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6866">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#close--">InternalScanner</a></code></span></div>
 <div class="block">Closes the scanner and releases any resources it has allocated</div>
 <dl>
@@ -1042,7 +1042,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreHeapForTesting</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6879">getStoreHeapForTesting</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6880">getStoreHeapForTesting</a>()</pre>
 </li>
 </ul>
 <a name="reseek-byte:A-">
@@ -1051,7 +1051,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>reseek</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6884">reseek</a>(byte[]&nbsp;row)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6885">reseek</a>(byte[]&nbsp;row)
                throws <a href="https://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/RegionScanner.html#reseek-byte:A-">RegionScanner</a></code></span></div>
 <div class="block">Do a reseek to the required row. Should not be used to seek to a key which
@@ -1071,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6904">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6905">shipped</a>()
              throws <a href="https://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/Shipper.html#shipped--">Shipper</a></code></span></div>
 <div class="block">Called after a batch of rows scanned and set to be returned to client. Any in between cleanup
@@ -1090,7 +1090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6914">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6915">run</a>()
          throws <a href="https://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/ipc/RpcCallback.html#run--">RpcCallback</a></code></span></div>
 <div class="block">Called at the end of an Rpc Call <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc"><code>RpcCallContext</code></a></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
index d358bb7..268504a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3786">HRegion.ReplayBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3787">HRegion.ReplayBatchOperation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</pre>
 <div class="block">Batch of mutations for replay. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.MutationBatchOperation</code></a> as most
  of the logic is same.</div>
@@ -306,7 +306,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>origLogSeqNum</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3787">origLogSeqNum</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3788">origLogSeqNum</a></pre>
 </li>
 </ul>
 </li>
@@ -323,7 +323,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplayBatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3788">ReplayBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3789">ReplayBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                             <a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;operations,
                             long&nbsp;origLogSeqNum)</pre>
 </li>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3795">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3796">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -355,7 +355,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3800">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3801">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3805">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3806">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -381,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3810">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3811">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 <dl>
@@ -396,7 +396,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3815">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3816">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -409,7 +409,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3820">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3821">getOrigLogSeqNum</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -422,7 +422,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3825">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3826">startRegionOperation</a>()
                           throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -438,7 +438,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3830">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3831">closeRegionOperation</a>()
                           throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -454,7 +454,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3839">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3840">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                            throws <a href="https://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">During replay, there could exist column families which are removed between region server
  failure and replay</div>
@@ -472,7 +472,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3860">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3861">checkAndPrepare</a>()
                      throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -494,7 +494,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3869">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3870">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                        long&nbsp;timestamp,
                                        <a href="https://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/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -515,7 +515,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public&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.ReplayBatchOperation.html#line.3881">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&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.ReplayBatchOperation.html#line.3882">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                              throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#writeMiniBatchOperationsToMemStore-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -534,7 +534,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3889">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3890">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://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 class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 84d6ebd..1c14d98 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5860">HRegion.RowLockContext</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5861">HRegion.RowLockContext</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -241,7 +241,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5861">row</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5862">row</a></pre>
 </li>
 </ul>
 <a name="readWriteLock">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>readWriteLock</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5862">readWriteLock</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5863">readWriteLock</a></pre>
 </li>
 </ul>
 <a name="usable">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>usable</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5863">usable</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5864">usable</a></pre>
 </li>
 </ul>
 <a name="count">
@@ -268,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>count</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5864">count</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5865">count</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -277,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5865">lock</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5866">lock</a></pre>
 </li>
 </ul>
 <a name="threadName">
@@ -286,7 +286,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>threadName</h4>
-<pre>private&nbsp;<a href="https://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/regionserver/HRegion.RowLockContext.html#line.5866">threadName</a></pre>
+<pre>private&nbsp;<a href="https://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/regionserver/HRegion.RowLockContext.html#line.5867">threadName</a></pre>
 </li>
 </ul>
 </li>
@@ -303,7 +303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockContext</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5868">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5869">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
 </li>
 </ul>
 </li>
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newWriteLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5872">newWriteLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5873">newWriteLock</a>()</pre>
 </li>
 </ul>
 <a name="newReadLock--">
@@ -329,7 +329,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newReadLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5876">newReadLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5877">newReadLock</a>()</pre>
 </li>
 </ul>
 <a name="getRowLock-java.util.concurrent.locks.Lock-">
@@ -338,7 +338,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLock</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5881">getRowLock</a>(<a href="https://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;l)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5882">getRowLock</a>(<a href="https://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;l)</pre>
 </li>
 </ul>
 <a name="cleanUp--">
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanUp</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5892">cleanUp</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5893">cleanUp</a>()</pre>
 </li>
 </ul>
 <a name="setThreadName-java.lang.String-">
@@ -356,7 +356,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setThreadName</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5905">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5906">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -365,7 +365,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/HRegion.RowLockContext.html#line.5910">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/HRegion.RowLockContext.html#line.5911">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 2202571..bb8fc19 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5923">HRegion.RowLockImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5924">HRegion.RowLockImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></pre>
 <div class="block">Class used to represent a lock on a row.</div>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>context</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5924">context</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5925">context</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -235,7 +235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lock</h4>
-<pre>private final&nbsp;<a href="https://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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5925">lock</a></pre>
+<pre>private final&nbsp;<a href="https://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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5926">lock</a></pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5927">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5928">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
                    <a href="https://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>
 </li>
 </ul>
@@ -270,7 +270,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getLock</h4>
-<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5932">getLock</a>()</pre>
+<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5933">getLock</a>()</pre>
 </li>
 </ul>
 <a name="getContext--">
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getContext</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5937">getContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5938">getContext</a>()</pre>
 </li>
 </ul>
 <a name="release--">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>release</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5942">release</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5943">release</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html#release--">Region.RowLock</a></code></span></div>
 <div class="block">Release the given lock.  If there are no remaining locks held by the current thread
  then unlock the row and allow other threads to acquire the lock.</div>
@@ -304,7 +304,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/regionserver/HRegion.RowLockImpl.html#line.5948">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/regionserver/HRegion.RowLockImpl.html#line.5949">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


[13/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</

<TRUNCATED>

[18/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
index 51bf304..db6ac15 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
@@ -199,614 +199,635 @@
 <span class="sourceLineNo">191</span>  protected static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.191"></a>
 <span class="sourceLineNo">192</span>  protected static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  protected final int maxRequestSize;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  protected final int warnResponseTime;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  protected final int warnResponseSize;<a name="line.198"></a>
+<span class="sourceLineNo">194</span>  protected static final int DEFAULT_TRACE_LOG_MAX_LENGTH = 1000;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected static final String TRACE_LOG_MAX_LENGTH = "hbase.ipc.trace.log.max.length";<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected static final String KEY_WORD_TRUNCATED = " &lt;TRUNCATED&gt;";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  protected static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.198"></a>
 <span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected final int minClientRequestTimeout;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  protected final Server server;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  protected final RpcScheduler scheduler;<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected UserProvider userProvider;<a name="line.207"></a>
+<span class="sourceLineNo">200</span>  protected final int maxRequestSize;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected final int warnResponseTime;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final int warnResponseSize;<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  protected final int minClientRequestTimeout;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  protected final Server server;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  protected final ByteBufferPool reservoir;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  // request/response is at least this size.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected final int minSizeForReservoirUse;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private RSRpcServices rsRpcServices;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  @FunctionalInterface<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  protected static interface CallCleanup {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    void run();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  public static class BlockingServiceAndInterface {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    private final BlockingService service;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.service = service;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.serviceInterface = serviceInterface;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return this.serviceInterface;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    public BlockingService getBlockingService() {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return this.service;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Constructs a server listening on the named port and address.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * instance else pass null for no authentication check.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param services A list of services.<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param bindAddress Where to listen<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param conf<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @param scheduler<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public RpcServer(final Server server, final String name,<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (reservoirEnabled) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      // is by default 64 KB.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      // we consider and consider that also for the max buffers to pool<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    } else {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      reservoir = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.server = server;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.services = services;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.bindAddress = bindAddress;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.conf = conf;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // See declaration above for documentation on what this size is.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.maxQueueSizeInBytes =<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.307"></a>
+<span class="sourceLineNo">209</span>  protected final RpcScheduler scheduler;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected UserProvider userProvider;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  protected final ByteBufferPool reservoir;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  // The requests and response will use buffers from ByteBufferPool, when the size of the<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  // request/response is at least this size.<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  // We make this to be 1/6th of the pool buffer size.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  protected final int minSizeForReservoirUse;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  protected volatile boolean allowFallbackToSimpleAuth;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   * Used to get details for scan with a scanner_id&lt;br/&gt;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * TODO try to figure out a better way and remove reference from regionserver package later.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  private RSRpcServices rsRpcServices;<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  @FunctionalInterface<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected static interface CallCleanup {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    void run();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * Datastructure for passing a {@link BlockingService} and its associated class of<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * protobuf service interface.  For example, a server that fielded what is defined<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * in the client protobuf service would pass in an implementation of the client blocking service<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * and then its ClientService.BlockingInterface.class.  Used checking connection setup.<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public static class BlockingServiceAndInterface {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    private final BlockingService service;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    private final Class&lt;?&gt; serviceInterface;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    public BlockingServiceAndInterface(final BlockingService service,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        final Class&lt;?&gt; serviceInterface) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.service = service;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.serviceInterface = serviceInterface;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    public Class&lt;?&gt; getServiceInterface() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      return this.serviceInterface;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    public BlockingService getBlockingService() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      return this.service;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  /**<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * Constructs a server listening on the named port and address.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param server hosting instance of {@link Server}. We will do authentications if an<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * instance else pass null for no authentication check.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param name Used keying this rpc servers' metrics and for naming the Listener thread.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param services A list of services.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @param bindAddress Where to listen<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * @param conf<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * @param scheduler<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * @param reservoirEnabled Enable ByteBufferPool or not.<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  public RpcServer(final Server server, final String name,<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      final List&lt;BlockingServiceAndInterface&gt; services,<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      final InetSocketAddress bindAddress, Configuration conf,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      RpcScheduler scheduler, boolean reservoirEnabled) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (reservoirEnabled) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      int poolBufSize = conf.getInt(ByteBufferPool.BUFFER_SIZE_KEY,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          ByteBufferPool.DEFAULT_BUFFER_SIZE);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      // The max number of buffers to be pooled in the ByteBufferPool. The default value been<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      // selected based on the #handlers configured. When it is read request, 2 MB is the max size<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      // at which we will send back one RPC request. Means max we need 2 MB for creating the<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      // response cell block. (Well it might be much lesser than this because in 2 MB size calc, we<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      // include the heap size overhead of each cells also.) Considering 2 MB, we will need<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      // (2 * 1024 * 1024) / poolBufSize buffers to make the response cell block. Pool buffer size<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      // is by default 64 KB.<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      // In case of read request, at the end of the handler process, we will make the response<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      // cellblock and add the Call to connection's response Q and a single Responder thread takes<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      // connections and responses from that one by one and do the socket write. So there is chances<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      // that by the time a handler originated response is actually done writing to socket and so<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      // released the BBs it used, the handler might have processed one more read req. On an avg 2x<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      // we consider and consider that also for the max buffers to pool<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      int bufsForTwoMB = (2 * 1024 * 1024) / poolBufSize;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      int maxPoolSize = conf.getInt(ByteBufferPool.MAX_POOL_SIZE_KEY,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>              HConstants.DEFAULT_REGION_SERVER_HANDLER_COUNT) * bufsForTwoMB * 2);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      this.reservoir = new ByteBufferPool(poolBufSize, maxPoolSize);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      this.minSizeForReservoirUse = getMinSizeForReservoirUse(this.reservoir);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    } else {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      reservoir = null;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      this.minSizeForReservoirUse = Integer.MAX_VALUE;// reservoir itself not in place.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.server = server;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.services = services;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.bindAddress = bindAddress;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.conf = conf;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    // See declaration above for documentation on what this size is.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.maxQueueSizeInBytes =<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      this.conf.getLong("hbase.ipc.server.max.callqueue.size", DEFAULT_MAX_CALLQUEUE_SIZE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.warnResponseTime = conf.getInt(WARN_RESPONSE_TIME, DEFAULT_WARN_RESPONSE_TIME);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.warnResponseSize = conf.getInt(WARN_RESPONSE_SIZE, DEFAULT_WARN_RESPONSE_SIZE);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.minClientRequestTimeout = conf.getInt(MIN_CLIENT_REQUEST_TIMEOUT,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    this.maxRequestSize = conf.getInt(MAX_REQUEST_SIZE, DEFAULT_MAX_REQUEST_SIZE);<a name="line.307"></a>
 <span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    if (isSecurityEnabled) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      saslProps = Collections.emptyMap();<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    this.scheduler = scheduler;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @VisibleForTesting<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    return pool.getBufferSize() / 6;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    initReconfigurable(newConf);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      LOG.warn("********* WARNING! *********");<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      LOG.warn("impersonation is possible!");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      LOG.warn("****************************");<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  Configuration getConf() {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return conf;<a name="line.352"></a>
+<span class="sourceLineNo">309</span>    this.metrics = new MetricsHBaseServer(name, new MetricsHBaseServerWrapperImpl(this));<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    this.tcpNoDelay = conf.getBoolean("hbase.ipc.server.tcpnodelay", true);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    this.tcpKeepAlive = conf.getBoolean("hbase.ipc.server.tcpkeepalive", true);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.cellBlockBuilder = new CellBlockBuilder(conf);<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>    this.authorize = conf.getBoolean(HADOOP_SECURITY_AUTHORIZATION, false);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    this.isSecurityEnabled = userProvider.isHBaseSecurityEnabled();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    if (isSecurityEnabled) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      saslProps = SaslUtil.initSaslProperties(conf.get("hbase.rpc.protection",<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        QualityOfProtection.AUTHENTICATION.name().toLowerCase(Locale.ROOT)));<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    } else {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      saslProps = Collections.emptyMap();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    this.scheduler = scheduler;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>  @VisibleForTesting<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  static int getMinSizeForReservoirUse(ByteBufferPool pool) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return pool.getBufferSize() / 6;<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>  @Override<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    initReconfigurable(newConf);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    if (scheduler instanceof ConfigurationObserver) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ((ConfigurationObserver) scheduler).onConfigurationChange(newConf);<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>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  protected void initReconfigurable(Configuration confToLoad) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.allowFallbackToSimpleAuth = confToLoad.getBoolean(FALLBACK_TO_INSECURE_CLIENT_AUTH, false);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    if (isSecurityEnabled &amp;&amp; allowFallbackToSimpleAuth) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      LOG.warn("********* WARNING! *********");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      LOG.warn("This server is configured to allow connections from INSECURE clients");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      LOG.warn("(" + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = true).");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      LOG.warn("While this option is enabled, client identities cannot be secured, and user");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      LOG.warn("impersonation is possible!");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      LOG.warn("For secure operation, please disable SIMPLE authentication as soon as possible,");<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      LOG.warn("by setting " + FALLBACK_TO_INSECURE_CLIENT_AUTH + " = false in hbase-site.xml");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      LOG.warn("****************************");<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
 <span class="sourceLineNo">353</span>  }<a name="line.353"></a>
 <span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  public boolean isStarted() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return this.started;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    // it'll break if you go via static route.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    synchronized (authManager) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      authManager.refresh(this.conf, pp);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    if (!isSecurityEnabled) return null;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if (server == null) return null;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    Configuration conf = server.getConfiguration();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    long keyUpdateInterval =<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    long maxAge =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return this.secretManager;<a name="line.382"></a>
+<span class="sourceLineNo">355</span>  Configuration getConf() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return conf;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>  @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  public boolean isStarted() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    return this.started;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public void refreshAuthManager(PolicyProvider pp) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    // Ignore warnings that this should be accessed in a static way instead of via an instance;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // it'll break if you go via static route.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    synchronized (authManager) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      authManager.refresh(this.conf, pp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  protected AuthenticationTokenSecretManager createSecretManager() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    if (!isSecurityEnabled) return null;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    if (server == null) return null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Configuration conf = server.getConfiguration();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    long keyUpdateInterval =<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        conf.getLong("hbase.auth.key.update.interval", 24*60*60*1000);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    long maxAge =<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        conf.getLong("hbase.auth.token.max.lifetime", 7*24*60*60*1000);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    return new AuthenticationTokenSecretManager(conf, server.getZooKeeper(),<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        server.getServerName().toString(), keyUpdateInterval, maxAge);<a name="line.382"></a>
 <span class="sourceLineNo">383</span>  }<a name="line.383"></a>
 <span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @SuppressWarnings("unchecked")<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * the return response has protobuf response payload. On failure, the<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   */<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Override<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      MonitoredRPCHandler status) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    try {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      MethodDescriptor md = call.getMethod();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      Message param = call.getParam();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        call.getReceiveTime());<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      // TODO: Review after we add in encoded data blocks.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      status.setRPCPacket(param);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      status.resume("Servicing call");<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      //get an instance of the method arg type<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      controller.setCallTimeout(call.getTimeout());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      long receiveTime = call.getReceiveTime();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      long startTime = call.getStartTime();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      long endTime = System.currentTimeMillis();<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      int processingTime = (int) (endTime - startTime);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      int qTime = (int) (startTime - receiveTime);<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      if (LOG.isTraceEnabled()) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        LOG.trace(CurCall.get().toString() +<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.418"></a>
-<span class="sourceLineNo">419</span>            " queueTime: " + qTime +<a name="line.419"></a>
-<span class="sourceLineNo">420</span>            " processingTime: " + processingTime +<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            " totalTime: " + totalTime);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      // Use the raw request call size for now.<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      long requestSize = call.getSize();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      long responseSize = result.getSerializedSize();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      if (call.isClientCellBlockSupported()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        // Include the payload size in HBaseRpcController<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        responseSize += call.getResponseCellSize();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>      metrics.dequeuedCall(qTime);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      metrics.processedCall(processingTime);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      metrics.totalCall(totalTime);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      metrics.receivedRequest(requestSize);<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      metrics.sentResponse(responseSize);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // log any RPC responses that are slower than the configured warn<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // response time or larger than configured warning size<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      if (tooSlow || tooLarge) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        // note that large responses will often also be slow.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        logResponse(param,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.444"></a>
-<span class="sourceLineNo">445</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>            responseSize);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    } catch (Throwable e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      // need to pass it over the wire.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      if (e instanceof ServiceException) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        if (e.getCause() == null) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>        } else {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          e = e.getCause();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      // increment the number of requests that were exceptions.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      metrics.exception(e);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      LOG.error("Unexpected throwable object ", e);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      throw new IOException(e.getMessage(), e);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * client Operations.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * @param param The parameters received in the call.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * @param methodName The name of the method invoked<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param call The string representation of the call<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param clientAddress   The address of the client who made this call.<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @param qTime           The duration that the call spent on the queue<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   *                        prior to being initiated, in ms.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      long responseSize) throws IOException {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    // base information that is reported regardless of type of call<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    responseInfo.put("starttimems", startTime);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    responseInfo.put("processingtimems", processingTime);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    responseInfo.put("queuetimems", qTime);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    responseInfo.put("responsesize", responseSize);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    responseInfo.put("client", clientAddress);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    responseInfo.put("method", methodName);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    responseInfo.put("call", call);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      stringifiedParam = stringifiedParam.subSequence(<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          0, LOG.isTraceEnabled() ? 1000 : 150) + " &lt;TRUNCATED&gt;";<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    responseInfo.put("param", stringifiedParam);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      if (request.hasScannerId()) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        long scannerId = request.getScannerId();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (scanDetails != null) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          responseInfo.put("scandetails", scanDetails);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @param handler the handler implementation<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  @Override<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    this.errorHandler = handler;<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>  @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this.errorHandler;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  @Override<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  public MetricsHBaseServer getMetrics() {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return metrics;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  public void addCallSize(final long diff) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    this.callQueueSizeInBytes.add(diff);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>  /**<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * Authorize the incoming client connection.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param user client user<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param connection incoming connection<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param addr InetAddress of incoming connection<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      InetAddress addr) throws AuthorizationException {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (authorize) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      synchronized (authManager) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * be smaller.<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   *<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   * @param channel writable byte channel to write on<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * @param buffer buffer to write<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return number of bytes written<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * @throws java.io.IOException e<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * @see java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   */<a name="line.582"></a>
-<span class="sourceLineNo">583</span>  protected int channelRead(ReadableByteChannel channel,<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                                   ByteBuffer buffer) throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    int count = (buffer.remaining() &lt;= NIO_BUFFER_LIMIT) ?<a name="line.586"></a>
-<span class="sourceLineNo">587</span>           channel.read(buffer) : channelIO(channel, null, buffer);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (count &gt; 0) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      metrics.receivedBytes(count);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    return count;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * Only one of readCh or writeCh should be non-null.<a name="line.596"></a>
+<span class="sourceLineNo">385</span>  public SecretManager&lt;? extends TokenIdentifier&gt; getSecretManager() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return this.secretManager;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  @SuppressWarnings("unchecked")<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public void setSecretManager(SecretManager&lt;? extends TokenIdentifier&gt; secretManager) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    this.secretManager = (SecretManager&lt;TokenIdentifier&gt;) secretManager;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * This is a server side method, which is invoked over RPC. On success<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * the return response has protobuf response payload. On failure, the<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * exception name and the stack trace are returned in the protobuf response.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @Override<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public Pair&lt;Message, CellScanner&gt; call(RpcCall call,<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      MonitoredRPCHandler status) throws IOException {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      MethodDescriptor md = call.getMethod();<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      Message param = call.getParam();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      status.setRPC(md.getName(), new Object[]{param},<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        call.getReceiveTime());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      // TODO: Review after we add in encoded data blocks.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      status.setRPCPacket(param);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      status.resume("Servicing call");<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      //get an instance of the method arg type<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      HBaseRpcController controller = new HBaseRpcControllerImpl(call.getCellScanner());<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      controller.setCallTimeout(call.getTimeout());<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      Message result = call.getService().callBlockingMethod(md, controller, param);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      long receiveTime = call.getReceiveTime();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      long startTime = call.getStartTime();<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      long endTime = System.currentTimeMillis();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      int processingTime = (int) (endTime - startTime);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      int qTime = (int) (startTime - receiveTime);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      int totalTime = (int) (endTime - receiveTime);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      if (LOG.isTraceEnabled()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        LOG.trace(CurCall.get().toString() +<a name="line.421"></a>
+<span class="sourceLineNo">422</span>            ", response " + TextFormat.shortDebugString(result) +<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            " queueTime: " + qTime +<a name="line.423"></a>
+<span class="sourceLineNo">424</span>            " processingTime: " + processingTime +<a name="line.424"></a>
+<span class="sourceLineNo">425</span>            " totalTime: " + totalTime);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      // Use the raw request call size for now.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      long requestSize = call.getSize();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      long responseSize = result.getSerializedSize();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      if (call.isClientCellBlockSupported()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        // Include the payload size in HBaseRpcController<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        responseSize += call.getResponseCellSize();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      metrics.dequeuedCall(qTime);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      metrics.processedCall(processingTime);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      metrics.totalCall(totalTime);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      metrics.receivedRequest(requestSize);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      metrics.sentResponse(responseSize);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      // log any RPC responses that are slower than the configured warn<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // response time or larger than configured warning size<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean tooSlow = (processingTime &gt; warnResponseTime &amp;&amp; warnResponseTime &gt; -1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      boolean tooLarge = (responseSize &gt; warnResponseSize &amp;&amp; warnResponseSize &gt; -1);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      if (tooSlow || tooLarge) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        // when tagging, we let TooLarge trump TooSmall to keep output simple<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        // note that large responses will often also be slow.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        logResponse(param,<a name="line.447"></a>
+<span class="sourceLineNo">448</span>            md.getName(), md.getName() + "(" + param.getClass().getName() + ")",<a name="line.448"></a>
+<span class="sourceLineNo">449</span>            (tooLarge ? "TooLarge" : "TooSlow"),<a name="line.449"></a>
+<span class="sourceLineNo">450</span>            status.getClient(), startTime, processingTime, qTime,<a name="line.450"></a>
+<span class="sourceLineNo">451</span>            responseSize);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      return new Pair&lt;&gt;(result, controller.cellScanner());<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    } catch (Throwable e) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      // The above callBlockingMethod will always return a SE.  Strip the SE wrapper before<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      // putting it on the wire.  Its needed to adhere to the pb Service Interface but we don't<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      // need to pass it over the wire.<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      if (e instanceof ServiceException) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        if (e.getCause() == null) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          LOG.debug("Caught a ServiceException with null cause", e);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        } else {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          e = e.getCause();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // increment the number of requests that were exceptions.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      metrics.exception(e);<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      if (e instanceof LinkageError) throw new DoNotRetryIOException(e);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      if (e instanceof IOException) throw (IOException)e;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      LOG.error("Unexpected throwable object ", e);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      throw new IOException(e.getMessage(), e);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * Logs an RPC response to the LOG file, producing valid JSON objects for<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   * client Operations.<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * @param param The parameters received in the call.<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @param methodName The name of the method invoked<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * @param call The string representation of the call<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   * @param tag  The tag that will be used to indicate this event in the log.<a name="line.482"></a>
+<span class="sourceLineNo">483</span>   * @param clientAddress   The address of the client who made this call.<a name="line.483"></a>
+<span class="sourceLineNo">484</span>   * @param startTime       The time that the call was initiated, in ms.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>   * @param processingTime  The duration that the call took to run, in ms.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * @param qTime           The duration that the call spent on the queue<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   *                        prior to being initiated, in ms.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @param responseSize    The size in bytes of the response buffer.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  void logResponse(Message param, String methodName, String call, String tag,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      String clientAddress, long startTime, int processingTime, int qTime,<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      long responseSize) throws IOException {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    // base information that is reported regardless of type of call<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    Map&lt;String, Object&gt; responseInfo = new HashMap&lt;&gt;();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    responseInfo.put("starttimems", startTime);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    responseInfo.put("processingtimems", processingTime);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    responseInfo.put("queuetimems", qTime);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    responseInfo.put("responsesize", responseSize);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    responseInfo.put("client", clientAddress);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    responseInfo.put("class", server == null? "": server.getClass().getSimpleName());<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    responseInfo.put("method", methodName);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    responseInfo.put("call", call);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    // The params could be really big, make sure they don't kill us at WARN<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    String stringifiedParam = ProtobufUtil.getShortTextFormat(param);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (stringifiedParam.length() &gt; 150) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      // Truncate to 1000 chars if TRACE is on, else to 150 chars<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      stringifiedParam = truncateTraceLog(stringifiedParam);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    responseInfo.put("param", stringifiedParam);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    if (param instanceof ClientProtos.ScanRequest &amp;&amp; rsRpcServices != null) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      if (request.hasScannerId()) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        long scannerId = request.getScannerId();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        if (scanDetails != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>          responseInfo.put("scandetails", scanDetails);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    LOG.warn("(response" + tag + "): " + MAPPER.writeValueAsString(responseInfo));<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * Truncate to number of chars decided by conf hbase.ipc.trace.log.max.length<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * if TRACE is on else to 150 chars Refer to Jira HBASE-20826 and HBASE-20942<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * @param strParam stringifiedParam to be truncated<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * @return truncated trace log string<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   */<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  @VisibleForTesting<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  String truncateTraceLog(String strParam) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    if (LOG.isTraceEnabled()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      int traceLogMaxLength = getConf().getInt(TRACE_LOG_MAX_LENGTH, DEFAULT_TRACE_LOG_MAX_LENGTH);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      int truncatedLength =<a name="line.533"></a>
+<span class="sourceLineNo">534</span>          strParam.length() &lt; traceLogMaxLength ? strParam.length() : traceLogMaxLength;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      String truncatedFlag = truncatedLength == strParam.length() ? "" : KEY_WORD_TRUNCATED;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return strParam.subSequence(0, truncatedLength) + truncatedFlag;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    return strParam.subSequence(0, 150) + KEY_WORD_TRUNCATED;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * Set the handler for calling out of RPC for error conditions.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param handler the handler implementation<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>  public void setErrorHandler(HBaseRPCErrorHandler handler) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    this.errorHandler = handler;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>  @Override<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public HBaseRPCErrorHandler getErrorHandler() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return this.errorHandler;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * Returns the metrics instance for reporting RPC call statistics<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  public MetricsHBaseServer getMetrics() {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    return metrics;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>  @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  public void addCallSize(final long diff) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    this.callQueueSizeInBytes.add(diff);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>  }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>  /**<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * Authorize the incoming client connection.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @param user client user<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * @param connection incoming connection<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * @param addr InetAddress of incoming connection<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   * @throws AuthorizationException when the client isn't authorized to talk the protocol<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  public void authorize(UserGroupInformation user, ConnectionHeader connection,<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      InetAddress addr) throws AuthorizationException {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    if (authorize) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      Class&lt;?&gt; c = getServiceInterface(services, connection.getServiceName());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      synchronized (authManager) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        authManager.authorize(user, c, getConf(), addr);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>  }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>  /**<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * When the read or write buffer size is larger than this limit, i/o will be<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * done in chunks of this size. Most RPC requests and responses would be<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * be smaller.<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  protected static final int NIO_BUFFER_LIMIT = 64 * 1024; //should not be more than 64KB.<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * This is a wrapper around {@link java.nio.channels.ReadableByteChannel#read(java.nio.ByteBuffer)}.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * If the amount of data is large, it writes to channel in smaller chunks.<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * This is to avoid jdk from creating many direct buffers as the size of<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * ByteBuffer increases. There should not be any performance degredation.<a name="line.596"></a>
 <span class="sourceLineNo">597</span>   *<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param readCh read channel<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param writeCh write channel<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param buf buffer to read or write into/out of<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @return bytes written<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @throws java.io.IOException e<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @see #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  private static int channelIO(ReadableByteChannel readCh,<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                               WritableByteChannel writeCh,<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                               ByteBuffer buf) throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>    int originalLimit = buf.limit();<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    int initialRemaining = buf.remaining();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    int ret = 0;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    while (buf.remaining() &gt; 0) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      try {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        int ioSize = Math.min(buf.remaining(), NIO_BUFFER_LIMIT);<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        buf.limit(buf.position() + ioSize);<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>        ret = (readCh == null) ? writeCh.write(buf) : readCh.read(buf);<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>        if (ret &lt; ioSize) {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          break;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>      } finally {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        buf.limit(originalLimit);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      }<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    int nBytes = initialRemaining - buf.remaining();<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    return (nBytes &gt; 0) ? nBytes : ret;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * This is extracted to a static method for better unit testing. We try to get buffer(s) from pool<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * as much as possible.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   *<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * @param pool The ByteBufferPool to use<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * @param minSizeForPoolUse Only for buffer size above this, we will try to use pool. Any buffer<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   *           need of size below this, create on heap ByteBuffer.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * @param reqLen Bytes count in request<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
-<span class="sourceLineNo">642</span>  @VisibleForTesting<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  static Pair&lt;ByteBuff, CallCleanup&gt; allocateByteBuffToReadInto(ByteBufferPool pool,<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      int minSizeForPoolUse, int reqLen) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    ByteBuff resultBuf;<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    List&lt;ByteBuffer&gt; bbs = new ArrayList&lt;&gt;((reqLen / pool.getBufferSize()) + 1);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    int remain = reqLen;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    ByteBuffer buf = null;<a name="line.

<TRUNCATED>

[21/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html
index 92ec202..99b030e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -129,44 +129,90 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgRegionSize-java.lang.String-">getAvgRegionSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the average region size for this table</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgStoreFileAge-java.lang.String-">getAvgStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getCpRequestsCount-java.lang.String-">getCpRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the number of CoprocessorService requests that have been issued against this table</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getFilteredReadRequestCount-java.lang.String-">getFilteredReadRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the total number of filtered read requests that have been issued against this table</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoresSize-java.lang.String-">getMemStoresSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMaxStoreFileAge-java.lang.String-">getMaxStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoreSize-java.lang.String-">getMemStoreSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the memory store size against this table</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMinStoreFileAge-java.lang.String-">getMinStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumReferenceFiles-java.lang.String-">getNumReferenceFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumRegions-java.lang.String-">getNumRegions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of regions hosted on for this table</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestsCount-java.lang.String-">getReadRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStoreFiles-java.lang.String-">getNumStoreFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of store files hosted for this table</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStores-java.lang.String-">getNumStores</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of stores hosted on for this table</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestCount-java.lang.String-">getReadRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the number of read requests that have been issued against this table</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFilesSize-java.lang.String-">getStoreFilesSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFileSize-java.lang.String-">getStoreFileSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the store file size against this table</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTableSize-java.lang.String-">getTableSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the table region size against this table</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTotalRequestsCount-java.lang.String-">getTotalRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
-<div class="block">Get the total number of requests that have been issued against this table</div>
+<div class="block">Get the total number of requests that have been issued for this table</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestsCount-java.lang.String-">getWriteRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
-<div class="block">Get the number of write requests that have been issued against this table</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestCount-java.lang.String-">getWriteRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of write requests that have been issued for this table</div>
 </td>
 </tr>
 </table>
@@ -184,13 +230,13 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getReadRequestsCount-java.lang.String-">
+<a name="getReadRequestCount-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getReadRequestsCount</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.33">getReadRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<h4>getReadRequestCount</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.33">getReadRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block">Get the number of read requests that have been issued against this table</div>
 </li>
 </ul>
@@ -204,14 +250,24 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <div class="block">Get the number of CoprocessorService requests that have been issued against this table</div>
 </li>
 </ul>
-<a name="getWriteRequestsCount-java.lang.String-">
+<a name="getFilteredReadRequestCount-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getWriteRequestsCount</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.43">getWriteRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block">Get the number of write requests that have been issued against this table</div>
+<h4>getFilteredReadRequestCount</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.43">getFilteredReadRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the total number of filtered read requests that have been issued against this table</div>
+</li>
+</ul>
+<a name="getWriteRequestCount-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriteRequestCount</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.47">getWriteRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the number of write requests that have been issued for this table</div>
 </li>
 </ul>
 <a name="getTotalRequestsCount-java.lang.String-">
@@ -220,40 +276,132 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRequestsCount</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.48">getTotalRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block">Get the total number of requests that have been issued against this table</div>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.52">getTotalRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the total number of requests that have been issued for this table</div>
 </li>
 </ul>
-<a name="getMemStoresSize-java.lang.String-">
+<a name="getMemStoreSize-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMemStoresSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.53">getMemStoresSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<h4>getMemStoreSize</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.57">getMemStoreSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block">Get the memory store size against this table</div>
 </li>
 </ul>
-<a name="getStoreFilesSize-java.lang.String-">
+<a name="getStoreFileSize-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getStoreFilesSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.58">getStoreFilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<h4>getStoreFileSize</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.62">getStoreFileSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block">Get the store file size against this table</div>
 </li>
 </ul>
 <a name="getTableSize-java.lang.String-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getTableSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.63">getTableSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.67">getTableSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block">Get the table region size against this table</div>
 </li>
 </ul>
+<a name="getAvgRegionSize-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAvgRegionSize</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.73">getAvgRegionSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the average region size for this table</div>
+</li>
+</ul>
+<a name="getNumRegions-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumRegions</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.78">getNumRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the number of regions hosted on for this table</div>
+</li>
+</ul>
+<a name="getNumStores-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumStores</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.83">getNumStores</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the number of stores hosted on for this table</div>
+</li>
+</ul>
+<a name="getNumStoreFiles-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumStoreFiles</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.88">getNumStoreFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block">Get the number of store files hosted for this table</div>
+</li>
+</ul>
+<a name="getMaxStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxStoreFileAge</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.93">getMaxStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Max age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinStoreFileAge</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.98">getMinStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Min age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getAvgStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAvgStoreFileAge</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.103">getAvgStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Average age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumReferenceFiles-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumReferenceFiles</h4>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#line.108">getNumReferenceFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Number of reference files for this table</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html
index 97b6ecf..851556c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html
@@ -18,12 +18,6 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
 </script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
@@ -77,13 +71,13 @@ var activeTableTab = "activeTableTab";
 <li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
 <li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
+<li>Method</li>
 </ul>
 </div>
 <a name="skip.navbar.top">
@@ -113,7 +107,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.185">MetricsTableWrapperAggregateImpl.MetricsTableValues</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.286">MetricsTableWrapperAggregateImpl.MetricsTableValues</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -134,32 +128,56 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#cpRequestsCount">cpRequestsCount</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#cpRequestCount">cpRequestCount</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#memstoresSize">memstoresSize</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#filteredReadRequestCount">filteredReadRequestCount</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#readRequestsCount">readRequestsCount</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#maxStoreFileAge">maxStoreFileAge</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#storeFilesSize">storeFilesSize</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#memstoreSize">memstoreSize</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#tableSize">tableSize</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#minStoreFileAge">minStoreFileAge</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#totalRequestsCount">totalRequestsCount</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#readRequestCount">readRequestCount</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#writeRequestsCount">writeRequestsCount</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#referenceFileCount">referenceFileCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#regionCount">regionCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#storeCount">storeCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#storeFileCount">storeFileCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#storeFileSize">storeFileSize</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#totalStoreFileAge">totalStoreFileAge</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#writeRequestCount">writeRequestCount</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -189,69 +207,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getCpRequestsCount--">getCpRequestsCount</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getMemStoresSize--">getMemStoresSize</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getReadRequestsCount--">getReadRequestsCount</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getStoreFilesSize--">getStoreFilesSize</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getTableSize--">getTableSize</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getTotalRequestsCount--">getTotalRequestsCount</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getWriteRequestsCount--">getWriteRequestsCount</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setCpRequestsCount-long-">setCpRequestsCount</a></span>(long&nbsp;cpRequestsCount)</code>&nbsp;</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setMemStoresSize-long-">setMemStoresSize</a></span>(long&nbsp;memstoresSize)</code>&nbsp;</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setReadRequestsCount-long-">setReadRequestsCount</a></span>(long&nbsp;readRequestsCount)</code>&nbsp;</td>
-</tr>
-<tr id="i10" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setStoreFilesSize-long-">setStoreFilesSize</a></span>(long&nbsp;storeFilesSize)</code>&nbsp;</td>
-</tr>
-<tr id="i11" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setTableSize-long-">setTableSize</a></span>(long&nbsp;tableSize)</code>&nbsp;</td>
-</tr>
-<tr id="i12" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setTotalRequestsCount-long-">setTotalRequestsCount</a></span>(long&nbsp;totalRequestsCount)</code>&nbsp;</td>
-</tr>
-<tr id="i13" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#setWriteRequestsCount-long-">setWriteRequestsCount</a></span>(long&nbsp;writeRequestsCount)</code>&nbsp;</td>
-</tr>
-</table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
@@ -273,218 +228,138 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="totalRequestsCount">
+<a name="readRequestCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>totalRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.187">totalRequestsCount</a></pre>
+<h4>readRequestCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.287">readRequestCount</a></pre>
 </li>
 </ul>
-<a name="readRequestsCount">
+<a name="filteredReadRequestCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>readRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.188">readRequestsCount</a></pre>
+<h4>filteredReadRequestCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.288">filteredReadRequestCount</a></pre>
 </li>
 </ul>
-<a name="cpRequestsCount">
+<a name="writeRequestCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>cpRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.189">cpRequestsCount</a></pre>
+<h4>writeRequestCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.289">writeRequestCount</a></pre>
 </li>
 </ul>
-<a name="writeRequestsCount">
+<a name="memstoreSize">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>writeRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.190">writeRequestsCount</a></pre>
+<h4>memstoreSize</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.290">memstoreSize</a></pre>
 </li>
 </ul>
-<a name="memstoresSize">
+<a name="regionCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>memstoresSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.191">memstoresSize</a></pre>
+<h4>regionCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.291">regionCount</a></pre>
 </li>
 </ul>
-<a name="storeFilesSize">
+<a name="storeCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>storeFilesSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.192">storeFilesSize</a></pre>
+<h4>storeCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.292">storeCount</a></pre>
 </li>
 </ul>
-<a name="tableSize">
+<a name="storeFileCount">
 <!--   -->
 </a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>tableSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.193">tableSize</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="MetricsTableValues--">
-<!--   -->
-</a>
-<ul class="blockListLast">
 <li class="blockList">
-<h4>MetricsTableValues</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.185">MetricsTableValues</a>()</pre>
-</li>
-</ul>
+<h4>storeFileCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.293">storeFileCount</a></pre>
 </li>
 </ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="getTotalRequestsCount--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getTotalRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.195">getTotalRequestsCount</a>()</pre>
-</li>
-</ul>
-<a name="setTotalRequestsCount-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setTotalRequestsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.199">setTotalRequestsCount</a>(long&nbsp;totalRequestsCount)</pre>
-</li>
-</ul>
-<a name="getReadRequestsCount--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.203">getReadRequestsCount</a>()</pre>
-</li>
-</ul>
-<a name="setReadRequestsCount-long-">
+<a name="storeFileSize">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setReadRequestsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.207">setReadRequestsCount</a>(long&nbsp;readRequestsCount)</pre>
+<h4>storeFileSize</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.294">storeFileSize</a></pre>
 </li>
 </ul>
-<a name="getCpRequestsCount--">
+<a name="maxStoreFileAge">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCpRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.211">getCpRequestsCount</a>()</pre>
+<h4>maxStoreFileAge</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.295">maxStoreFileAge</a></pre>
 </li>
 </ul>
-<a name="setCpRequestsCount-long-">
+<a name="minStoreFileAge">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCpRequestsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.215">setCpRequestsCount</a>(long&nbsp;cpRequestsCount)</pre>
+<h4>minStoreFileAge</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.296">minStoreFileAge</a></pre>
 </li>
 </ul>
-<a name="getWriteRequestsCount--">
+<a name="totalStoreFileAge">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getWriteRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.219">getWriteRequestsCount</a>()</pre>
+<h4>totalStoreFileAge</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.297">totalStoreFileAge</a></pre>
 </li>
 </ul>
-<a name="setWriteRequestsCount-long-">
+<a name="referenceFileCount">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setWriteRequestsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.223">setWriteRequestsCount</a>(long&nbsp;writeRequestsCount)</pre>
+<h4>referenceFileCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.298">referenceFileCount</a></pre>
 </li>
 </ul>
-<a name="getMemStoresSize--">
+<a name="cpRequestCount">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getMemStoresSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.227">getMemStoresSize</a>()</pre>
-</li>
-</ul>
-<a name="setMemStoresSize-long-">
-<!--   -->
-</a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
-<h4>setMemStoresSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.231">setMemStoresSize</a>(long&nbsp;memstoresSize)</pre>
+<h4>cpRequestCount</h4>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.299">cpRequestCount</a></pre>
 </li>
 </ul>
-<a name="getStoreFilesSize--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getStoreFilesSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.235">getStoreFilesSize</a>()</pre>
 </li>
 </ul>
-<a name="setStoreFilesSize-long-">
-<!--   -->
-</a>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
-<li class="blockList">
-<h4>setStoreFilesSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.239">setStoreFilesSize</a>(long&nbsp;storeFilesSize)</pre>
-</li>
-</ul>
-<a name="getTableSize--">
+<li class="blockList"><a name="constructor.detail">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getTableSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.243">getTableSize</a>()</pre>
-</li>
-</ul>
-<a name="setTableSize-long-">
+<h3>Constructor Detail</h3>
+<a name="MetricsTableValues--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>setTableSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.247">setTableSize</a>(long&nbsp;tableSize)</pre>
+<h4>MetricsTableValues</h4>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#line.286">MetricsTableValues</a>()</pre>
 </li>
 </ul>
 </li>
@@ -543,13 +418,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
 <li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
+<li>Method</li>
 </ul>
 </div>
 <a name="skip.navbar.bottom">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html
index a5f94c8..4c49a11 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.58">MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.59">MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 </li>
@@ -187,7 +187,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TableMetricsWrapperRunnable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html#line.58">TableMetricsWrapperRunnable</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html#line.59">TableMetricsWrapperRunnable</a>()</pre>
 </li>
 </ul>
 </li>
@@ -204,7 +204,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html#line.61">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html#line.62">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>


[10/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>      LOG.debug

<TRUNCATED>

[33/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
index 533592b..b2dcbee 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMe
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.
 html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop
 /hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParent
 ProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailu
 re</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.Procedur
 eStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/proced
 ure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLo
 ck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase
 /procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
index 06285e5..b29c766 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure
 .html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">set
 ProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnv
 ironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetri
 csOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.Procedur
 eStore-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/pr
 ocedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasPa
 rent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lan
 g.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hba
 se/procedure2/Procedure.html#tryRunnable--">tryRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</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/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
index e181813..25172ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1921">ProcedureExecutor.KeepAliveWorkerThread</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.2039">ProcedureExecutor.KeepAliveWorkerThread</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.WorkerThread</a></pre>
 </li>
 </ul>
@@ -252,7 +252,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>KeepAliveWorkerThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html#line.1923">KeepAliveWorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html#line.2041">KeepAliveWorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
 </li>
 </ul>
 </li>
@@ -269,7 +269,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>keepAlive</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html#line.1928">keepAlive</a>(long&nbsp;lastUpdate)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html#line.2046">keepAlive</a>(long&nbsp;lastUpdate)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#keepAlive-long-">keepAlive</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.WorkerThread</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
index b73cd3a..3e96758 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1941">ProcedureExecutor.WorkerMonitor</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.2059">ProcedureExecutor.WorkerMonitor</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">InlineChore</a></pre>
 </li>
 </ul>
@@ -277,7 +277,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_MONITOR_INTERVAL_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1942">WORKER_MONITOR_INTERVAL_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2060">WORKER_MONITOR_INTERVAL_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_MONITOR_INTERVAL_CONF_KEY">Constant Field Values</a></dd>
@@ -290,7 +290,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_MONITOR_INTERVAL</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1944">DEFAULT_WORKER_MONITOR_INTERVAL</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2062">DEFAULT_WORKER_MONITOR_INTERVAL</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_MONITOR_INTERVAL">Constant Field Values</a></dd>
@@ -303,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_STUCK_THRESHOLD_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1946">WORKER_STUCK_THRESHOLD_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2064">WORKER_STUCK_THRESHOLD_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_STUCK_THRESHOLD_CONF_KEY">Constant Field Values</a></dd>
@@ -316,7 +316,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_STUCK_THRESHOLD</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1948">DEFAULT_WORKER_STUCK_THRESHOLD</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2066">DEFAULT_WORKER_STUCK_THRESHOLD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_STUCK_THRESHOLD">Constant Field Values</a></dd>
@@ -329,7 +329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1950">WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2068">WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY">Constant Field Values</a></dd>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</h4>
-<pre>private static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1952">DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</a></pre>
+<pre>private static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2070">DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_ADD_STUCK_PERCENTAGE">Constant Field Values</a></dd>
@@ -355,7 +355,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>addWorkerStuckPercentage</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1954">addWorkerStuckPercentage</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2072">addWorkerStuckPercentage</a></pre>
 </li>
 </ul>
 <a name="timeoutInterval">
@@ -364,7 +364,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>timeoutInterval</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1955">timeoutInterval</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2073">timeoutInterval</a></pre>
 </li>
 </ul>
 <a name="stuckThreshold">
@@ -373,7 +373,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stuckThreshold</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1956">stuckThreshold</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2074">stuckThreshold</a></pre>
 </li>
 </ul>
 </li>
@@ -390,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WorkerMonitor</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1958">WorkerMonitor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2076">WorkerMonitor</a>()</pre>
 </li>
 </ul>
 </li>
@@ -407,7 +407,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1963">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2081">run</a>()</pre>
 </li>
 </ul>
 <a name="checkForStuckWorkers--">
@@ -416,7 +416,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkForStuckWorkers</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1971">checkForStuckWorkers</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2089">checkForStuckWorkers</a>()</pre>
 </li>
 </ul>
 <a name="checkThreadCount-int-">
@@ -425,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkThreadCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1987">checkThreadCount</a>(int&nbsp;stuckCount)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2105">checkThreadCount</a>(int&nbsp;stuckCount)</pre>
 </li>
 </ul>
 <a name="refreshConfig--">
@@ -434,7 +434,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2006">refreshConfig</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2124">refreshConfig</a>()</pre>
 </li>
 </ul>
 <a name="getTimeoutInterval--">
@@ -443,7 +443,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getTimeoutInterval</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2016">getTimeoutInterval</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.2134">getTimeoutInterval</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.html#getTimeoutInterval--">getTimeoutInterval</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">InlineChore</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
index 4719c00..77cf89b 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
@@ -131,7 +131,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1841">ProcedureExecutor.WorkerThread</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1959">ProcedureExecutor.WorkerThread</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">StoppableThread</a></pre>
 </li>
 </ul>
@@ -282,7 +282,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>executionStartTime</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1842">executionStartTime</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1960">executionStartTime</a></pre>
 </li>
 </ul>
 <a name="activeProcedure">
@@ -291,7 +291,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>activeProcedure</h4>
-<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1843">activeProcedure</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1961">activeProcedure</a></pre>
 </li>
 </ul>
 </li>
@@ -308,7 +308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>WorkerThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1845">WorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1963">WorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
 </li>
 </ul>
 <a name="WorkerThread-java.lang.ThreadGroup-java.lang.String-">
@@ -317,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WorkerThread</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1849">WorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group,
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1967">WorkerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</pre>
 </li>
 </ul>
@@ -335,7 +335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>sendStopSignal</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1855">sendStopSignal</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1973">sendStopSignal</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThread.html#sendStopSignal--">sendStopSignal</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">StoppableThread</a></code></dd>
@@ -348,7 +348,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1860">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1978">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -363,7 +363,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerThread.html#line.1901">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://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/procedure2/ProcedureExecutor.WorkerThread.html#line.2019">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></code></dd>
@@ -376,7 +376,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentRunTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1909">getCurrentRunTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.2027">getCurrentRunTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the time since the current procedure is running</dd>
@@ -389,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/StoppableThre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>keepAlive</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1914">keepAlive</a>(long&nbsp;lastUpdate)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.2032">keepAlive</a>(long&nbsp;lastUpdate)</pre>
 </li>
 </ul>
 </li>


[04/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.CompatStateSerializer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.CompatStateSerializer.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.CompatStateSerializer.html
index 1a491f3..76e3c88 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.CompatStateSerializer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.CompatStateSerializer.html
@@ -213,122 +213,130 @@
 <span class="sourceLineNo">205</span>    if (proc.hasLock()) {<a name="line.205"></a>
 <span class="sourceLineNo">206</span>      builder.setLocked(true);<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    return builder.build();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * Helper to convert the protobuf procedure.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * Used by ProcedureStore implementations.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   *                     We can split in 'data' and 'state', and the store<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Procedure from class name<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // set fields<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    proc.setProcId(proto.getProcId());<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    proc.setState(proto.getState());<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (proto.hasParentId()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      proc.setParentProcId(proto.getParentId());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    if (proc.isBypass()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      builder.setBypass(true);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    return builder.build();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * Helper to convert the protobuf procedure.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * Used by ProcedureStore implementations.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   *                     We can split in 'data' and 'state', and the store<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Procedure from class name<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // set fields<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    proc.setProcId(proto.getProcId());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    proc.setState(proto.getState());<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    if (proto.hasOwner()) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      proc.setOwner(proto.getOwner());<a name="line.235"></a>
+<span class="sourceLineNo">234</span>    if (proto.hasParentId()) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      proc.setParentProcId(proto.getParentId());<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    }<a name="line.236"></a>
 <span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (proto.hasTimeout()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      proc.setTimeout(proto.getTimeout());<a name="line.239"></a>
+<span class="sourceLineNo">238</span>    if (proto.hasOwner()) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      proc.setOwner(proto.getOwner());<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    }<a name="line.240"></a>
 <span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.243"></a>
+<span class="sourceLineNo">242</span>    if (proto.hasTimeout()) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      proc.setTimeout(proto.getTimeout());<a name="line.243"></a>
 <span class="sourceLineNo">244</span>    }<a name="line.244"></a>
 <span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    if (proto.hasException()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.247"></a>
-<span class="sourceLineNo">248</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.248"></a>
-<span class="sourceLineNo">249</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    if (proto.hasResult()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.254"></a>
+<span class="sourceLineNo">246</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    if (proto.hasException()) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.251"></a>
+<span class="sourceLineNo">252</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.252"></a>
+<span class="sourceLineNo">253</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    if (proto.hasResult()) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (proto.getLocked()) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      proc.lockedWhenLoading();<a name="line.262"></a>
+<span class="sourceLineNo">261</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    }<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    ProcedureStateSerializer serializer = null;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    } else if (proto.hasStateData()) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (serializer != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      proc.deserializeStateData(serializer);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return proc;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  // ==========================================================================<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  //  convert from LockedResource object<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  // ==========================================================================<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      LockedResourceType resourceType) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      LockedResource lockedResource) throws IOException<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    builder<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .setResourceName(lockedResource.getResourceName())<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
+<span class="sourceLineNo">265</span>    if (proto.getLocked()) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      proc.lockedWhenLoading();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (proto.getBypass()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      proc.bypass();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ProcedureStateSerializer serializer = null;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    } else if (proto.hasStateData()) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    if (serializer != null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      proc.deserializeStateData(serializer);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    return proc;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  // ==========================================================================<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  //  convert from LockedResource object<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  // ==========================================================================<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      LockedResourceType resourceType) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<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>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      LockedResource lockedResource) throws IOException<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>    builder<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .setResourceName(lockedResource.getResourceName())<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.311"></a>
 <span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.313"></a>
+<span class="sourceLineNo">313</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.313"></a>
 <span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          convertToProtoProcedure(waitingProcedure);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.318"></a>
+<span class="sourceLineNo">315</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.318"></a>
 <span class="sourceLineNo">319</span>    }<a name="line.319"></a>
 <span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return builder.build();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>}<a name="line.323"></a>
+<span class="sourceLineNo">321</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          convertToProtoProcedure(waitingProcedure);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    return builder.build();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>}<a name="line.331"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.StateSerializer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.StateSerializer.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.StateSerializer.html
index 1a491f3..76e3c88 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.StateSerializer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.StateSerializer.html
@@ -213,122 +213,130 @@
 <span class="sourceLineNo">205</span>    if (proc.hasLock()) {<a name="line.205"></a>
 <span class="sourceLineNo">206</span>      builder.setLocked(true);<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    return builder.build();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * Helper to convert the protobuf procedure.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * Used by ProcedureStore implementations.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   *                     We can split in 'data' and 'state', and the store<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Procedure from class name<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // set fields<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    proc.setProcId(proto.getProcId());<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    proc.setState(proto.getState());<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (proto.hasParentId()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      proc.setParentProcId(proto.getParentId());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    if (proc.isBypass()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      builder.setBypass(true);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    return builder.build();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * Helper to convert the protobuf procedure.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * Used by ProcedureStore implementations.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   *                     We can split in 'data' and 'state', and the store<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Procedure from class name<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // set fields<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    proc.setProcId(proto.getProcId());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    proc.setState(proto.getState());<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    if (proto.hasOwner()) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      proc.setOwner(proto.getOwner());<a name="line.235"></a>
+<span class="sourceLineNo">234</span>    if (proto.hasParentId()) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      proc.setParentProcId(proto.getParentId());<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    }<a name="line.236"></a>
 <span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (proto.hasTimeout()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      proc.setTimeout(proto.getTimeout());<a name="line.239"></a>
+<span class="sourceLineNo">238</span>    if (proto.hasOwner()) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      proc.setOwner(proto.getOwner());<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    }<a name="line.240"></a>
 <span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.243"></a>
+<span class="sourceLineNo">242</span>    if (proto.hasTimeout()) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      proc.setTimeout(proto.getTimeout());<a name="line.243"></a>
 <span class="sourceLineNo">244</span>    }<a name="line.244"></a>
 <span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    if (proto.hasException()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.247"></a>
-<span class="sourceLineNo">248</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.248"></a>
-<span class="sourceLineNo">249</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    if (proto.hasResult()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.254"></a>
+<span class="sourceLineNo">246</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    if (proto.hasException()) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.251"></a>
+<span class="sourceLineNo">252</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.252"></a>
+<span class="sourceLineNo">253</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    if (proto.hasResult()) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (proto.getLocked()) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      proc.lockedWhenLoading();<a name="line.262"></a>
+<span class="sourceLineNo">261</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    }<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    ProcedureStateSerializer serializer = null;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    } else if (proto.hasStateData()) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (serializer != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      proc.deserializeStateData(serializer);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return proc;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  // ==========================================================================<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  //  convert from LockedResource object<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  // ==========================================================================<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      LockedResourceType resourceType) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      LockedResource lockedResource) throws IOException<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    builder<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .setResourceName(lockedResource.getResourceName())<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
+<span class="sourceLineNo">265</span>    if (proto.getLocked()) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      proc.lockedWhenLoading();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (proto.getBypass()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      proc.bypass();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ProcedureStateSerializer serializer = null;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    } else if (proto.hasStateData()) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    if (serializer != null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      proc.deserializeStateData(serializer);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    return proc;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  // ==========================================================================<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  //  convert from LockedResource object<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  // ==========================================================================<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      LockedResourceType resourceType) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<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>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      LockedResource lockedResource) throws IOException<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>    builder<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .setResourceName(lockedResource.getResourceName())<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.311"></a>
 <span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.313"></a>
+<span class="sourceLineNo">313</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.313"></a>
 <span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          convertToProtoProcedure(waitingProcedure);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.318"></a>
+<span class="sourceLineNo">315</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.318"></a>
 <span class="sourceLineNo">319</span>    }<a name="line.319"></a>
 <span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return builder.build();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>}<a name="line.323"></a>
+<span class="sourceLineNo">321</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          convertToProtoProcedure(waitingProcedure);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    return builder.build();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>}<a name="line.331"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
index 1a491f3..76e3c88 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
@@ -213,122 +213,130 @@
 <span class="sourceLineNo">205</span>    if (proc.hasLock()) {<a name="line.205"></a>
 <span class="sourceLineNo">206</span>      builder.setLocked(true);<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    return builder.build();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * Helper to convert the protobuf procedure.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * Used by ProcedureStore implementations.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   *                     We can split in 'data' and 'state', and the store<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Procedure from class name<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // set fields<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    proc.setProcId(proto.getProcId());<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    proc.setState(proto.getState());<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (proto.hasParentId()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      proc.setParentProcId(proto.getParentId());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    if (proc.isBypass()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      builder.setBypass(true);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    return builder.build();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * Helper to convert the protobuf procedure.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * Used by ProcedureStore implementations.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   *                     We can split in 'data' and 'state', and the store<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  public static Procedure convertToProcedure(final ProcedureProtos.Procedure proto) throws IOException {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Procedure from class name<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    final Procedure proc = newProcedure(proto.getClassName());<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // set fields<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    proc.setProcId(proto.getProcId());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    proc.setState(proto.getState());<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    if (proto.hasOwner()) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      proc.setOwner(proto.getOwner());<a name="line.235"></a>
+<span class="sourceLineNo">234</span>    if (proto.hasParentId()) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      proc.setParentProcId(proto.getParentId());<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    }<a name="line.236"></a>
 <span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (proto.hasTimeout()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      proc.setTimeout(proto.getTimeout());<a name="line.239"></a>
+<span class="sourceLineNo">238</span>    if (proto.hasOwner()) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      proc.setOwner(proto.getOwner());<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    }<a name="line.240"></a>
 <span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.243"></a>
+<span class="sourceLineNo">242</span>    if (proto.hasTimeout()) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      proc.setTimeout(proto.getTimeout());<a name="line.243"></a>
 <span class="sourceLineNo">244</span>    }<a name="line.244"></a>
 <span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    if (proto.hasException()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.247"></a>
-<span class="sourceLineNo">248</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.248"></a>
-<span class="sourceLineNo">249</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    if (proto.hasResult()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.254"></a>
+<span class="sourceLineNo">246</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    if (proto.hasException()) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      assert proc.getState() == ProcedureProtos.ProcedureState.FAILED ||<a name="line.251"></a>
+<span class="sourceLineNo">252</span>             proc.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK :<a name="line.252"></a>
+<span class="sourceLineNo">253</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    if (proto.hasResult()) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (proto.getLocked()) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      proc.lockedWhenLoading();<a name="line.262"></a>
+<span class="sourceLineNo">261</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      proc.setNonceKey(new NonceKey(proto.getNonceGroup(), proto.getNonce()));<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    }<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    ProcedureStateSerializer serializer = null;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    } else if (proto.hasStateData()) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (serializer != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      proc.deserializeStateData(serializer);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return proc;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  // ==========================================================================<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  //  convert from LockedResource object<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  // ==========================================================================<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      LockedResourceType resourceType) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      LockedResource lockedResource) throws IOException<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    builder<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .setResourceName(lockedResource.getResourceName())<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
+<span class="sourceLineNo">265</span>    if (proto.getLocked()) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      proc.lockedWhenLoading();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>    if (proto.getBypass()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      proc.bypass();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ProcedureStateSerializer serializer = null;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    if (proto.getStateMessageCount() &gt; 0) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      serializer = new StateSerializer(proto.toBuilder());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    } else if (proto.hasStateData()) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      InputStream inputStream = proto.getStateData().newInput();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      serializer = new CompatStateSerializer(inputStream);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    if (serializer != null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      proc.deserializeStateData(serializer);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    return proc;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  // ==========================================================================<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  //  convert from LockedResource object<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  // ==========================================================================<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public static LockServiceProtos.LockedResourceType convertToProtoResourceType(<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      LockedResourceType resourceType) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    return LockServiceProtos.LockedResourceType.valueOf(resourceType.name());<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>  public static LockServiceProtos.LockType convertToProtoLockType(LockType lockType) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return LockServiceProtos.LockType.valueOf(lockType.name());<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  public static LockServiceProtos.LockedResource convertToProtoLockedResource(<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      LockedResource lockedResource) throws IOException<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    LockServiceProtos.LockedResource.Builder builder =<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        LockServiceProtos.LockedResource.newBuilder();<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>    builder<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .setResourceType(convertToProtoResourceType(lockedResource.getResourceType()))<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .setResourceName(lockedResource.getResourceName())<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        .setLockType(convertToProtoLockType(lockedResource.getLockType()));<a name="line.311"></a>
 <span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.313"></a>
+<span class="sourceLineNo">313</span>    Procedure&lt;?&gt; exclusiveLockOwnerProcedure = lockedResource.getExclusiveLockOwnerProcedure();<a name="line.313"></a>
 <span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          convertToProtoProcedure(waitingProcedure);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.318"></a>
+<span class="sourceLineNo">315</span>    if (exclusiveLockOwnerProcedure != null) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ProcedureProtos.Procedure exclusiveLockOwnerProcedureProto =<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          convertToProtoProcedure(exclusiveLockOwnerProcedure);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      builder.setExclusiveLockOwnerProcedure(exclusiveLockOwnerProcedureProto);<a name="line.318"></a>
 <span class="sourceLineNo">319</span>    }<a name="line.319"></a>
 <span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return builder.build();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>}<a name="line.323"></a>
+<span class="sourceLineNo">321</span>    builder.setSharedLockCount(lockedResource.getSharedLockCount());<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    for (Procedure&lt;?&gt; waitingProcedure : lockedResource.getWaitingProcedures()) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ProcedureProtos.Procedure waitingProcedureProto =<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          convertToProtoProcedure(waitingProcedure);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      builder.addWaitingProcedures(waitingProcedureProto);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    return builder.build();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>}<a name="line.331"></a>
 
 
 


[20/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html
index 74ae9d2..bba6ed2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -220,44 +220,94 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getAvgRegionSize-java.lang.String-">getAvgRegionSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the average region size for this table</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getAvgStoreFileAge-java.lang.String-">getAvgStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getCpRequestCount-java.lang.String-">getCpRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getCpRequestsCount-java.lang.String-">getCpRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the number of CoprocessorService requests that have been issued against this table</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getFilteredReadRequestCount-java.lang.String-">getFilteredReadRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the total number of filtered read requests that have been issued against this table</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMemStoresSize-java.lang.String-">getMemStoresSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMaxStoreFileAge-java.lang.String-">getMaxStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMemStoreSize-java.lang.String-">getMemStoreSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the memory store size against this table</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMinStoreFileAge-java.lang.String-">getMinStoreFileAge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumReferenceFiles-java.lang.String-">getNumReferenceFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumRegions-java.lang.String-">getNumRegions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of regions hosted on for this table</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumStoreFiles-java.lang.String-">getNumStoreFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of store files hosted for this table</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumStores-java.lang.String-">getNumStores</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of stores hosted on for this table</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getReadRequestsCount-java.lang.String-">getReadRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getReadRequestCount-java.lang.String-">getReadRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the number of read requests that have been issued against this table</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getStoreFilesSize-java.lang.String-">getStoreFilesSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getStoreFileSize-java.lang.String-">getStoreFileSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the store file size against this table</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getTableSize-java.lang.String-">getTableSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
 <div class="block">Get the table region size against this table</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getTotalRequestsCount-java.lang.String-">getTotalRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
-<div class="block">Get the total number of requests that have been issued against this table</div>
+<div class="block">Get the total number of requests that have been issued for this table</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getWriteRequestsCount-java.lang.String-">getWriteRequestsCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
-<div class="block">Get the number of write requests that have been issued against this table</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getWriteRequestCount-java.lang.String-">getWriteRequestCount</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</code>
+<div class="block">Get the number of write requests that have been issued for this table</div>
 </td>
 </tr>
 </table>
@@ -350,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsTableWrapperAggregateImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.48">MetricsTableWrapperAggregateImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.49">MetricsTableWrapperAggregateImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer)</pre>
 </li>
 </ul>
 </li>
@@ -361,18 +411,18 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getReadRequestsCount-java.lang.String-">
+<a name="getReadRequestCount-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.111">getReadRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestsCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<h4>getReadRequestCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.120">getReadRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
 <div class="block">Get the number of read requests that have been issued against this table</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestsCount-java.lang.String-">getReadRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestCount-java.lang.String-">getReadRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -382,7 +432,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getCpRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.121">getCpRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.130">getCpRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getCpRequestsCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
 <div class="block">Get the number of CoprocessorService requests that have been issued against this table</div>
 <dl>
@@ -391,18 +441,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 </dl>
 </li>
 </ul>
-<a name="getWriteRequestsCount-java.lang.String-">
+<a name="getFilteredReadRequestCount-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilteredReadRequestCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.139">getFilteredReadRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getFilteredReadRequestCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the total number of filtered read requests that have been issued against this table</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getFilteredReadRequestCount-java.lang.String-">getFilteredReadRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getWriteRequestCount-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getWriteRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.131">getWriteRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestsCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
-<div class="block">Get the number of write requests that have been issued against this table</div>
+<h4>getWriteRequestCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.148">getWriteRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the number of write requests that have been issued for this table</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestsCount-java.lang.String-">getWriteRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestCount-java.lang.String-">getWriteRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -412,42 +477,42 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.141">getTotalRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.158">getTotalRequestsCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTotalRequestsCount-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
-<div class="block">Get the total number of requests that have been issued against this table</div>
+<div class="block">Get the total number of requests that have been issued for this table</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTotalRequestsCount-java.lang.String-">getTotalRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="getMemStoresSize-java.lang.String-">
+<a name="getMemStoreSize-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMemStoresSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.151">getMemStoresSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoresSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<h4>getMemStoreSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.168">getMemStoreSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoreSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
 <div class="block">Get the memory store size against this table</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoresSize-java.lang.String-">getMemStoresSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoreSize-java.lang.String-">getMemStoreSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="getStoreFilesSize-java.lang.String-">
+<a name="getStoreFileSize-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getStoreFilesSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.161">getStoreFilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFilesSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<h4>getStoreFileSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.178">getStoreFileSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFileSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
 <div class="block">Get the store file size against this table</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFilesSize-java.lang.String-">getStoreFilesSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFileSize-java.lang.String-">getStoreFileSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -457,7 +522,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.171">getTableSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.188">getTableSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTableSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
 <div class="block">Get the table region size against this table</div>
 <dl>
@@ -466,13 +531,142 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 </dl>
 </li>
 </ul>
+<a name="getNumRegions-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumRegions</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.197">getNumRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumRegions-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the number of regions hosted on for this table</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumRegions-java.lang.String-">getNumRegions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getNumStores-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumStores</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.206">getNumStores</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStores-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the number of stores hosted on for this table</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStores-java.lang.String-">getNumStores</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getNumStoreFiles-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumStoreFiles</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.215">getNumStoreFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStoreFiles-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the number of store files hosted for this table</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStoreFiles-java.lang.String-">getNumStoreFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getMaxStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxStoreFileAge</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.224">getMaxStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMaxStoreFileAge-java.lang.String-">getMaxStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Max age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinStoreFileAge</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.233">getMinStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMinStoreFileAge-java.lang.String-">getMinStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Min age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getAvgStoreFileAge-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAvgStoreFileAge</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.242">getAvgStoreFileAge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgStoreFileAge-java.lang.String-">getAvgStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Average age of store files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumReferenceFiles-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumReferenceFiles</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.254">getNumReferenceFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumReferenceFiles-java.lang.String-">getNumReferenceFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Number of reference files for this table</dd>
+</dl>
+</li>
+</ul>
+<a name="getAvgRegionSize-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAvgRegionSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.263">getAvgRegionSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgRegionSize-java.lang.String-">MetricsTableWrapperAggregate</a></code></span></div>
+<div class="block">Get the average region size for this table</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgRegionSize-java.lang.String-">getAvgRegionSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getCpRequestCount-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCpRequestCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.273">getCpRequestCount</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table)</pre>
+</li>
+</ul>
 <a name="close--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.181">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#line.282">close</a>()
            throws <a href="https://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="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
index 1f90c8e..5f98cbd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
@@ -153,9 +153,10 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
-                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
index 9430f52..a5ce7ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
@@ -170,13 +170,15 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                   org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
-                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#MetricsRegionServerSourceImpl-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">MetricsRegionServerSourceImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;rsWrap)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTable.html
index 6e377e5..f3d0d6b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTable.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTable.html
@@ -106,6 +106,29 @@
 <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metricsTable">metricsTable</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#metricsTable">metricsTable</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html
index c5cd822..52d798b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html
@@ -140,6 +140,18 @@
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceFactoryImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.html#createTable-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">createTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSource.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>
+<div class="block">Returns MetricsTableSource registered for the table.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -154,16 +166,8 @@
 <td class="colLast"><span class="typeNameLabel">MetricsTableSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compareTo-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">compareTo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSource.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-        <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>
-<div class="block">Register a MetricsTableSource as being open.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#register-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
-        <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>&nbsp;</td>
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#register-org.apache.hadoop.hbase.regionserver.MetricsTableSource-">register</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>&nbsp;source)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableWrapperAggregate.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableWrapperAggregate.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableWrapperAggregate.html
index fa43845..d8d6bff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableWrapperAggregate.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableWrapperAggregate.html
@@ -121,7 +121,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MetricsTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#tableWrapperAgg">tableWrapperAgg</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MetricsTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html#wrapper">wrapper</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -161,6 +161,18 @@
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceFactoryImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.html#createTable-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">createTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSource.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>
+<div class="block">Returns MetricsTableSource registered for the table.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableAggregateSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;table,
+                      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>&nbsp;wrapper)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
index 4518b7d..a1fe119 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
@@ -130,9 +130,10 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-org.apache.hadoop.hbase.regionserver.MetricsTable-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
-                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a>&nbsp;metricsTable)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index fa7f70e..9b61947 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -595,6 +595,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">KeyValueScanner</span></a> (also extends org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> (also extends java.lang.<a href="https://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;)</li>
 </ul>
 </li>
 </ul>
@@ -619,7 +620,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionSource</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>)</li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.conf.Configurable
@@ -708,20 +709,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 6851ee1..b377318 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 46651a5..f0c55c8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,9 +247,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index 3c7146a..f8e4b11 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -160,8 +160,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 30c4e73..cd3870f 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -207,8 +207,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 034077c..c20ff47 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 8a2815f..c128782 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -142,8 +142,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://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.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 </ul>
 </li>


[48/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 1ba72e5..61e615e 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -7504,6 +7504,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#bypass--">bypass()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContextImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#bypass">bypass</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>
+<div class="block">Used for force complete of the procedure without
+ actually doing any logic in the procedure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#bypass--">bypass()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>
+<div class="block">set the bypass to true
+ Only called in <a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-"><code>ProcedureExecutor.bypassProcedure(long, long, boolean)</code></a> for now,
+ DO NOT use this method alone, since we can't just bypass
+ one single procedure.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#bypassable">bypassable</a></span> - Variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContextImpl</a></dt>
 <dd>
 <div class="block">Is this operation bypassable?</div>
@@ -7518,6 +7530,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/UserQuotaState.html#bypassGlobals">bypassGlobals</a></span> - Variable in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/UserQuotaState.html" title="class in org.apache.hadoop.hbase.quotas">UserQuotaState</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-">bypassProcedure(long, long, boolean)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a></dt>
+<dd>
+<div class="block">Bypass a procedure.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/UnsafeAccess.html#BYTE_ARRAY_BASE_OFFSET">BYTE_ARRAY_BASE_OFFSET</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/UnsafeAccess.html" title="class in org.apache.hadoop.hbase.util">UnsafeAccess</a></dt>
 <dd>
 <div class="block">The offset to the first element in a byte array.</div>
@@ -14241,8 +14257,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactedInputBytes">compactedInputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedInputBytes">compactedInputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactedOutputBytes">compactedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactedOutputBytes">compactedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/DefaultCompactor.html#compactForTesting-java.util.Collection-boolean-">compactForTesting(Collection&lt;HStoreFile&gt;, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/DefaultCompactor.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">DefaultCompactor</a></dt>
 <dd>
 <div class="block">Compact a list of files for testing.</div>
@@ -14367,10 +14387,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactionTool.CompactionInputFormat.html#CompactionInputFormat--">CompactionInputFormat()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactionTool.CompactionInputFormat.html" title="class in org.apache.hadoop.hbase.regionserver">CompactionTool.CompactionInputFormat</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.html#compactionKVMax">compactionKVMax</a></span> - Variable in class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.html" title="class in org.apache.hadoop.hbase.mob.compactions">PartitionedMobCompactor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/Compactor.html#compactionKVMax">compactionKVMax</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/Compactor.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">Compactor</a></dt>
@@ -14391,8 +14415,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartition.html#CompactionPartition-org.apache.hadoop.hbase.mob.compactions.PartitionedMobCompactionRequest.CompactionPartitionId-">CompactionPartition(PartitionedMobCompactionRequest.CompactionPartitionId)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartition.html" title="class in org.apache.hadoop.hbase.mob.compactions">PartitionedMobCompactionRequest.CompactionPartition</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartitionId.html#CompactionPartitionId--">CompactionPartitionId()</a></span> - Constructor for class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartitionId.html" title="class in org.apache.hadoop.hbase.mob.compactions">PartitionedMobCompactionRequest.CompactionPartitionId</a></dt>
@@ -14517,6 +14545,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/CompactionTool.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactionTool</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/CompactionTool.html#CompactionTool--">CompactionTool()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactionTool.html" title="class in org.apache.hadoop.hbase.regionserver">CompactionTool</a></dt>
@@ -18700,12 +18730,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#CP_REQUEST_COUNT">CP_REQUEST_COUNT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT">CP_REQUEST_COUNT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#CP_REQUEST_COUNT_DESC">CP_REQUEST_COUNT_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#CP_REQUEST_COUNT_DESC">CP_REQUEST_COUNT_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/MasterQuotasObserver.html#cpEnv">cpEnv</a></span> - Variable in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/MasterQuotasObserver.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotasObserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#cpHost">cpHost</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></dt>
@@ -18716,14 +18742,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionMetricsBuilder.RegionMetricsImpl.html#cpRequestCount">cpRequestCount</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionMetricsBuilder.RegionMetricsImpl.html" title="class in org.apache.hadoop.hbase">RegionMetricsBuilder.RegionMetricsImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#cpRequestCount">cpRequestCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerRegionLoad</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterStatusModel.Node.Region</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerLoad.html#cpRequestsCount">cpRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a></dt>
@@ -23816,6 +23842,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html#DEFAULT_TIMESTAMP_COLUMN_INDEX">DEFAULT_TIMESTAMP_COLUMN_INDEX</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html" title="class in org.apache.hadoop.hbase.mapreduce">ImportTsv.TsvParser</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html#DEFAULT_TTL">DEFAULT_TTL</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder</a></dt>
 <dd>
 <div class="block">Default time to live of cell contents.</div>
@@ -25074,6 +25102,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#deleteTableSnapshots-java.util.regex.Pattern-java.util.regex.Pattern-">deleteTableSnapshots(Pattern, Pattern)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">RawAsyncHBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deleteTableSource-java.lang.String-">deleteTableSource(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></dt>
+<dd>
+<div class="block">Remove a table's source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#deleteTableSource-java.lang.String-">deleteTableSource(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MetaTableAccessor.html#deleteTableState-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.TableName-">deleteTableState(Connection, TableName)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.html" title="class in org.apache.hadoop.hbase">MetaTableAccessor</a></dt>
 <dd>
 <div class="block">Remove state for table from meta</div>
@@ -25266,12 +25300,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html#deregister-org.apache.hadoop.hbase.regionserver.MetricsRegionSource-">deregister(MetricsRegionSource)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSourceImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#deregister-java.lang.String-">deregister(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></dt>
-<dd>
-<div class="block">Remove a table's source.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#deregister-java.lang.String-">deregister(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html#deregisterChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">deregisterChildren(ConfigurationManager)</a></span> - Method in interface org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">PropagatingConfigurationObserver</a></dt>
 <dd>
 <div class="block">Needs to be called to deregister the children from the manager.</div>
@@ -25288,6 +25316,8 @@
 <dd>
 <div class="block">Needs to be called to deregister the children from the manager.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#deregisterMetrics--">deregisterMetrics()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/conf/ConfigurationManager.html#deregisterObserver-org.apache.hadoop.hbase.conf.ConfigurationObserver-">deregisterObserver(ConfigurationObserver)</a></span> - Method in class org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a></dt>
 <dd>
 <div class="block">Deregister an observer class</div>
@@ -31428,6 +31458,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionMetricsBuilder.RegionMetricsImpl.html#filteredReadRequestCount">filteredReadRequestCount</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionMetricsBuilder.RegionMetricsImpl.html" title="class in org.apache.hadoop.hbase">RegionMetricsBuilder.RegionMetricsImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#filteredReadRequestCount">filteredReadRequestCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#filteredReadRequestsCount">filteredReadRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#filteredReadRequestsCount">filteredReadRequestsCount</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
@@ -32684,8 +32716,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushedMemstoreBytes">flushedMemstoreBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedMemstoreBytes">flushedMemstoreBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushedOutputBytes">flushedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushedOutputBytes">flushedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#flushedOutputFileSize">flushedOutputFileSize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#flushedSeqId">flushedSeqId</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a></dt>
@@ -32749,6 +32785,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushNonSloppyStoresFirstPolicy</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
 <div class="block">A <a href="org/apache/hadoop/hbase/regionserver/FlushPolicy.html" title="class in org.apache.hadoop.hbase.regionserver"><code>FlushPolicy</code></a> that only flushes store larger than a given threshold.</div>
@@ -32763,6 +32801,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#flushPerChanges">flushPerChanges</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HTableMultiplexer.html#flushPeriod">flushPeriod</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HTableMultiplexer.html" title="class in org.apache.hadoop.hbase.client">HTableMultiplexer</a></dt>
@@ -32924,6 +32964,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a> - Enum in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
 <div class="block">Reasons we flush.</div>
@@ -35146,6 +35188,12 @@
 <div class="block">It computes average while fetching sum and row count from all the
  corresponding regions.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgRegionSize-java.lang.String-">getAvgRegionSize(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the average region size for this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getAvgRegionSize-java.lang.String-">getAvgRegionSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getAvgStoreFileAge--">getAvgStoreFileAge()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getAvgStoreFileAge--">getAvgStoreFileAge()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></dt>
@@ -35156,6 +35204,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getAvgStoreFileAge--">getAvgStoreFileAge()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getAvgStoreFileAge-java.lang.String-">getAvgStoreFileAge(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getAvgStoreFileAge-java.lang.String-">getAvgStoreFileAge(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getAvgStoreFileAge--">getAvgStoreFileAge()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/fs/HFileSystem.html#getBackingFs--">getBackingFs()</a></span> - Method in class org.apache.hadoop.hbase.fs.<a href="org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a></dt>
@@ -37649,6 +37701,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getCpRequestCount--">getCpRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getCpRequestCount-java.lang.String-">getCpRequestCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html#getCpRequestsCount--">getCpRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerRegionLoad</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getCpRequestsCount--">getCpRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
@@ -37665,8 +37719,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getCpRequestsCount-java.lang.String-">getCpRequestsCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getCpRequestsCount--">getCpRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Region.html#getCpRequestsCount--">getCpRequestsCount()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html#getCpRequestsCount--">getCpRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterStatusModel.Node.Region</a></dt>
@@ -39629,6 +39681,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getFilteredReadRequestCount--">getFilteredReadRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getFilteredReadRequestCount-java.lang.String-">getFilteredReadRequestCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the total number of filtered read requests that have been issued against this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getFilteredReadRequestCount-java.lang.String-">getFilteredReadRequestCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionLoad.html#getFilteredReadRequestsCount--">getFilteredReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -42494,6 +42552,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getMaxStoreFileAge--">getMaxStoreFileAge()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMaxStoreFileAge-java.lang.String-">getMaxStoreFileAge(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMaxStoreFileAge-java.lang.String-">getMaxStoreFileAge(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getMaxStoreFileAge--">getMaxStoreFileAge()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getMaxStoreSeqId--">getMaxStoreSeqId()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
@@ -42703,6 +42765,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getMemStoreSize--">getMemStoreSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoreSize-java.lang.String-">getMemStoreSize(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the memory store size against this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMemStoreSize-java.lang.String-">getMemStoreSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#getMemStoreSize--">getMemStoreSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html" title="class in org.apache.hadoop.hbase.regionserver">NonThreadSafeMemStoreSizing</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getMemStoreSize--">getMemStoreSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></dt>
@@ -42738,14 +42806,6 @@
      Use <a href="org/apache/hadoop/hbase/ServerLoad.html#getRegionMetrics--"><code>ServerLoad.getRegionMetrics()</code></a> instead.</span></div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMemStoresSize-java.lang.String-">getMemStoresSize(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
-<dd>
-<div class="block">Get the memory store size against this table</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMemStoresSize-java.lang.String-">getMemStoresSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getMemStoresSize--">getMemStoresSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/SegmentFactory.html#getMergedMemStoreLAB-org.apache.hadoop.conf.Configuration-java.util.List-">getMergedMemStoreLAB(Configuration, List&lt;ImmutableSegment&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/SegmentFactory.html" title="class in org.apache.hadoop.hbase.regionserver">SegmentFactory</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#getMergedRegion--">getMergedRegion()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MergeTableRegionsProcedure</a></dt>
@@ -43278,6 +43338,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getMinStoreFileAge--">getMinStoreFileAge()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getMinStoreFileAge-java.lang.String-">getMinStoreFileAge(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getMinStoreFileAge-java.lang.String-">getMinStoreFileAge(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getMinStoreFileAge--">getMinStoreFileAge()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#getMinToStart--">getMinToStart()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
@@ -44475,6 +44539,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getNumReferenceFiles--">getNumReferenceFiles()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumReferenceFiles-java.lang.String-">getNumReferenceFiles(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumReferenceFiles-java.lang.String-">getNumReferenceFiles(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getNumReferenceFiles--">getNumReferenceFiles()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html#getNumRegions-int-">getNumRegions(int)</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer.Cluster</a></dt>
@@ -44485,6 +44553,12 @@
 <dd>
 <div class="block">Computes the total number of regions in a table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumRegions-java.lang.String-">getNumRegions(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the number of regions hosted on for this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumRegions-java.lang.String-">getNumRegions(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#getNumRegions--">getNumRegions()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.BalanceInfo.html#getNumRegionsAdded--">getNumRegionsAdded()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.BalanceInfo.html" title="class in org.apache.hadoop.hbase.master.balancer">SimpleLoadBalancer.BalanceInfo</a></dt>
@@ -44530,6 +44604,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getNumStoreFiles--">getNumStoreFiles()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStoreFiles-java.lang.String-">getNumStoreFiles(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the number of store files hosted for this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumStoreFiles-java.lang.String-">getNumStoreFiles(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumStores--">getNumStores()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></dt>
 <dd>
 <div class="block">Get the number of stores hosted on this region server.</div>
@@ -44542,6 +44622,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getNumStores--">getNumStores()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getNumStores-java.lang.String-">getNumStores(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the number of stores hosted on for this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getNumStores-java.lang.String-">getNumStores(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getNumStores--">getNumStores()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/NoopProcedureStore.html#getNumThreads--">getNumThreads()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.<a href="org/apache/hadoop/hbase/procedure2/store/NoopProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store">NoopProcedureStore</a></dt>
@@ -44984,6 +45070,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#getOrCreateTableHistogram-java.lang.String-">getOrCreateTableHistogram(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource(String, MetricsTableWrapperAggregate)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a></dt>
+<dd>
+<div class="block">Returns MetricsTableSource registered for the table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#getOrCreateTableSource-java.lang.String-org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate-">getOrCreateTableSource(String, MetricsTableWrapperAggregate)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor.html#getOrDefault-org.apache.hadoop.hbase.util.Bytes-java.util.function.Function-T-">getOrDefault(Bytes, Function&lt;byte[], T&gt;, T)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html#getOrDefault-org.apache.hadoop.hbase.util.Bytes-java.util.function.Function-T-">getOrDefault(Bytes, Function&lt;String, T&gt;, T)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder.ModifyableTableDescriptor</a></dt>
@@ -46525,6 +46617,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getReadRequestCount--">getReadRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestCount-java.lang.String-">getReadRequestCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the number of read requests that have been issued against this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getReadRequestCount-java.lang.String-">getReadRequestCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerRegionLoad</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionLoad.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></dt>
@@ -46542,14 +46640,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getReadRequestsCount-java.lang.String-">getReadRequestsCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
-<dd>
-<div class="block">Get the number of read requests that have been issued against this table</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getReadRequestsCount-java.lang.String-">getReadRequestsCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Region.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html#getReadRequestsCount--">getReadRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterStatusModel.Node.Region</a></dt>
@@ -51063,6 +51153,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getStoreFileSize--">getStoreFileSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFileSize-java.lang.String-">getStoreFileSize(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the store file size against this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getStoreFileSize-java.lang.String-">getStoreFileSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerLoad.html#getStorefileSizeInMB--">getStorefileSizeInMB()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -51100,14 +51196,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesSize-java.util.function.Predicate-">getStorefilesSize(Predicate&lt;HStoreFile&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getStoreFilesSize-java.lang.String-">getStoreFilesSize(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
-<dd>
-<div class="block">Get the store file size against this table</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getStoreFilesSize-java.lang.String-">getStoreFilesSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getStoreFilesSize--">getStoreFilesSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getStorefilesSize--">getStorefilesSize()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.html#getStoreFilesSize--">getStoreFilesSize()</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotInfo.SnapshotStats</a></dt>
@@ -52178,8 +52266,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getTableSize-java.lang.String-">getTableSize(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getTableSize--">getTableSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html#getTableSnapshotPath-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.TableName-java.lang.String-">getTableSnapshotPath(Path, TableName, String)</a></span> - Method in class org.apache.hadoop.hbase.backup.util.<a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html" title="class in org.apache.hadoop.hbase.backup.util">RestoreTool</a></dt>
 <dd>
 <div class="block">Returns value represent path for path to backup table snapshot directory:
@@ -52956,14 +53042,16 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getTotalRequestCount--">getTotalRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html#getTotalRequestCount--">getTotalRequestCount()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getTotalRequestCount--">getTotalRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getTotalRequestsCount-java.lang.String-">getTotalRequestsCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
 <dd>
-<div class="block">Get the total number of requests that have been issued against this table</div>
+<div class="block">Get the total number of requests that have been issued for this table</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getTotalRequestsCount-java.lang.String-">getTotalRequestsCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getTotalRequestsCount--">getTotalRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#getTotalRITs--">getTotalRITs()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager.RegionInTransitionStat</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#getTotalRITsOverThreshold--">getTotalRITsOverThreshold()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager.RegionInTransitionStat</a></dt>
@@ -54425,6 +54513,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html#getWriteRequestCount--">getWriteRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestCount-java.lang.String-">getWriteRequestCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
+<dd>
+<div class="block">Get the number of write requests that have been issued for this table</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getWriteRequestCount-java.lang.String-">getWriteRequestCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerRegionLoad.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerRegionLoad</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionLoad.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></dt>
@@ -54442,14 +54536,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html#getWriteRequestsCount-java.lang.String-">getWriteRequestsCount(String)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></dt>
-<dd>
-<div class="block">Get the number of write requests that have been issued against this table</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#getWriteRequestsCount-java.lang.String-">getWriteRequestsCount(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Region.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html#getWriteRequestsCount--">getWriteRequestsCount()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.Region.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterStatusModel.Node.Region</a></dt>
@@ -60277,6 +60363,14 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#incrSplitRequest--">incrSplitRequest()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html#incrSplitRequest-java.lang.String-">incrSplitRequest(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitRequest--">incrSplitRequest()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dt>
+<dd>
+<div class="block">Increment number of a requested splits</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#incrSplitRequest--">incrSplitRequest()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#incrSplitSuccess--">incrSplitSuccess()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#incrSplitSuccess--">incrSplitSuccess()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
@@ -60285,6 +60379,14 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#incrSplitSuccess--">incrSplitSuccess()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html#incrSplitSuccess-java.lang.String-">incrSplitSuccess(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html#incrSplitSuccess--">incrSplitSuccess()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></dt>
+<dd>
+<div class="block">Increment number of successful splits</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#incrSplitSuccess--">incrSplitSuccess()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html#incrTimeRanges">incrTimeRanges</a></span> - Variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html#incrUncleanlyClosedWALs--">incrUncleanlyClosedWALs()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationGlobalSourceSource</a></dt>
@@ -62424,6 +62526,8 @@
 <dd>
 <div class="block">Check if this storefile was created by bulk load.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#isBypass--">isBypass()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html#isBypass--">isBypass()</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></dt>
@@ -65839,6 +65943,8 @@
 <dd>
 <div class="block">KeyValue version in FileInfo</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.html#KeyBeforeConcatenatedLists--">KeyBeforeConcatenatedLists()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager.KeyBeforeConcatenatedLists</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.OffheapDecodedExtendedCell.html#keyBuffer">keyBuffer</a></span> - Variable in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.OffheapDecodedExtendedCell.html" title="class in org.apache.hadoop.hbase.io.encoding">BufferedDataBlockEncoder.OffheapDecodedExtendedCell</a></dt>
@@ -70885,20 +70991,32 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactedInputBytes">majorCompactedInputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedInputBytes">majorCompactedInputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactedOutputBytes">majorCompactedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html#majorCompactedOutputBytes">majorCompactedOutputBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></dt>
+<dd>&nbsp;

<TRUNCATED>

[14/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
index 3cfacfc..c081310 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -153,858 +153,901 @@
 <span class="sourceLineNo">145</span>  private boolean lockedWhenLoading = false;<a name="line.145"></a>
 <span class="sourceLineNo">146</span><a name="line.146"></a>
 <span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * The main code of the procedure. It must be idempotent since execute()<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * may be called multiple times in case of machine failure in the middle<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * of the execution.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * @return a set of sub-procedures to run or ourselves if there is more work to do or null if the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * procedure is done.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * @throws ProcedureYieldException the procedure will be added back to the queue and retried later.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @throws ProcedureSuspendedException Signal to the executor that Procedure has suspended itself and<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * has set itself up waiting for an external event to wake it back up again.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  protected abstract Procedure&lt;TEnvironment&gt;[] execute(TEnvironment env)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException;<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * The code to undo what was done by the execute() code.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * It is called when the procedure or one of the sub-procedures failed or an<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * abort was requested. It should cleanup all the resources created by<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * the execute() call. The implementation must be idempotent since rollback()<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * may be called multiple time in case of machine failure in the middle<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * of the execution.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws IOException temporary failure, the rollback will retry later<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected abstract void rollback(TEnvironment env)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    throws IOException, InterruptedException;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  /**<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * The abort() call is asynchronous and each procedure must decide how to deal<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * with it, if they want to be abortable. The simplest implementation<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * is to have an AtomicBoolean set in the abort() method and then the execute()<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * will check if the abort flag is set or not.<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * abort() may be called multiple times from the client, so the implementation<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * must be idempotent.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   *<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * &lt;p&gt;NOTE: abort() is not like Thread.interrupt(). It is just a notification<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * that allows the procedure implementor abort.<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected abstract boolean abort(TEnvironment env);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * The user-level code of the procedure may have some state to<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * persist (e.g. input arguments or current position in the processing state) to<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * be able to resume on failure.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * @param serializer stores the serializable state<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   */<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected abstract void serializeStateData(ProcedureStateSerializer serializer)<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    throws IOException;<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * Called on store load to allow the user to decode the previously serialized<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   * state.<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   * @param serializer contains the serialized state<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  protected abstract void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    throws IOException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The {@link #doAcquireLock(Object, ProcedureStore)} will be split into two steps, first, it will<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * call us to determine whether we need to wait for initialization, second, it will call<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * {@link #acquireLock(Object)} to actually handle the lock for this procedure.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * &lt;p/&gt;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   * This is because that when master restarts, we need to restore the lock state for all the<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * procedures to not break the semantic if {@link #holdLock(Object)} is true. But the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * {@link ProcedureExecutor} will be started before the master finish initialization(as it is part<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * of the initialization!), so we need to split the code into two steps, and when restore, we just<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * restore the lock part and ignore the waitInitialized part. Otherwise there will be dead lock.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @return true means we need to wait until the environment has been initialized, otherwise true.<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected boolean waitInitialized(TEnvironment env) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return false;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * The user should override this method if they need a lock on an Entity. A lock can be anything,<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * and it is up to the implementor. The Procedure Framework will call this method just before it<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * invokes {@link #execute(Object)}. It calls {@link #releaseLock(Object)} after the call to<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * execute.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * &lt;p/&gt;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   * If you need to hold the lock for the life of the Procedure -- i.e. you do not want any other<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Procedure interfering while this Procedure is running, see {@link #holdLock(Object)}.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * &lt;p/&gt;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * Example: in our Master we can execute request in parallel for different tables. We can create<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * t1 and create t2 and these creates can be executed at the same time. Anything else on t1/t2 is<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * queued waiting that specific table create to happen.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * &lt;p/&gt;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * There are 3 LockState:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * &lt;ul&gt;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   * &lt;li&gt;LOCK_ACQUIRED should be returned when the proc has the lock and the proc is ready to<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * execute.&lt;/li&gt;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * &lt;li&gt;LOCK_YIELD_WAIT should be returned when the proc has not the lock and the framework should<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * take care of readding the procedure back to the runnable set for retry&lt;/li&gt;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * &lt;li&gt;LOCK_EVENT_WAIT should be returned when the proc has not the lock and someone will take<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * care of readding the procedure back to the runnable set when the lock is available.&lt;/li&gt;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * &lt;/ul&gt;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * @return the lock state as described above.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  protected LockState acquireLock(TEnvironment env) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    return LockState.LOCK_ACQUIRED;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * The user should override this method, and release lock if necessary.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected void releaseLock(TEnvironment env) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // no-op<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Used to keep the procedure lock even when the procedure is yielding or suspended.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @return true if the procedure should hold on the lock until completionCleanup()<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected boolean holdLock(TEnvironment env) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    return false;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * This is used in conjunction with {@link #holdLock(Object)}. If {@link #holdLock(Object)}<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * returns true, the procedure executor will call acquireLock() once and thereafter<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * not call {@link #releaseLock(Object)} until the Procedure is done (Normally, it calls<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * release/acquire around each invocation of {@link #execute(Object)}.<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @see #holdLock(Object)<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @return true if the procedure has the lock, false otherwise.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   */<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  protected final boolean hasLock() {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    return locked;<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>  /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * Called when the procedure is loaded for replay.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * The procedure implementor may use this method to perform some quick<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * operation before replay.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   * e.g. failing the procedure if the state on replay may be unknown.<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   */<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  protected void beforeReplay(TEnvironment env) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    // no-op<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Called when the procedure is ready to be added to the queue after<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * the loading/replay operation.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected void afterReplay(TEnvironment env) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // no-op<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>  /**<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * Called when the procedure is marked as completed (success or rollback).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * The procedure implementor may use this method to cleanup in-memory states.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * This operation will not be retried on failure. If a procedure took a lock,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it will have been released when this method runs.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  protected void completionCleanup(TEnvironment env) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    // no-op<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>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * By default, the procedure framework/executor will try to run procedures start to finish.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * Return true to make the executor yield between each execution step to<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * give other procedures a chance to run.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   * @return Return true if the executor should yield on completion of an execution step.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   *         Defaults to return false.<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   */<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected boolean isYieldAfterExecutionStep(TEnvironment env) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    return false;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  /**<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   * By default, the executor will keep the procedure result around util<a name="line.318"></a>
-<span class="sourceLineNo">319</span>   * the eviction TTL is expired. The client can cut down the waiting time<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * by requesting that the result is removed from the executor.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * In case of system started procedure, we can force the executor to auto-ack.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * @return true if the executor should wait the client ack for the result.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   *         Defaults to return true.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   */<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected boolean shouldWaitClientAck(TEnvironment env) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    return true;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>  /**<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   * Override this method to provide procedure specific counters for submitted count, failed<a name="line.331"></a>
-<span class="sourceLineNo">332</span>   * count and time histogram.<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * @param env The environment passed to the procedure executor<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @return Container object for procedure related metric<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  protected ProcedureMetrics getProcedureMetrics(TEnvironment env) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return null;<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>
-<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * method to update the metrics at the beginning of the procedure. The default implementation<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * updates submitted counter if {@link #getProcedureMetrics(Object)} returns non-null<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * {@link ProcedureMetrics}.<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
-<span class="sourceLineNo">346</span>  protected void updateMetricsOnSubmit(TEnvironment env) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    if (metrics == null) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      return;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    Counter submittedCounter = metrics.getSubmittedCounter();<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    if (submittedCounter != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      submittedCounter.increment();<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  /**<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * to update metrics at the end of the procedure. If {@link #getProcedureMetrics(Object)} returns<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * non-null {@link ProcedureMetrics}, the default implementation adds runtime of a procedure to a<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * time histogram for successfully completed procedures. Increments failed counter for failed<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * procedures.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * &lt;p/&gt;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack, including<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * successfully finished siblings, this function may get called twice in certain cases for certain<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * procedures. Explore further if this can be called once.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   * @param env The environment passed to the procedure executor<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * @param runtime Runtime of the procedure in milliseconds<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   * @param success true if procedure is completed successfully<a name="line.370"></a>
+<span class="sourceLineNo">148</span>   * Used for force complete of the procedure without<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * actually doing any logic in the procedure.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * If bypass is set to true, when executing it will return null when<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * {@link #doExecute(Object)} to finish the procedure and releasing any locks<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * it may currently hold.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * Bypassing a procedure is not like aborting. Aborting a procedure will trigger<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * a rollback. And since the {@link #abort(Object)} method is overrideable<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * Some procedures may have chosen to ignore the aborting.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   */<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private volatile boolean bypass = false;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public boolean isBypass() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    return bypass;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * set the bypass to true<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * Only called in {@link ProcedureExecutor#bypassProcedure(long, long, boolean)} for now,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * DO NOT use this method alone, since we can't just bypass<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * one single procedure. We need to bypass its ancestor too. So making it package private<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   */<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  void bypass() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    this.bypass = true;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * The main code of the procedure. It must be idempotent since execute()<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   * may be called multiple times in case of machine failure in the middle<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   * of the execution.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * @return a set of sub-procedures to run or ourselves if there is more work to do or null if the<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * procedure is done.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @throws ProcedureYieldException the procedure will be added back to the queue and retried later.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * @throws ProcedureSuspendedException Signal to the executor that Procedure has suspended itself and<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * has set itself up waiting for an external event to wake it back up again.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  protected abstract Procedure&lt;TEnvironment&gt;[] execute(TEnvironment env)<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   * The code to undo what was done by the execute() code.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * It is called when the procedure or one of the sub-procedures failed or an<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * abort was requested. It should cleanup all the resources created by<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * the execute() call. The implementation must be idempotent since rollback()<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * may be called multiple time in case of machine failure in the middle<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * of the execution.<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * @throws IOException temporary failure, the rollback will retry later<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  protected abstract void rollback(TEnvironment env)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    throws IOException, InterruptedException;<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * The abort() call is asynchronous and each procedure must decide how to deal<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * with it, if they want to be abortable. The simplest implementation<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   * is to have an AtomicBoolean set in the abort() method and then the execute()<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   * will check if the abort flag is set or not.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>   * abort() may be called multiple times from the client, so the implementation<a name="line.207"></a>
+<span class="sourceLineNo">208</span>   * must be idempotent.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   *<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * &lt;p&gt;NOTE: abort() is not like Thread.interrupt(). It is just a notification<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   * that allows the procedure implementor abort.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  protected abstract boolean abort(TEnvironment env);<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * The user-level code of the procedure may have some state to<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * persist (e.g. input arguments or current position in the processing state) to<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * be able to resume on failure.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @param serializer stores the serializable state<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  protected abstract void serializeStateData(ProcedureStateSerializer serializer)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    throws IOException;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * Called on store load to allow the user to decode the previously serialized<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * state.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * @param serializer contains the serialized state<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected abstract void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    throws IOException;<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * The {@link #doAcquireLock(Object, ProcedureStore)} will be split into two steps, first, it will<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * call us to determine whether we need to wait for initialization, second, it will call<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * {@link #acquireLock(Object)} to actually handle the lock for this procedure.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * &lt;p/&gt;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   * This is because that when master restarts, we need to restore the lock state for all the<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * procedures to not break the semantic if {@link #holdLock(Object)} is true. But the<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * {@link ProcedureExecutor} will be started before the master finish initialization(as it is part<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * of the initialization!), so we need to split the code into two steps, and when restore, we just<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * restore the lock part and ignore the waitInitialized part. Otherwise there will be dead lock.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * @return true means we need to wait until the environment has been initialized, otherwise true.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  protected boolean waitInitialized(TEnvironment env) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    return false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  /**<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   * The user should override this method if they need a lock on an Entity. A lock can be anything,<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * and it is up to the implementor. The Procedure Framework will call this method just before it<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * invokes {@link #execute(Object)}. It calls {@link #releaseLock(Object)} after the call to<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * execute.<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p/&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * If you need to hold the lock for the life of the Procedure -- i.e. you do not want any other<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * Procedure interfering while this Procedure is running, see {@link #holdLock(Object)}.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * &lt;p/&gt;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * Example: in our Master we can execute request in parallel for different tables. We can create<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * t1 and create t2 and these creates can be executed at the same time. Anything else on t1/t2 is<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * queued waiting that specific table create to happen.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;p/&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * There are 3 LockState:<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * &lt;ul&gt;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * &lt;li&gt;LOCK_ACQUIRED should be returned when the proc has the lock and the proc is ready to<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * execute.&lt;/li&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;LOCK_YIELD_WAIT should be returned when the proc has not the lock and the framework should<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * take care of readding the procedure back to the runnable set for retry&lt;/li&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;li&gt;LOCK_EVENT_WAIT should be returned when the proc has not the lock and someone will take<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * care of readding the procedure back to the runnable set when the lock is available.&lt;/li&gt;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * @return the lock state as described above.<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   */<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  protected LockState acquireLock(TEnvironment env) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    return LockState.LOCK_ACQUIRED;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<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>   * The user should override this method, and release lock if necessary.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  protected void releaseLock(TEnvironment env) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    // no-op<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<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>   * Used to keep the procedure lock even when the procedure is yielding or suspended.<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @return true if the procedure should hold on the lock until completionCleanup()<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  protected boolean holdLock(TEnvironment env) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    return false;<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>  /**<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   * This is used in conjunction with {@link #holdLock(Object)}. If {@link #holdLock(Object)}<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * returns true, the procedure executor will call acquireLock() once and thereafter<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * not call {@link #releaseLock(Object)} until the Procedure is done (Normally, it calls<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * release/acquire around each invocation of {@link #execute(Object)}.<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @see #holdLock(Object)<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @return true if the procedure has the lock, false otherwise.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  protected final boolean hasLock() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    return locked;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>  }<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>  /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   * Called when the procedure is loaded for replay.<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   * The procedure implementor may use this method to perform some quick<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * operation before replay.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   * e.g. failing the procedure if the state on replay may be unknown.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  protected void beforeReplay(TEnvironment env) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    // no-op<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>   * Called when the procedure is ready to be added to the queue after<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   * the loading/replay operation.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>   */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  protected void afterReplay(TEnvironment env) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // no-op<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  /**<a name="line.321"></a>
+<span class="sourceLineNo">322</span>   * Called when the procedure is marked as completed (success or rollback).<a name="line.322"></a>
+<span class="sourceLineNo">323</span>   * The procedure implementor may use this method to cleanup in-memory states.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   * This operation will not be retried on failure. If a procedure took a lock,<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * it will have been released when this method runs.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  protected void completionCleanup(TEnvironment env) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    // no-op<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>  /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>   * By default, the procedure framework/executor will try to run procedures start to finish.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>   * Return true to make the executor yield between each execution step to<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * give other procedures a chance to run.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   * @return Return true if the executor should yield on completion of an execution step.<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   *         Defaults to return false.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  protected boolean isYieldAfterExecutionStep(TEnvironment env) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    return false;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>  /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * By default, the executor will keep the procedure result around util<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   * the eviction TTL is expired. The client can cut down the waiting time<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * by requesting that the result is removed from the executor.<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * In case of system started procedure, we can force the executor to auto-ack.<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   * @return true if the executor should wait the client ack for the result.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   *         Defaults to return true.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  protected boolean shouldWaitClientAck(TEnvironment env) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    return true;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>  /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   * Override this method to provide procedure specific counters for submitted count, failed<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * count and time histogram.<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * @param env The environment passed to the procedure executor<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * @return Container object for procedure related metric<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  protected ProcedureMetrics getProcedureMetrics(TEnvironment env) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return null;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  }<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>  /**<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * method to update the metrics at the beginning of the procedure. The default implementation<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * updates submitted counter if {@link #getProcedureMetrics(Object)} returns non-null<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   * {@link ProcedureMetrics}.<a name="line.370"></a>
 <span class="sourceLineNo">371</span>   */<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  protected void updateMetricsOnFinish(TEnvironment env, long runtime, boolean success) {<a name="line.372"></a>
+<span class="sourceLineNo">372</span>  protected void updateMetricsOnSubmit(TEnvironment env) {<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.373"></a>
 <span class="sourceLineNo">374</span>    if (metrics == null) {<a name="line.374"></a>
 <span class="sourceLineNo">375</span>      return;<a name="line.375"></a>
 <span class="sourceLineNo">376</span>    }<a name="line.376"></a>
 <span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if (success) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Histogram timeHisto = metrics.getTimeHisto();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      if (timeHisto != null) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        timeHisto.update(runtime);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    } else {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      Counter failedCounter = metrics.getFailedCounter();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      if (failedCounter != null) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        failedCounter.increment();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public String toString() {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // Return the simple String presentation of the procedure.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    return toStringSimpleSB().toString();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  /**<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * Build the StringBuilder for the simple form of procedure string.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * @return the StringBuilder<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  protected StringBuilder toStringSimpleSB() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    final StringBuilder sb = new StringBuilder();<a name="line.402"></a>
+<span class="sourceLineNo">378</span>    Counter submittedCounter = metrics.getSubmittedCounter();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    if (submittedCounter != null) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      submittedCounter.increment();<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   * to update metrics at the end of the procedure. If {@link #getProcedureMetrics(Object)} returns<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   * non-null {@link ProcedureMetrics}, the default implementation adds runtime of a procedure to a<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   * time histogram for successfully completed procedures. Increments failed counter for failed<a name="line.388"></a>
+<span class="sourceLineNo">389</span>   * procedures.<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   * &lt;p/&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack, including<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * successfully finished siblings, this function may get called twice in certain cases for certain<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * procedures. Explore further if this can be called once.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * @param env The environment passed to the procedure executor<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @param runtime Runtime of the procedure in milliseconds<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param success true if procedure is completed successfully<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  protected void updateMetricsOnFinish(TEnvironment env, long runtime, boolean success) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    if (metrics == null) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
 <span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>    sb.append("pid=");<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    sb.append(getProcId());<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    if (hasParent()) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      sb.append(", ppid=");<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      sb.append(getParentProcId());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>     * TODO<a name="line.413"></a>
-<span class="sourceLineNo">414</span>     * Enable later when this is being used.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>     * Currently owner not used.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    if (hasOwner()) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      sb.append(", owner=");<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      sb.append(getOwner());<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }*/<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    sb.append(", state="); // pState for Procedure State as opposed to any other kind.<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    toStringState(sb);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    sb.append(", hasLock=").append(locked);<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    if (hasException()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      sb.append(", exception=" + getException());<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
+<span class="sourceLineNo">404</span>    if (success) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      Histogram timeHisto = metrics.getTimeHisto();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      if (timeHisto != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        timeHisto.update(runtime);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    } else {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      Counter failedCounter = metrics.getFailedCounter();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      if (failedCounter != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        failedCounter.increment();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  public String toString() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    // Return the simple String presentation of the procedure.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    return toStringSimpleSB().toString();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>  /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   * Build the StringBuilder for the simple form of procedure string.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>   * @return the StringBuilder<a name="line.425"></a>
+<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>  protected StringBuilder toStringSimpleSB() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    final StringBuilder sb = new StringBuilder();<a name="line.428"></a>
 <span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>    sb.append("; ");<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    toStringClassDetails(sb);<a name="line.431"></a>
+<span class="sourceLineNo">430</span>    sb.append("pid=");<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    sb.append(getProcId());<a name="line.431"></a>
 <span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return sb;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Extend the toString() information with more procedure details<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  public String toStringDetails() {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>    sb.append(" submittedTime=");<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    sb.append(getSubmittedTime());<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    sb.append(", lastUpdate=");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    sb.append(getLastUpdate());<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    final int[] stackIndices = getStackIndexes();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    if (stackIndices != null) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      sb.append("\n");<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      sb.append("stackIndexes=");<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      sb.append(Arrays.toString(stackIndices));<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return sb.toString();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>  }<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  protected String toStringClass() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    StringBuilder sb = new StringBuilder();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    toStringClassDetails(sb);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return sb.toString();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Called from {@link #toString()} when interpolating {@link Procedure} State. Allows decorating<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * generic Procedure State with Procedure particulars.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @param builder Append current {@link ProcedureState}<a name="line.467"></a>
+<span class="sourceLineNo">433</span>    if (hasParent()) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      sb.append(", ppid=");<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      sb.append(getParentProcId());<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>    /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     * TODO<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     * Enable later when this is being used.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     * Currently owner not used.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (hasOwner()) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      sb.append(", owner=");<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      sb.append(getOwner());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    }*/<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>    sb.append(", state="); // pState for Procedure State as opposed to any other kind.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    toStringState(sb);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>    sb.append(", hasLock=").append(locked);<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>    if (bypass) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      sb.append(", bypass=").append(bypass);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>    if (hasException()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      sb.append(", exception=" + getException());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>    sb.append("; ");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    toStringClassDetails(sb);<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return sb;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>  /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * Extend the toString() information with more procedure details<a name="line.467"></a>
 <span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  protected void toStringState(StringBuilder builder) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    builder.append(getState());<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  }<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>  /**<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * Extend the toString() information with the procedure details<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * e.g. className and parameters<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * @param builder the string builder to use to append the proc specific information<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    builder.append(getClass().getName());<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  // ==========================================================================<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  //  Those fields are unchanged after initialization.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  //<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  //  Each procedure will get created from the user or during<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  //  to the executor. these fields will never be changed after initialization<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  // ==========================================================================<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public long getProcId() {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return procId;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  public boolean hasParent() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    return parentProcId != NO_PROC_ID;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  public long getParentProcId() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    return parentProcId;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>  public long getRootProcId() {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    return rootProcId;<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  public String getProcName() {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    return toStringClass();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public NonceKey getNonceKey() {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return nonceKey;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  public long getSubmittedTime() {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    return submittedTime;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public String getOwner() {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    return owner;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public boolean hasOwner() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    return owner != null;<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  @VisibleForTesting<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  protected void setProcId(long procId) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.procId = procId;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    setState(ProcedureState.RUNNABLE);<a name="line.532"></a>
+<span class="sourceLineNo">469</span>  public String toStringDetails() {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>    sb.append(" submittedTime=");<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    sb.append(getSubmittedTime());<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    sb.append(", lastUpdate=");<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    sb.append(getLastUpdate());<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    final int[] stackIndices = getStackIndexes();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (stackIndices != null) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      sb.append("\n");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      sb.append("stackIndexes=");<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      sb.append(Arrays.toString(stackIndices));<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>    return sb.toString();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  protected String toStringClass() {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    StringBuilder sb = new StringBuilder();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    toStringClassDetails(sb);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    return sb.toString();<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>  /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * Called from {@link #toString()} when interpolating {@link Procedure} State. Allows decorating<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   * generic Procedure State with Procedure particulars.<a name="line.496"></a>
+<span class="sourceLineNo">497</span>   * @param builder Append current {@link ProcedureState}<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   */<a name="line.498"></a>
+<span class="sourceLineNo">499</span>  protected void toStringState(StringBuilder builder) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    builder.append(getState());<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>  /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span>   * Extend the toString() information with the procedure details<a name="line.504"></a>
+<span class="sourceLineNo">505</span>   * e.g. className and parameters<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   * @param builder the string builder to use to append the proc specific information<a name="line.506"></a>
+<span class="sourceLineNo">507</span>   */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    builder.append(getClass().getName());<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  // ==========================================================================<a name="line.512"></a>
+<span class="sourceLineNo">513</span>  //  Those fields are unchanged after initialization.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>  //<a name="line.514"></a>
+<span class="sourceLineNo">515</span>  //  Each procedure will get created from the user or during<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.516"></a>
+<span class="sourceLineNo">517</span>  //  to the executor. these fields will never be changed after initialization<a name="line.517"></a>
+<span class="sourceLineNo">518</span>  // ==========================================================================<a name="line.518"></a>
+<span class="sourceLineNo">519</span>  public long getProcId() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    return procId;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  public boolean hasParent() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    return parentProcId != NO_PROC_ID;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  public long getParentProcId() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    return parentProcId;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  public long getRootProcId() {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    return rootProcId;<a name="line.532"></a>
 <span class="sourceLineNo">533</span>  }<a name="line.533"></a>
 <span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span>  /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  protected void setParentProcId(long parentProcId) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.parentProcId = parentProcId;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  protected void setRootProcId(long rootProcId) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.rootProcId = rootProcId;<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  }<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>  /**<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   */<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  @VisibleForTesting<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  protected void setNonceKey(NonceKey nonceKey) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.nonceKey = nonceKey;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>  }<a name="line.552"></a>
-<span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span>  @VisibleForTesting<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  public void setOwner(String owner) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public void setOwner(User owner) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    assert owner != null : "expected owner to be not null";<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    setOwner(owner.getShortName());<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * Called on store load to initialize the Procedure internals after<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * the creation/deserialization.<a name="line.566"></a>
+<span class="sourceLineNo">535</span>  public String getProcName() {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return toStringClass();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>  public NonceKey getNonceKey() {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    return nonceKey;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>  public long getSubmittedTime() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    return submittedTime;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>  public String getOwner() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return owner;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public boolean hasOwner() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return owner != null;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  @VisibleForTesting<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  protected void setProcId(long procId) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    this.procId = procId;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    setState(ProcedureState.RUNNABLE);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.566"></a>
 <span class="sourceLineNo">567</span>   */<a name="line.567"></a>
-<span class="sourceLineNo">568</span>  protected void setSubmittedTime(long submittedTime) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    this.submittedTime = submittedTime;<a name="line.569"></a>
+<span class="sourceLineNo">568</span>  protected void setParentProcId(long parentProcId) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    this.parentProcId = parentProcId;<a name="line.569"></a>
 <span class="sourceLineNo">570</span>  }<a name="line.570"></a>
 <span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>  // ==========================================================================<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  //  runtime state - timeout related<a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // ==========================================================================<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  /**<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   * @param timeout timeout interval in msec<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   */<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  protected void setTimeout(int timeout) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    this.timeout = timeout;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>  }<a name="line.580"></a>
-<span class="sourceLineNo">581</span><a name="line.581"></a>
-<span class="sourceLineNo">582</span>  public boolean hasTimeout() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return timeout != NO_TIMEOUT;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>  }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>  /**<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   * @return the timeout in msec<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  public int getTimeout() {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    return timeout;<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * Called on store load to initialize the Procedure internals after<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * the creation/deserialization.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   */<a name="line.596"></a>
-<span class="sourceLineNo">597</span>  protected void setLastUpdate(long lastUpdate) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    this.lastUpdate = lastUpdate;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>  }<a name="line.599"></a>
-<span class="sourceLineNo">600</span><a name="line.600"></a>
-<span class="sourceLineNo">601</span>  /**<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  protected void updateTimestamp() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>  }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>  public long getLastUpdate() {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    return lastUpdate;<a name="line.609"></a>
+<span class="sourceLineNo">572</span>  protected void setRootProcId(long rootProcId) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    this.rootProcId = rootProcId;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.577"></a>
+<span class="sourceLineNo">578</span>   */<a name="line.578"></a>
+<span class="sourceLineNo">579</span>  @VisibleForTesting<a name="line.579"></a>
+<span class="sourceLineNo">580</span>  protected void setNonceKey(NonceKey nonceKey) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    this.nonceKey = nonceKey;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  @VisibleForTesting<a name="line.584"></a>
+<span class="sourceLineNo">585</span>  public void setOwner(String owner) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>  public void setOwner(User owner) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    assert owner != null : "expected owner to be not null";<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    setOwner(owner.getShortName());<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * Called on store load to initialize the Procedure internals after<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * the creation/deserialization.<a name="line.596"></a>
+<span class="sourceLineNo">597</span>   */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  protected void setSubmittedTime(long submittedTime) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    this.submittedTime = submittedTime;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>  }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>  // ==========================================================================<a name="line.602"></a>
+<span class="sourceLineNo">603</span>  //  runtime state - timeout related<a name="line.603"></a>
+<span class="sourceLineNo">604</span>  // ==========================================================================<a name="line.604"></a>
+<span class="sourceLineNo">605</span>  /**<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param timeout timeout interval in msec<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   */<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  protected void setTimeout(int timeout) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    this.timeout = timeout;<a name="line.609"></a>
 <span class="sourceLineNo">610</span>  }<a name="line.610"></a>
 <span class="sourceLineNo">611</span><a name="line.611"></a>
-<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * Timeout of the next timeout.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * the procedure is in the waiting queue.<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * @return the timestamp of the next timeout.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   */<a name="line.617"></a>
-<span class="sourceLine

<TRUNCATED>

[15/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
index 3cfacfc..c081310 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
@@ -153,858 +153,901 @@
 <span class="sourceLineNo">145</span>  private boolean lockedWhenLoading = false;<a name="line.145"></a>
 <span class="sourceLineNo">146</span><a name="line.146"></a>
 <span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * The main code of the procedure. It must be idempotent since execute()<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * may be called multiple times in case of machine failure in the middle<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * of the execution.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * @return a set of sub-procedures to run or ourselves if there is more work to do or null if the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * procedure is done.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * @throws ProcedureYieldException the procedure will be added back to the queue and retried later.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @throws ProcedureSuspendedException Signal to the executor that Procedure has suspended itself and<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * has set itself up waiting for an external event to wake it back up again.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  protected abstract Procedure&lt;TEnvironment&gt;[] execute(TEnvironment env)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException;<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * The code to undo what was done by the execute() code.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * It is called when the procedure or one of the sub-procedures failed or an<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * abort was requested. It should cleanup all the resources created by<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * the execute() call. The implementation must be idempotent since rollback()<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * may be called multiple time in case of machine failure in the middle<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * of the execution.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws IOException temporary failure, the rollback will retry later<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected abstract void rollback(TEnvironment env)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    throws IOException, InterruptedException;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  /**<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * The abort() call is asynchronous and each procedure must decide how to deal<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * with it, if they want to be abortable. The simplest implementation<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * is to have an AtomicBoolean set in the abort() method and then the execute()<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * will check if the abort flag is set or not.<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * abort() may be called multiple times from the client, so the implementation<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * must be idempotent.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   *<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * &lt;p&gt;NOTE: abort() is not like Thread.interrupt(). It is just a notification<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * that allows the procedure implementor abort.<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected abstract boolean abort(TEnvironment env);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * The user-level code of the procedure may have some state to<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * persist (e.g. input arguments or current position in the processing state) to<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * be able to resume on failure.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * @param serializer stores the serializable state<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   */<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected abstract void serializeStateData(ProcedureStateSerializer serializer)<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    throws IOException;<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * Called on store load to allow the user to decode the previously serialized<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   * state.<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   * @param serializer contains the serialized state<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  protected abstract void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    throws IOException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The {@link #doAcquireLock(Object, ProcedureStore)} will be split into two steps, first, it will<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * call us to determine whether we need to wait for initialization, second, it will call<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * {@link #acquireLock(Object)} to actually handle the lock for this procedure.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * &lt;p/&gt;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   * This is because that when master restarts, we need to restore the lock state for all the<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * procedures to not break the semantic if {@link #holdLock(Object)} is true. But the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * {@link ProcedureExecutor} will be started before the master finish initialization(as it is part<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * of the initialization!), so we need to split the code into two steps, and when restore, we just<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * restore the lock part and ignore the waitInitialized part. Otherwise there will be dead lock.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @return true means we need to wait until the environment has been initialized, otherwise true.<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected boolean waitInitialized(TEnvironment env) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return false;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * The user should override this method if they need a lock on an Entity. A lock can be anything,<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * and it is up to the implementor. The Procedure Framework will call this method just before it<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * invokes {@link #execute(Object)}. It calls {@link #releaseLock(Object)} after the call to<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * execute.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * &lt;p/&gt;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   * If you need to hold the lock for the life of the Procedure -- i.e. you do not want any other<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Procedure interfering while this Procedure is running, see {@link #holdLock(Object)}.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * &lt;p/&gt;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * Example: in our Master we can execute request in parallel for different tables. We can create<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * t1 and create t2 and these creates can be executed at the same time. Anything else on t1/t2 is<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * queued waiting that specific table create to happen.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * &lt;p/&gt;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * There are 3 LockState:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * &lt;ul&gt;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   * &lt;li&gt;LOCK_ACQUIRED should be returned when the proc has the lock and the proc is ready to<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * execute.&lt;/li&gt;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * &lt;li&gt;LOCK_YIELD_WAIT should be returned when the proc has not the lock and the framework should<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * take care of readding the procedure back to the runnable set for retry&lt;/li&gt;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * &lt;li&gt;LOCK_EVENT_WAIT should be returned when the proc has not the lock and someone will take<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * care of readding the procedure back to the runnable set when the lock is available.&lt;/li&gt;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * &lt;/ul&gt;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * @return the lock state as described above.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  protected LockState acquireLock(TEnvironment env) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    return LockState.LOCK_ACQUIRED;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * The user should override this method, and release lock if necessary.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected void releaseLock(TEnvironment env) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // no-op<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Used to keep the procedure lock even when the procedure is yielding or suspended.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @return true if the procedure should hold on the lock until completionCleanup()<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected boolean holdLock(TEnvironment env) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    return false;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * This is used in conjunction with {@link #holdLock(Object)}. If {@link #holdLock(Object)}<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * returns true, the procedure executor will call acquireLock() once and thereafter<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * not call {@link #releaseLock(Object)} until the Procedure is done (Normally, it calls<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * release/acquire around each invocation of {@link #execute(Object)}.<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @see #holdLock(Object)<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @return true if the procedure has the lock, false otherwise.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   */<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  protected final boolean hasLock() {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    return locked;<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>  /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * Called when the procedure is loaded for replay.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * The procedure implementor may use this method to perform some quick<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * operation before replay.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   * e.g. failing the procedure if the state on replay may be unknown.<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   */<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  protected void beforeReplay(TEnvironment env) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    // no-op<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Called when the procedure is ready to be added to the queue after<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * the loading/replay operation.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected void afterReplay(TEnvironment env) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // no-op<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>  /**<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * Called when the procedure is marked as completed (success or rollback).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * The procedure implementor may use this method to cleanup in-memory states.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * This operation will not be retried on failure. If a procedure took a lock,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it will have been released when this method runs.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  protected void completionCleanup(TEnvironment env) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    // no-op<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>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * By default, the procedure framework/executor will try to run procedures start to finish.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * Return true to make the executor yield between each execution step to<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * give other procedures a chance to run.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   * @return Return true if the executor should yield on completion of an execution step.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   *         Defaults to return false.<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   */<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected boolean isYieldAfterExecutionStep(TEnvironment env) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    return false;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  /**<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   * By default, the executor will keep the procedure result around util<a name="line.318"></a>
-<span class="sourceLineNo">319</span>   * the eviction TTL is expired. The client can cut down the waiting time<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * by requesting that the result is removed from the executor.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * In case of system started procedure, we can force the executor to auto-ack.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * @return true if the executor should wait the client ack for the result.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   *         Defaults to return true.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   */<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected boolean shouldWaitClientAck(TEnvironment env) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    return true;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>  /**<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   * Override this method to provide procedure specific counters for submitted count, failed<a name="line.331"></a>
-<span class="sourceLineNo">332</span>   * count and time histogram.<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * @param env The environment passed to the procedure executor<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @return Container object for procedure related metric<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  protected ProcedureMetrics getProcedureMetrics(TEnvironment env) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return null;<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>
-<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * method to update the metrics at the beginning of the procedure. The default implementation<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * updates submitted counter if {@link #getProcedureMetrics(Object)} returns non-null<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * {@link ProcedureMetrics}.<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
-<span class="sourceLineNo">346</span>  protected void updateMetricsOnSubmit(TEnvironment env) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    if (metrics == null) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      return;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    Counter submittedCounter = metrics.getSubmittedCounter();<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    if (submittedCounter != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      submittedCounter.increment();<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  /**<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * to update metrics at the end of the procedure. If {@link #getProcedureMetrics(Object)} returns<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * non-null {@link ProcedureMetrics}, the default implementation adds runtime of a procedure to a<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * time histogram for successfully completed procedures. Increments failed counter for failed<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * procedures.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * &lt;p/&gt;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack, including<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * successfully finished siblings, this function may get called twice in certain cases for certain<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * procedures. Explore further if this can be called once.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   * @param env The environment passed to the procedure executor<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * @param runtime Runtime of the procedure in milliseconds<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   * @param success true if procedure is completed successfully<a name="line.370"></a>
+<span class="sourceLineNo">148</span>   * Used for force complete of the procedure without<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * actually doing any logic in the procedure.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * If bypass is set to true, when executing it will return null when<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * {@link #doExecute(Object)} to finish the procedure and releasing any locks<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * it may currently hold.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * Bypassing a procedure is not like aborting. Aborting a procedure will trigger<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * a rollback. And since the {@link #abort(Object)} method is overrideable<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * Some procedures may have chosen to ignore the aborting.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   */<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private volatile boolean bypass = false;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public boolean isBypass() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    return bypass;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * set the bypass to true<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * Only called in {@link ProcedureExecutor#bypassProcedure(long, long, boolean)} for now,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * DO NOT use this method alone, since we can't just bypass<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * one single procedure. We need to bypass its ancestor too. So making it package private<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   */<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  void bypass() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    this.bypass = true;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * The main code of the procedure. It must be idempotent since execute()<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   * may be called multiple times in case of machine failure in the middle<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   * of the execution.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * @return a set of sub-procedures to run or ourselves if there is more work to do or null if the<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * procedure is done.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @throws ProcedureYieldException the procedure will be added back to the queue and retried later.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * @throws ProcedureSuspendedException Signal to the executor that Procedure has suspended itself and<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * has set itself up waiting for an external event to wake it back up again.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  protected abstract Procedure&lt;TEnvironment&gt;[] execute(TEnvironment env)<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   * The code to undo what was done by the execute() code.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * It is called when the procedure or one of the sub-procedures failed or an<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * abort was requested. It should cleanup all the resources created by<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * the execute() call. The implementation must be idempotent since rollback()<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * may be called multiple time in case of machine failure in the middle<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * of the execution.<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * @throws IOException temporary failure, the rollback will retry later<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * @throws InterruptedException the procedure will be added back to the queue and retried later<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  protected abstract void rollback(TEnvironment env)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    throws IOException, InterruptedException;<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * The abort() call is asynchronous and each procedure must decide how to deal<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * with it, if they want to be abortable. The simplest implementation<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   * is to have an AtomicBoolean set in the abort() method and then the execute()<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   * will check if the abort flag is set or not.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>   * abort() may be called multiple times from the client, so the implementation<a name="line.207"></a>
+<span class="sourceLineNo">208</span>   * must be idempotent.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   *<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * &lt;p&gt;NOTE: abort() is not like Thread.interrupt(). It is just a notification<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   * that allows the procedure implementor abort.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  protected abstract boolean abort(TEnvironment env);<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * The user-level code of the procedure may have some state to<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * persist (e.g. input arguments or current position in the processing state) to<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * be able to resume on failure.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @param serializer stores the serializable state<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  protected abstract void serializeStateData(ProcedureStateSerializer serializer)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    throws IOException;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * Called on store load to allow the user to decode the previously serialized<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * state.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * @param serializer contains the serialized state<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected abstract void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    throws IOException;<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * The {@link #doAcquireLock(Object, ProcedureStore)} will be split into two steps, first, it will<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * call us to determine whether we need to wait for initialization, second, it will call<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * {@link #acquireLock(Object)} to actually handle the lock for this procedure.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * &lt;p/&gt;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   * This is because that when master restarts, we need to restore the lock state for all the<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * procedures to not break the semantic if {@link #holdLock(Object)} is true. But the<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * {@link ProcedureExecutor} will be started before the master finish initialization(as it is part<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * of the initialization!), so we need to split the code into two steps, and when restore, we just<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * restore the lock part and ignore the waitInitialized part. Otherwise there will be dead lock.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * @return true means we need to wait until the environment has been initialized, otherwise true.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  protected boolean waitInitialized(TEnvironment env) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    return false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  /**<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   * The user should override this method if they need a lock on an Entity. A lock can be anything,<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * and it is up to the implementor. The Procedure Framework will call this method just before it<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * invokes {@link #execute(Object)}. It calls {@link #releaseLock(Object)} after the call to<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * execute.<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p/&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * If you need to hold the lock for the life of the Procedure -- i.e. you do not want any other<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * Procedure interfering while this Procedure is running, see {@link #holdLock(Object)}.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * &lt;p/&gt;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * Example: in our Master we can execute request in parallel for different tables. We can create<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * t1 and create t2 and these creates can be executed at the same time. Anything else on t1/t2 is<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * queued waiting that specific table create to happen.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;p/&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * There are 3 LockState:<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * &lt;ul&gt;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * &lt;li&gt;LOCK_ACQUIRED should be returned when the proc has the lock and the proc is ready to<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * execute.&lt;/li&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;LOCK_YIELD_WAIT should be returned when the proc has not the lock and the framework should<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * take care of readding the procedure back to the runnable set for retry&lt;/li&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;li&gt;LOCK_EVENT_WAIT should be returned when the proc has not the lock and someone will take<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * care of readding the procedure back to the runnable set when the lock is available.&lt;/li&gt;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * @return the lock state as described above.<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   */<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  protected LockState acquireLock(TEnvironment env) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    return LockState.LOCK_ACQUIRED;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<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>   * The user should override this method, and release lock if necessary.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  protected void releaseLock(TEnvironment env) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    // no-op<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<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>   * Used to keep the procedure lock even when the procedure is yielding or suspended.<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @return true if the procedure should hold on the lock until completionCleanup()<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  protected boolean holdLock(TEnvironment env) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    return false;<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>  /**<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   * This is used in conjunction with {@link #holdLock(Object)}. If {@link #holdLock(Object)}<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * returns true, the procedure executor will call acquireLock() once and thereafter<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * not call {@link #releaseLock(Object)} until the Procedure is done (Normally, it calls<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * release/acquire around each invocation of {@link #execute(Object)}.<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @see #holdLock(Object)<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @return true if the procedure has the lock, false otherwise.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  protected final boolean hasLock() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    return locked;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>  }<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>  /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   * Called when the procedure is loaded for replay.<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   * The procedure implementor may use this method to perform some quick<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * operation before replay.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   * e.g. failing the procedure if the state on replay may be unknown.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  protected void beforeReplay(TEnvironment env) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    // no-op<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>   * Called when the procedure is ready to be added to the queue after<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   * the loading/replay operation.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>   */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  protected void afterReplay(TEnvironment env) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // no-op<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  /**<a name="line.321"></a>
+<span class="sourceLineNo">322</span>   * Called when the procedure is marked as completed (success or rollback).<a name="line.322"></a>
+<span class="sourceLineNo">323</span>   * The procedure implementor may use this method to cleanup in-memory states.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   * This operation will not be retried on failure. If a procedure took a lock,<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * it will have been released when this method runs.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  protected void completionCleanup(TEnvironment env) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    // no-op<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>  /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>   * By default, the procedure framework/executor will try to run procedures start to finish.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>   * Return true to make the executor yield between each execution step to<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * give other procedures a chance to run.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   * @return Return true if the executor should yield on completion of an execution step.<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   *         Defaults to return false.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  protected boolean isYieldAfterExecutionStep(TEnvironment env) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    return false;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>  /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * By default, the executor will keep the procedure result around util<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   * the eviction TTL is expired. The client can cut down the waiting time<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * by requesting that the result is removed from the executor.<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * In case of system started procedure, we can force the executor to auto-ack.<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * @param env the environment passed to the ProcedureExecutor<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   * @return true if the executor should wait the client ack for the result.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   *         Defaults to return true.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  protected boolean shouldWaitClientAck(TEnvironment env) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    return true;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>  /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   * Override this method to provide procedure specific counters for submitted count, failed<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * count and time histogram.<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * @param env The environment passed to the procedure executor<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * @return Container object for procedure related metric<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  protected ProcedureMetrics getProcedureMetrics(TEnvironment env) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return null;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  }<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>  /**<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * method to update the metrics at the beginning of the procedure. The default implementation<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * updates submitted counter if {@link #getProcedureMetrics(Object)} returns non-null<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   * {@link ProcedureMetrics}.<a name="line.370"></a>
 <span class="sourceLineNo">371</span>   */<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  protected void updateMetricsOnFinish(TEnvironment env, long runtime, boolean success) {<a name="line.372"></a>
+<span class="sourceLineNo">372</span>  protected void updateMetricsOnSubmit(TEnvironment env) {<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.373"></a>
 <span class="sourceLineNo">374</span>    if (metrics == null) {<a name="line.374"></a>
 <span class="sourceLineNo">375</span>      return;<a name="line.375"></a>
 <span class="sourceLineNo">376</span>    }<a name="line.376"></a>
 <span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if (success) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Histogram timeHisto = metrics.getTimeHisto();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      if (timeHisto != null) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        timeHisto.update(runtime);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    } else {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      Counter failedCounter = metrics.getFailedCounter();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      if (failedCounter != null) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        failedCounter.increment();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public String toString() {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // Return the simple String presentation of the procedure.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    return toStringSimpleSB().toString();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  /**<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * Build the StringBuilder for the simple form of procedure string.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * @return the StringBuilder<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  protected StringBuilder toStringSimpleSB() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    final StringBuilder sb = new StringBuilder();<a name="line.402"></a>
+<span class="sourceLineNo">378</span>    Counter submittedCounter = metrics.getSubmittedCounter();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    if (submittedCounter != null) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      submittedCounter.increment();<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   * to update metrics at the end of the procedure. If {@link #getProcedureMetrics(Object)} returns<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   * non-null {@link ProcedureMetrics}, the default implementation adds runtime of a procedure to a<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   * time histogram for successfully completed procedures. Increments failed counter for failed<a name="line.388"></a>
+<span class="sourceLineNo">389</span>   * procedures.<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   * &lt;p/&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack, including<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * successfully finished siblings, this function may get called twice in certain cases for certain<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * procedures. Explore further if this can be called once.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * @param env The environment passed to the procedure executor<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @param runtime Runtime of the procedure in milliseconds<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param success true if procedure is completed successfully<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  protected void updateMetricsOnFinish(TEnvironment env, long runtime, boolean success) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ProcedureMetrics metrics = getProcedureMetrics(env);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    if (metrics == null) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
 <span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>    sb.append("pid=");<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    sb.append(getProcId());<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    if (hasParent()) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      sb.append(", ppid=");<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      sb.append(getParentProcId());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>     * TODO<a name="line.413"></a>
-<span class="sourceLineNo">414</span>     * Enable later when this is being used.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>     * Currently owner not used.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    if (hasOwner()) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      sb.append(", owner=");<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      sb.append(getOwner());<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }*/<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    sb.append(", state="); // pState for Procedure State as opposed to any other kind.<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    toStringState(sb);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    sb.append(", hasLock=").append(locked);<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    if (hasException()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      sb.append(", exception=" + getException());<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
+<span class="sourceLineNo">404</span>    if (success) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      Histogram timeHisto = metrics.getTimeHisto();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      if (timeHisto != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        timeHisto.update(runtime);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    } else {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      Counter failedCounter = metrics.getFailedCounter();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      if (failedCounter != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        failedCounter.increment();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  public String toString() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    // Return the simple String presentation of the procedure.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    return toStringSimpleSB().toString();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>  /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   * Build the StringBuilder for the simple form of procedure string.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>   * @return the StringBuilder<a name="line.425"></a>
+<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>  protected StringBuilder toStringSimpleSB() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    final StringBuilder sb = new StringBuilder();<a name="line.428"></a>
 <span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>    sb.append("; ");<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    toStringClassDetails(sb);<a name="line.431"></a>
+<span class="sourceLineNo">430</span>    sb.append("pid=");<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    sb.append(getProcId());<a name="line.431"></a>
 <span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return sb;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Extend the toString() information with more procedure details<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  public String toStringDetails() {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>    sb.append(" submittedTime=");<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    sb.append(getSubmittedTime());<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    sb.append(", lastUpdate=");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    sb.append(getLastUpdate());<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    final int[] stackIndices = getStackIndexes();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    if (stackIndices != null) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      sb.append("\n");<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      sb.append("stackIndexes=");<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      sb.append(Arrays.toString(stackIndices));<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return sb.toString();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>  }<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  protected String toStringClass() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    StringBuilder sb = new StringBuilder();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    toStringClassDetails(sb);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return sb.toString();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Called from {@link #toString()} when interpolating {@link Procedure} State. Allows decorating<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * generic Procedure State with Procedure particulars.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @param builder Append current {@link ProcedureState}<a name="line.467"></a>
+<span class="sourceLineNo">433</span>    if (hasParent()) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      sb.append(", ppid=");<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      sb.append(getParentProcId());<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>    /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     * TODO<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     * Enable later when this is being used.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     * Currently owner not used.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (hasOwner()) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      sb.append(", owner=");<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      sb.append(getOwner());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    }*/<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>    sb.append(", state="); // pState for Procedure State as opposed to any other kind.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    toStringState(sb);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>    sb.append(", hasLock=").append(locked);<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>    if (bypass) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      sb.append(", bypass=").append(bypass);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>    if (hasException()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      sb.append(", exception=" + getException());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>    sb.append("; ");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    toStringClassDetails(sb);<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return sb;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>  /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * Extend the toString() information with more procedure details<a name="line.467"></a>
 <span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  protected void toStringState(StringBuilder builder) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    builder.append(getState());<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  }<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>  /**<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * Extend the toString() information with the procedure details<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * e.g. className and parameters<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * @param builder the string builder to use to append the proc specific information<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    builder.append(getClass().getName());<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  // ==========================================================================<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  //  Those fields are unchanged after initialization.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  //<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  //  Each procedure will get created from the user or during<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  //  to the executor. these fields will never be changed after initialization<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  // ==========================================================================<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public long getProcId() {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return procId;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  public boolean hasParent() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    return parentProcId != NO_PROC_ID;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  public long getParentProcId() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    return parentProcId;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>  public long getRootProcId() {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    return rootProcId;<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  public String getProcName() {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    return toStringClass();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public NonceKey getNonceKey() {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return nonceKey;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  public long getSubmittedTime() {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    return submittedTime;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public String getOwner() {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    return owner;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public boolean hasOwner() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    return owner != null;<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  @VisibleForTesting<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  protected void setProcId(long procId) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.procId = procId;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    setState(ProcedureState.RUNNABLE);<a name="line.532"></a>
+<span class="sourceLineNo">469</span>  public String toStringDetails() {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>    sb.append(" submittedTime=");<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    sb.append(getSubmittedTime());<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    sb.append(", lastUpdate=");<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    sb.append(getLastUpdate());<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    final int[] stackIndices = getStackIndexes();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (stackIndices != null) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      sb.append("\n");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      sb.append("stackIndexes=");<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      sb.append(Arrays.toString(stackIndices));<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>    return sb.toString();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  protected String toStringClass() {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    StringBuilder sb = new StringBuilder();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    toStringClassDetails(sb);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    return sb.toString();<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>  /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * Called from {@link #toString()} when interpolating {@link Procedure} State. Allows decorating<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   * generic Procedure State with Procedure particulars.<a name="line.496"></a>
+<span class="sourceLineNo">497</span>   * @param builder Append current {@link ProcedureState}<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   */<a name="line.498"></a>
+<span class="sourceLineNo">499</span>  protected void toStringState(StringBuilder builder) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    builder.append(getState());<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>  /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span>   * Extend the toString() information with the procedure details<a name="line.504"></a>
+<span class="sourceLineNo">505</span>   * e.g. className and parameters<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   * @param builder the string builder to use to append the proc specific information<a name="line.506"></a>
+<span class="sourceLineNo">507</span>   */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    builder.append(getClass().getName());<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  // ==========================================================================<a name="line.512"></a>
+<span class="sourceLineNo">513</span>  //  Those fields are unchanged after initialization.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>  //<a name="line.514"></a>
+<span class="sourceLineNo">515</span>  //  Each procedure will get created from the user or during<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.516"></a>
+<span class="sourceLineNo">517</span>  //  to the executor. these fields will never be changed after initialization<a name="line.517"></a>
+<span class="sourceLineNo">518</span>  // ==========================================================================<a name="line.518"></a>
+<span class="sourceLineNo">519</span>  public long getProcId() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    return procId;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  public boolean hasParent() {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    return parentProcId != NO_PROC_ID;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  public long getParentProcId() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    return parentProcId;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  public long getRootProcId() {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    return rootProcId;<a name="line.532"></a>
 <span class="sourceLineNo">533</span>  }<a name="line.533"></a>
 <span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span>  /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  protected void setParentProcId(long parentProcId) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.parentProcId = parentProcId;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  protected void setRootProcId(long rootProcId) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.rootProcId = rootProcId;<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  }<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>  /**<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   */<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  @VisibleForTesting<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  protected void setNonceKey(NonceKey nonceKey) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.nonceKey = nonceKey;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>  }<a name="line.552"></a>
-<span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span>  @VisibleForTesting<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  public void setOwner(String owner) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public void setOwner(User owner) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    assert owner != null : "expected owner to be not null";<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    setOwner(owner.getShortName());<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * Called on store load to initialize the Procedure internals after<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * the creation/deserialization.<a name="line.566"></a>
+<span class="sourceLineNo">535</span>  public String getProcName() {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return toStringClass();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>  public NonceKey getNonceKey() {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    return nonceKey;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>  public long getSubmittedTime() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    return submittedTime;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>  public String getOwner() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return owner;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public boolean hasOwner() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return owner != null;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  @VisibleForTesting<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  protected void setProcId(long procId) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    this.procId = procId;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    setState(ProcedureState.RUNNABLE);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.566"></a>
 <span class="sourceLineNo">567</span>   */<a name="line.567"></a>
-<span class="sourceLineNo">568</span>  protected void setSubmittedTime(long submittedTime) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    this.submittedTime = submittedTime;<a name="line.569"></a>
+<span class="sourceLineNo">568</span>  protected void setParentProcId(long parentProcId) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    this.parentProcId = parentProcId;<a name="line.569"></a>
 <span class="sourceLineNo">570</span>  }<a name="line.570"></a>
 <span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>  // ==========================================================================<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  //  runtime state - timeout related<a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // ==========================================================================<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  /**<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   * @param timeout timeout interval in msec<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   */<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  protected void setTimeout(int timeout) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    this.timeout = timeout;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>  }<a name="line.580"></a>
-<span class="sourceLineNo">581</span><a name="line.581"></a>
-<span class="sourceLineNo">582</span>  public boolean hasTimeout() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return timeout != NO_TIMEOUT;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>  }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>  /**<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   * @return the timeout in msec<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  public int getTimeout() {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    return timeout;<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * Called on store load to initialize the Procedure internals after<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * the creation/deserialization.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   */<a name="line.596"></a>
-<span class="sourceLineNo">597</span>  protected void setLastUpdate(long lastUpdate) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    this.lastUpdate = lastUpdate;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>  }<a name="line.599"></a>
-<span class="sourceLineNo">600</span><a name="line.600"></a>
-<span class="sourceLineNo">601</span>  /**<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  protected void updateTimestamp() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>  }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>  public long getLastUpdate() {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    return lastUpdate;<a name="line.609"></a>
+<span class="sourceLineNo">572</span>  protected void setRootProcId(long rootProcId) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    this.rootProcId = rootProcId;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.577"></a>
+<span class="sourceLineNo">578</span>   */<a name="line.578"></a>
+<span class="sourceLineNo">579</span>  @VisibleForTesting<a name="line.579"></a>
+<span class="sourceLineNo">580</span>  protected void setNonceKey(NonceKey nonceKey) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    this.nonceKey = nonceKey;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  @VisibleForTesting<a name="line.584"></a>
+<span class="sourceLineNo">585</span>  public void setOwner(String owner) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>  public void setOwner(User owner) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    assert owner != null : "expected owner to be not null";<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    setOwner(owner.getShortName());<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * Called on store load to initialize the Procedure internals after<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * the creation/deserialization.<a name="line.596"></a>
+<span class="sourceLineNo">597</span>   */<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  protected void setSubmittedTime(long submittedTime) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    this.submittedTime = submittedTime;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>  }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>  // ==========================================================================<a name="line.602"></a>
+<span class="sourceLineNo">603</span>  //  runtime state - timeout related<a name="line.603"></a>
+<span class="sourceLineNo">604</span>  // ==========================================================================<a name="line.604"></a>
+<span class="sourceLineNo">605</span>  /**<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param timeout timeout interval in msec<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   */<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  protected void setTimeout(int timeout) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    this.timeout = timeout;<a name="line.609"></a>
 <span class="sourceLineNo">610</span>  }<a name="line.610"></a>
 <span class="sourceLineNo">611</span><a name="line.611"></a>
-<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * Timeout of the next timeout.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * the procedure is in the waiting queue.<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * @return the timestamp of the next timeout.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   

<TRUNCATED>

[12/51] [partial] hbase-site git commit: Published site at 7c1fad4992a169a35b4457e6f4afcb30d04406e9.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/74f60271/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
index d11176a..2c14c50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
@@ -982,1050 +982,1168 @@
 <span class="sourceLineNo">974</span>  }<a name="line.974"></a>
 <span class="sourceLineNo">975</span><a name="line.975"></a>
 <span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * Add a new root-procedure to the executor.<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param proc the new procedure to execute.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   */<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>    prepareProcedure(proc);<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>    final Long currentProcId;<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    if (nonceKey != null) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    } else {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      currentProcId = nextProcId();<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span><a name="line.997"></a>
-<span class="sourceLineNo">998</span>    // Initialize the procedure<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    proc.setNonceKey(nonceKey);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    proc.setProcId(currentProcId.longValue());<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // Commit the transaction<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    store.insert(proc, null);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    LOG.debug("Stored {}", proc);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    // Add the procedure to the executor<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    return pushProcedure(proc);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * Add a set of new root-procedure to the executor.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param procs the new procedures to execute.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  // TODO: Do we need to take nonces here?<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    // Prepare procedure<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    // Commit the transaction<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    store.insert(procs);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (LOG.isDebugEnabled()) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Add the procedure to the executor<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      pushProcedure(procs[i]);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    if (this.checkOwnerSet) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    return proc;<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    final long currentProcId = proc.getProcId();<a name="line.1048"></a>
+<span class="sourceLineNo">977</span>   * Bypass a procedure. If the procedure is set to bypass, all the logic in<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * execute/rollback will be ignored and it will return success, whatever.<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * It is used to recover buggy stuck procedures, releasing the lock resources<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * and letting other procedures to run. Bypassing one procedure (and its ancestors will<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   * be bypassed automatically) may leave the cluster in a middle state, e.g. region<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * not assigned, or some hdfs files left behind. After getting rid of those stuck procedures,<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * the operators may have to do some clean up on hdfs or schedule some assign procedures<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   * to let region online. DO AT YOUR OWN RISK.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>   * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * A procedure can be bypassed only if<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * 1. The procedure is in state of RUNNABLE, WAITING, WAITING_TIMEOUT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * or it is a root procedure without any child.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * 2. No other worker thread is executing it<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * 3. No child procedure has been submitted<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   *<a name="line.991"></a>
+<span class="sourceLineNo">992</span>   * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>   * If all the requirements are meet, the procedure and its ancestors will be<a name="line.993"></a>
+<span class="sourceLineNo">994</span>   * bypassed and persisted to WAL.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   *<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   * If the procedure is in WAITING state, will set it to RUNNABLE add it to run queue.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * TODO: What about WAITING_TIMEOUT?<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param id the procedure id<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @param lockWait time to wait lock<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @param force if force set to true, we will bypass the procedure even if it is executing.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   *              This is for procedures which can't break out during executing(due to bug, mostly)<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   *              In this case, bypassing the procedure is not enough, since it is already stuck<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   *              there. We need to restart the master after bypassing, and letting the problematic<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   *              procedure to execute wth bypass=true, so in that condition, the procedure can be<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   *              successfully bypassed.<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   * @return true if bypass success<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * @throws IOException IOException<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   */<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public boolean bypassProcedure(long id, long lockWait, boolean force) throws IOException  {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    Procedure&lt;TEnvironment&gt; procedure = getProcedure(id);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    if (procedure == null) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      LOG.debug("Procedure with id={} does not exist, skipping bypass", id);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      return false;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    LOG.debug("Begin bypass {} with lockWait={}, force={}", procedure, lockWait, force);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    IdLock.Entry lockEntry = procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    if (lockEntry == null &amp;&amp; !force) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      LOG.debug("Waited {} ms, but {} is still running, skipping bypass with force={}",<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          lockWait, procedure, force);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      return false;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    } else if (lockEntry == null) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      LOG.debug("Waited {} ms, but {} is still running, begin bypass with force={}",<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          lockWait, procedure, force);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      // check whether the procedure is already finished<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (procedure.isFinished()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        LOG.debug("{} is already finished, skipping bypass", procedure);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        return false;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      if (procedure.hasChildren()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>        LOG.debug("{} has children, skipping bypass", procedure);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        return false;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      // If the procedure has no parent or no child, we are safe to bypass it in whatever state<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      if (procedure.hasParent() &amp;&amp; procedure.getState() != ProcedureState.RUNNABLE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          &amp;&amp; procedure.getState() != ProcedureState.WAITING_TIMEOUT) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>        LOG.debug("Bypassing procedures in RUNNABLE, WAITING and WAITING_TIMEOUT states "<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                + "(with no parent), {}",<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>            procedure);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        return false;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      }<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span><a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    // Update metrics on start of a procedure<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    // Create the rollback stack for the procedure<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    rollbackStack.put(currentProcId, stack);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    // Submit the new subprocedures<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    assert !procedures.containsKey(currentProcId);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    procedures.put(currentProcId, proc);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    scheduler.addBack(proc);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    return proc.getProcId();<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Send an abort notification the specified procedure.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   * @param procId the procedure to abort<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>   */<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  public boolean abort(long procId) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    return abort(procId, true);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   * Send an abort notification to the specified procedure.<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>   * @param procId the procedure to abort<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    if (proc != null) {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        return false;<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      return proc.abort(getEnvironment());<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    return false;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  // ==========================================================================<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  //  Executor query helpers<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  // ==========================================================================<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    return procedures.get(procId);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1050</span>      // Now, the procedure is not finished, and no one can execute it since we take the lock now<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>      // And we can be sure that its ancestor is not running too, since their child has not<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      // finished yet<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Procedure current = procedure;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      while (current != null) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        LOG.debug("Bypassing {}", current);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        current.bypass();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        store.update(procedure);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        long parentID = current.getParentProcId();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        current = getProcedure(parentID);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      //wake up waiting procedure, already checked there is no child<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      if (procedure.getState() == ProcedureState.WAITING) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        procedure.setState(ProcedureState.RUNNABLE);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        store.update(procedure);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span><a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      // If we don't have the lock, we can't re-submit the queue,<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      // since it is already executing. To get rid of the stuck situation, we<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      // need to restart the master. With the procedure set to bypass, the procedureExecutor<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // will bypass it and won't get stuck again.<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      if (lockEntry != null) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // add the procedure to run queue,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        scheduler.addFront(procedure);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        LOG.debug("Bypassing {} and its ancestors successfully, adding to queue", procedure);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        LOG.debug("Bypassing {} and its ancestors successfully, but since it is already running, "<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>            + "skipping add to queue", procedure);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      return true;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span><a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    } finally {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      if (lockEntry != null) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        procExecutionLock.releaseLockEntry(lockEntry);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Add a new root-procedure to the executor.<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param proc the new procedure to execute.<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param nonceKey the registered unique identifier for this operation from the client or process.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      justification = "FindBugs is blind to the check-for-null")<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public long submitProcedure(Procedure&lt;TEnvironment&gt; proc, NonceKey nonceKey) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span><a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    if (clazz.isInstance(proc)) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      return clazz.cast(proc);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    return null;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    if (retainer == null) {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      return null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    } else {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return retainer.getProcedure();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>   * Return true if the procedure is finished.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Use getResult() to check the state or get the result data.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param procId the ID of the procedure to check<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean isFinished(final long procId) {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return !procedures.containsKey(procId);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * Return true if the procedure is started.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param procId the ID of the procedure to check<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  public boolean isStarted(long procId) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (proc == null) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      return completed.get(procId) != null;<a name="line.1136"></a>
+<span class="sourceLineNo">1100</span>    prepareProcedure(proc);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    final Long currentProcId;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    if (nonceKey != null) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      currentProcId = nonceKeysToProcIdsMap.get(nonceKey);<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      Preconditions.checkArgument(currentProcId != null,<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>        "Expected nonceKey=" + nonceKey + " to be reserved, use registerNonce(); proc=" + proc);<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    } else {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      currentProcId = nextProcId();<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    // Initialize the procedure<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>    proc.setNonceKey(nonceKey);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    proc.setProcId(currentProcId.longValue());<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span><a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    // Commit the transaction<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    store.insert(proc, null);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    LOG.debug("Stored {}", proc);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    // Add the procedure to the executor<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    return pushProcedure(proc);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  /**<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * Add a set of new root-procedure to the executor.<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   * @param procs the new procedures to execute.<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>   */<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>  // TODO: Do we need to take nonces here?<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  public void submitProcedures(Procedure&lt;TEnvironment&gt;[] procs) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    if (procs == null || procs.length &lt;= 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      return;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    // Prepare procedure<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>      prepareProcedure(procs[i]).setProcId(nextProcId());<a name="line.1136"></a>
 <span class="sourceLineNo">1137</span>    }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    return proc.wasExecuted();<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  /**<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   * @param procId the ID of the procedure to remove<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   */<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>  public void removeResult(long procId) {<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    if (retainer == null) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      return;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span><a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    if (retainer == null) {<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      return procedures.get(procId);<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } else {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      return retainer.getProcedure();<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>    // Commit the transaction<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    store.insert(procs);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    if (LOG.isDebugEnabled()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      LOG.debug("Stored " + Arrays.toString(procs));<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    // Add the procedure to the executor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    for (int i = 0; i &lt; procs.length; ++i) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>      pushProcedure(procs[i]);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  private Procedure&lt;TEnvironment&gt; prepareProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    Preconditions.checkArgument(!proc.hasParent(), "unexpected parent", proc);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    if (this.checkOwnerSet) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      Preconditions.checkArgument(proc.hasOwner(), "missing owner");<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>    }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    return proc;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  private long pushProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    final long currentProcId = proc.getProcId();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    // Update metrics on start of a procedure<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.1164"></a>
 <span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Check if the user is this procedure's owner<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param procId the target procedure<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param user the user<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @return true if the user is the owner of the procedure,<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   *   false otherwise or the owner is unknown.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    if (user == null) {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      return false;<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    }<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    if (runningProc != null) {<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    if (retainer != null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    // At this time, we cannot check the owner of the procedure<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    return false;<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * &lt;p/&gt;<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * it will do a copy, and also include the finished procedures.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    return procedures.values();<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>  }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span><a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>  /**<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * Get procedures.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>   * @return the procedures in a list<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>   */<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    procedureList.addAll(procedures.values());<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    // it could complete after we walk through procedures list and insert into<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      .forEach(procedureList::add);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>    return procedureList;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>  }<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span><a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  // ==========================================================================<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  //  Listeners helpers<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>  // ==========================================================================<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>    this.listeners.add(listener);<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  }<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span><a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>    return this.listeners.remove(listener);<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  }<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    if (!this.listeners.isEmpty()) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        try {<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>          listener.procedureLoaded(procId);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        } catch (Throwable e) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    if (!this.listeners.isEmpty()) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>        try {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          listener.procedureAdded(procId);<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } catch (Throwable e) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    if (!this.listeners.isEmpty()) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>          listener.procedureFinished(procId);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        } catch (Throwable e) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
+<span class="sourceLineNo">1166</span>    // Create the rollback stack for the procedure<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    RootProcedureState&lt;TEnvironment&gt; stack = new RootProcedureState&lt;&gt;();<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    rollbackStack.put(currentProcId, stack);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // Submit the new subprocedures<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    assert !procedures.containsKey(currentProcId);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    procedures.put(currentProcId, proc);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    sendProcedureAddedNotification(currentProcId);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    scheduler.addBack(proc);<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    return proc.getProcId();<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>  }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span><a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>  /**<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * Send an abort notification the specified procedure.<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   * @param procId the procedure to abort<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   */<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>  public boolean abort(long procId) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    return abort(procId, true);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>  }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Send an abort notification to the specified procedure.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Depending on the procedure implementation, the abort can be considered or ignored.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * @param procId the procedure to abort<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return true if the procedure exists and has received the abort, otherwise false.<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>  public boolean abort(long procId, boolean mayInterruptIfRunning) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    Procedure&lt;TEnvironment&gt; proc = procedures.get(procId);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    if (proc != null) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>        return false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>      }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>      return proc.abort(getEnvironment());<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    return false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>  // ==========================================================================<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  //  Executor query helpers<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>  // ==========================================================================<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>  public Procedure&lt;TEnvironment&gt; getProcedure(final long procId) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>    return procedures.get(procId);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>  }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  public &lt;T extends Procedure&lt;TEnvironment&gt;&gt; T getProcedure(Class&lt;T&gt; clazz, long procId) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    Procedure&lt;TEnvironment&gt; proc = getProcedure(procId);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    if (clazz.isInstance(proc)) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      return clazz.cast(proc);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>    return null;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  public Procedure&lt;TEnvironment&gt; getResult(long procId) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    if (retainer == null) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      return null;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>    } else {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      return retainer.getProcedure();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Return true if the procedure is finished.<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * Use getResult() to check the state or get the result data.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param procId the ID of the procedure to check<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>  public boolean isFinished(final long procId) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    return !procedures.containsKey(procId);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  /**<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * Return true if the procedure is started.<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * @param procId the ID of the procedure to check<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  public boolean isStarted(long procId) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    Procedure&lt;?&gt; proc = procedures.get(procId);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (proc == null) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return completed.get(procId) != null;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>    }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    return proc.wasExecuted();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @param procId the ID of the procedure to remove<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  public void removeResult(long procId) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    if (retainer == null) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      assert !procedures.containsKey(procId) : "pid=" + procId + " is still running";<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>      LOG.debug("pid={} already removed by the cleaner.", procId);<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      return;<a name="line.1263"></a>
 <span class="sourceLineNo">1264</span>    }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  // ==========================================================================<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  //  Procedure IDs helpers<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>  // ==========================================================================<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  private long nextProcId() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    long procId = lastProcId.incrementAndGet();<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>    if (procId &lt; 0) {<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>        procId = lastProcId.get();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>        if (procId &gt;= 0)<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>          break;<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>      }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      while (procedures.containsKey(procId)) {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        procId = lastProcId.incrementAndGet();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    return procId;<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  }<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span><a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  @VisibleForTesting<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  protected long getLastProcId() {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>    return lastProcId.get();<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  @VisibleForTesting<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    return procedures.keySet();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  }<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span><a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    retainer.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  public Procedure&lt;TEnvironment&gt; getResultOrProcedure(long procId) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>    CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (retainer == null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      return procedures.get(procId);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>    } else {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      return retainer.getProcedure();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>  }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>   * Check if the user is this procedure's owner<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>   * @param procId the target procedure<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * @param user the user<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * @return true if the user is the owner of the procedure,<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   *   false otherwise or the owner is unknown.<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public boolean isProcedureOwner(long procId, User user) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>    if (user == null) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      return false;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    final Procedure&lt;TEnvironment&gt; runningProc = procedures.get(procId);<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>    if (runningProc != null) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      return runningProc.getOwner().equals(user.getShortName());<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>    }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span><a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    final CompletedProcedureRetainer&lt;TEnvironment&gt; retainer = completed.get(procId);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>    if (retainer != null) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>      return retainer.getProcedure().getOwner().equals(user.getShortName());<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>    }<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  // ==========================================================================<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>  //  Executions<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  // ==========================================================================<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>    if (rootProcId == null) {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      LOG.warn("Rollback because parent is done/rolledback proc=" + proc);<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      executeRollback(proc);<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      return;<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>    RootProcedureState&lt;TEnvironment&gt; procStack = rollbackStack.get(rootProcId);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    if (procStack == null) {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      LOG.warn("RootProcedureState is null for " + proc.getProcId());<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    do {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>      // Try to acquire the execution<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>      if (!procStack.acquire(proc)) {<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>        if (procStack.setRollback()) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>            case LOCK_ACQUIRED:<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>              break;<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>            case LOCK_YIELD_WAIT:<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>              procStack.unsetRollback();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>              scheduler.yield(proc);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>              break;<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>            case LOCK_EVENT_WAIT:<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>              LOG.info("LOCK_EVENT_WAIT rollback..." + proc);<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>              procStack.unsetRollback();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>              break;<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>            default:<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>              throw new UnsupportedOperationException();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>          }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        } else {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>          // if we can't rollback means that some child is still running.<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>          // the rollback will be executed after all the children are done.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>          if (!proc.wasExecuted()) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>            switch (executeRollback(proc)) {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>              case LOCK_ACQUIRED:<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>                break;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>              case LOCK_YIELD_WAIT:<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>                scheduler.yield(proc);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>                break;<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>              case LOCK_EVENT_WAIT:<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>                LOG.info("LOCK_EVENT_WAIT can't rollback child running?..." + proc);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>                break;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>              default:<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>                throw new UnsupportedOperationException();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          }<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>        }<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        break;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span><a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>      // Execute the procedure<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>      // Note that lock is NOT about concurrency but rather about ensuring<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      // ownership of a procedure of an entity such as a region or table<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LockState lockState = acquireLock(proc);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      switch (lockState) {<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        case LOCK_ACQUIRED:<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>          execProcedure(procStack, proc);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>          break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>        case LOCK_YIELD_WAIT:<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          LOG.info(lockState + " " + proc);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          scheduler.yield(proc);<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>          break;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        case LOCK_EVENT_WAIT:<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>          // Someone will wake us up when the lock is available<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          LOG.debug(lockState + " " + proc);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>          break;<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>        default:<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          throw new UnsupportedOperationException();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      procStack.release(proc);<a name="line.1378"></a>
+<span class="sourceLineNo">1300</span>    // Procedure either does not exist or has already completed and got cleaned up.<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>    // At this time, we cannot check the owner of the procedure<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>    return false;<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>  /**<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   * Should only be used when starting up, where the procedure workers have not been started.<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * &lt;p/&gt;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   * If the procedure works has been started, the return values maybe changed when you are<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * processing it so usually this is not safe. Use {@link #getProcedures()} below for most cases as<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * it will do a copy, and also include the finished procedures.<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   */<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  public Collection&lt;Procedure&lt;TEnvironment&gt;&gt; getActiveProceduresNoCopy() {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>    return procedures.values();<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  /**<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * Get procedures.<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * @return the procedures in a list<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   */<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>  public List&lt;Procedure&lt;TEnvironment&gt;&gt; getProcedures() {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    List&lt;Procedure&lt;TEnvironment&gt;&gt; procedureList =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    procedureList.addAll(procedures.values());<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    // Note: The procedure could show up twice in the list with different state, as<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    // it could complete after we walk through procedures list and insert into<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>    // procedureList - it is ok, as we will use the information in the Procedure<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    completed.values().stream().map(CompletedProcedureRetainer::getProcedure)<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      .forEach(procedureList::add);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    return procedureList;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  // ==========================================================================<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  //  Listeners helpers<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  // ==========================================================================<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    this.listeners.add(listener);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    return this.listeners.remove(listener);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    if (!this.listeners.isEmpty()) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        try {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>          listener.procedureLoaded(procId);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        } catch (Throwable e) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>  }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    if (!this.listeners.isEmpty()) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        try {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>          listener.procedureAdded(procId);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        } catch (Throwable e) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    if (!this.listeners.isEmpty()) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          listener.procedureFinished(procId);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        } catch (Throwable e) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  }<a name="line.1378"></a>
 <span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      if (proc.isSuccess()) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        // update metrics on finishing the procedure<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>        LOG.info("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        // Finalize the procedure state<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        if (proc.getProcId() == rootProcId) {<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          procedureFinished(proc);<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        } else {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>          execCompletionCleanup(proc);<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>        }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        break;<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    } while (procStack.isFailed());<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>  }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span><a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>  private LockState acquireLock(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    TEnvironment env = getEnvironment();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    // if holdLock is true, then maybe we already have the lock, so just return LOCK_ACQUIRED if<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    // hasLock is true.<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (proc.hasLock()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      return LockState.LOCK_ACQUIRED;<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    }<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    return proc.doAcquireLock(env, store);<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  }<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span><a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>  private void releaseLock(Procedure&lt;TEnvironment&gt; proc, boolean force) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    TEnvironment env = getEnvironment();<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    // For how the framework works, we know that we will always have the lock<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (force || !proc.holdLock(env) || proc.isFinished()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      proc.doReleaseLock(env, store);<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  /**<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>   * Execute the rollback of the full procedure stack. Once the procedure is rolledback, the<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * root-procedure will be visible as finished to user, and the result will be the fatal exception.<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   */<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>  private LockState executeRollback(long rootProcId, RootProcedureState&lt;TEnvironment&gt; procStack) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    Procedure&lt;TEnvironment&gt; rootProc = procedures.get(rootProcId);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    // TODO: This needs doc. The root proc doesn't have an exception. Maybe we are<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    // rolling back because the subprocedure does. Clarify.<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>    if (exception == null) {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      exception = procStack.getException();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>      rootProc.setFailure(exception);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      store.update(rootProc);<a name="line.1426"></a>
+<span class="sourceLineNo">1380</span>  // ==========================================================================<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>  //  Procedure IDs helpers<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  // ==========================================================================<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  private long nextProcId() {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>    long procId = lastProcId.incrementAndGet();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    if (procId &lt; 0) {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        procId = lastProcId.get();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        if (procId &gt;= 0)<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          break;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>      }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      while (procedures.containsKey(procId)) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        procId = lastProcId.incrementAndGet();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>    return procId;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>  @VisibleForTesting<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  protected long getLastProcId() {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    return lastProcId.get();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span><a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>  @VisibleForTesting<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return procedures.keySet();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  Long getRootProcedureId(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>  // ==========================================================================<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  //  Executions<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>  // ==========================================================================<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  private void executeProcedure(Procedure&lt;TEnvironment&gt; proc) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    if (proc.isFinished()) {<a name="line.1417"></a>
+<span class="sourceLineNo">1

<TRUNCATED>